Viggle MeridianがComfyUIにジオメトリ誘導の再カメラ機能を追加
Viggle MeridianはジオメトリレンダーからMiniMax H3の動画を再カメラ撮影します。既存のクリップとカメラパスを入力すると、新しい視点が得られます。2つのLoRA、2つのノード、すぐに使えるグラフを用意。
新しいアングルから見たダンク。この編集では生成済みのビューと、オリジナル映像から切り出したフレームを混ぜ合わせています。
仕組み
Meridian は、動画モデルにゼロからカメラワークを想像させるのではなく、作業をジオメトリと生成に分割します。
- ジオメトリを構築する。 VGGT-Omega が入力動画から深度とカメラポーズを推定し、選択済みのフレームが色付きの 3D 点群になります。
- 新しいビューをレンダリングする。 出力フレームごとに、入力の一瞬と選択したカメラ視点が組み合わされ、その角度から点群がレンダリングされます。オリジナルのカメラが捉えなかった領域は灰色の穴として出力されます。
- ショットを生成する。 ソース動画と対応するレンダリング動画の両方が参照として Meridian に渡され、穴を埋めて結果を洗練します。
VGGT-Omega による深度とカメラポーズを、選択したパスに沿ってレンダリング。フレームは実データ、点群とカメラは模式図です。
点群さえできてしまえばジオメトリのレンダリングは低コストなので、動画モデルを実行する前にフレーミングをプレビューし、隙間を見つけ、パスを調整できます。空間と時間は別々に制御します。どこから見るか、いつ見るかを選び、その 2 つをどう組み合わせるかを決められるため、バレットタイム風の動きが可能になります。ただし、それがこのモデルの唯一の芸当ではありません。
2 つの LoRA、マージ済みチェックポイントは不要
Meridian は 推論時にテキストエンコーダーを読み込まずに MiniMax H3 の transformer と VAE を使用します。タスクのテキスト埋め込みは事前計算済みで、transformer のアーキテクチャは変更されていません。
| コンポーネント | 役割 |
|---|---|
teacher_lora/ | ジオメトリレンダーを読み取る再カメラアダプター。2.5 GiB で、専用のグリッドは --steps 50 --flow-shift 12 |
turbo_lora/ | teacher を 3 フォワードに蒸留したもの。2.5 GiB、デフォルトは --steps 4 --flow-shift 3 |
legacy/ | 最初のリリース: 61.7 GiB の融合済み transformer とそのアダプター。再現性のために保持 |
両方のアダプターは同時に読み込まれ、どちらもベースの重みにマージすべきではありません。デフォルトの実行では重み 1.0 で合算され、これが turbo を蒸留した際の基準となった組み合わせです。bf16 でのマージは損失を伴い、turbo の場合は更新のほぼすべてが失われます。
ComfyUI で実行する
Viggle は両方のアダプターを ComfyUI の汎用 LoRA 形式で comfyui/ 以下に公開しており、2 つのカスタムノードファイルと 2 つの API 形式グラフも併せて提供しています。どちらかのグラフをキャンバスにドロップすると、フロントエンドがそれを構築します。
- Comfy-Org/MiniMax-H3 から
minimax_h3_fl2va_bf16.safetensorsを読み込みます。Meridian は H3 のfl2vaパーティションで学習されているため、ref2vaファイルは誤ったベースです。 comfyui/meridian_teacher_lora.safetensorsを適用し、続いてcomfyui/meridian_turbo_lora.safetensorsを適用します。どちらも strength 1.0 です。simpleスケジューラーでeulerを使用し、cfg1.0 でサンプリングします。ネガティブ分岐が存在しないため、同じ条件付けを両方の入力に接続します。- ComfyUI の
stepsはリポジトリの--stepsより 1 少なくなります。これは ComfyUI のスケジューラーが末尾のゼロを追加するためです。turbo の組み合わせはMiniMaxH3SigmaShift3.0 でsteps3、teacher 単体では shift 12.0 でsteps49 です。
出力は 24 fps、768 クラスでアスペクト比を合わせたキャンバスです。16:9 の入力なら 1344x768 になります。有効な長さは 73、90、107、124、141、158、175、243 フレームで、1 テイクあたりおよそ 3~10 秒です。CLI はフレームをインデックスで読み込むため、ソース映像は一定の 24 fps で書き出された連続ショットである必要があります。フレームレートの正規化やカット検出は行いません。
例
1 枚のスチル写真から作成したカメラワーク。
ソース時間が進み、カメラの移動中は停止し、その後再開します。
1 つの連続ショット内で旋回し、横に移動し、距離を変えます。
要件と制限
参照実装は大容量メモリの CUDA GPU 1 基で動作し、現時点では量子化、CPU オフロード、マルチ GPU シャーディングには対応していないため、コンシューマー向けカードは今のところ対象外です。Viggle は、Meridian を RTX 4090 などのより小さな GPU に載せるようコミュニティに明示的に呼びかけています。H3 のアーキテクチャを維持しテキストエンコーダーを削除することが、メモリ削減の取り組みの有用な出発点になると述べています。VGGT-Omega のジオメトリモデルは独自のリポジトリから別途入手するもので、アダプターには同梱されていません。
入手方法
重み、アダプター、ComfyUI ノード、グラフ、推論 CLI は Hugging Face にあります。リポジトリには サンプルクリップと、生成を確定する前にリアルタイム 3D フィードバックでカメラパスを設計するためのプロトタイプ Studio も含まれています。
コメント
GitHubでサインインしてディスカッションに参加しましょう。