Viggle MeridianがComfyUIにジオメトリ誘導の再カメラ機能を追加

ComfyUI Wikinews

Viggle MeridianはジオメトリレンダーからMiniMax H3の動画を再カメラ撮影します。既存のクリップとカメラパスを入力すると、新しい視点が得られます。2つのLoRA、2つのノード、すぐに使えるグラフを用意。

Viggle MeridianMiniMax H3 向けのジオメトリ誘導型の再カメラモデルです。既存のクリップとカメラパスを渡すと、同じ出来事を別の視点から見た映像を生成します。未改変の H3 transformer 上に載る 2 つの LoRA アダプターとして提供され、ComfyUI ノードと 2 つの既製グラフが Viggle/Meridian リポジトリに含まれています。
ダンクの再カメラ撮影: 生成済みのビューとオリジナルの映像を合成

新しいアングルから見たダンク。この編集では生成済みのビューと、オリジナル映像から切り出したフレームを混ぜ合わせています。

仕組み

Meridian は、動画モデルにゼロからカメラワークを想像させるのではなく、作業をジオメトリと生成に分割します。

  1. ジオメトリを構築する。 VGGT-Omega が入力動画から深度とカメラポーズを推定し、選択済みのフレームが色付きの 3D 点群になります。
  2. 新しいビューをレンダリングする。 出力フレームごとに、入力の一瞬と選択したカメラ視点が組み合わされ、その角度から点群がレンダリングされます。オリジナルのカメラが捉えなかった領域は灰色の穴として出力されます。
  3. ショットを生成する。 ソース動画と対応するレンダリング動画の両方が参照として Meridian に渡され、穴を埋めて結果を洗練します。
VGGT-Omega が深度とカメラポーズを推定し、選択したカメラパスに沿って点群がレンダリングされる

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 を使用し、cfg 1.0 でサンプリングします。ネガティブ分岐が存在しないため、同じ条件付けを両方の入力に接続します。
  • ComfyUI の steps はリポジトリの --steps より 1 少なくなります。これは ComfyUI のスケジューラーが末尾のゼロを追加するためです。turbo の組み合わせは MiniMaxH3SigmaShift 3.0 で steps 3、teacher 単体では shift 12.0 で steps 49 です。

出力は 24 fps、768 クラスでアスペクト比を合わせたキャンバスです。16:9 の入力なら 1344x768 になります。有効な長さは 73、90、107、124、141、158、175、243 フレームで、1 テイクあたりおよそ 3~10 秒です。CLI はフレームをインデックスで読み込むため、ソース映像は一定の 24 fps で書き出された連続ショットである必要があります。フレームレートの正規化やカット検出は行いません。

1 枚のバレエ写真から生成したカメラムーブメント

1 枚のスチル写真から作成したカメラワーク。

再生、停止、再開: カメラが動く間、水しぶきは一時停止する

ソース時間が進み、カメラの移動中は停止し、その後再開します。

モトクロスのジャンプを囲む複合カメラパスを構成

1 つの連続ショット内で旋回し、横に移動し、距離を変えます。

要件と制限

参照実装は大容量メモリの CUDA GPU 1 基で動作し、現時点では量子化、CPU オフロード、マルチ GPU シャーディングには対応していないため、コンシューマー向けカードは今のところ対象外です。Viggle は、Meridian を RTX 4090 などのより小さな GPU に載せるようコミュニティに明示的に呼びかけています。H3 のアーキテクチャを維持しテキストエンコーダーを削除することが、メモリ削減の取り組みの有用な出発点になると述べています。VGGT-Omega のジオメトリモデルは独自のリポジトリから別途入手するもので、アダプターには同梱されていません。

入手方法

重み、アダプター、ComfyUI ノード、グラフ、推論 CLI は Hugging Face にあります。リポジトリには サンプルクリップと、生成を確定する前にリアルタイム 3D フィードバックでカメラパスを設計するためのプロトタイプ Studio も含まれています。

コメント

GitHubでサインインしてディスカッションに参加しましょう。

コメントを読み込み中…
Viggle MeridianがComfyUIにジオメトリ誘導の再カメラ機能を追加 | ComfyUI Wiki