MiniMax H3 ORB360: 360度カメラオービットとCardSpin LoRA
MATLOWのORB360 LoRAは、MiniMax H3 Ref2VAに、静止した被写体の周囲を時計回りに360度旋回するカメラワークを与えます。さらに写真そのものを空間内で回転させるCardSpinバリアントも用意されています。
ORB360_CW は被写体をその場に固定したままカメラを時計回りに1周させ、CardSpinのファイル群は参照写真そのものを薄い物理的なカードのように空間内で回転させます。最初のファイルは9月28日に公開され、9月30日には高解像度のstep-1500オービットと2回目のCardSpinパスが続きました。
雪のシーンにいる猫の周囲を1周。1枚の参照写真から生成。ソース: MiniMax-H3-ORB360-CardSpin。
LoRAの機能
MiniMax H3の参照から動画は、入力画像を外観の参照として扱います。これはポーズや見た目には十分ですが、カメラの動きには不十分です。ORB360は代わりに、実際のオービットの幾何学をモデルに教えます。1回転、1方向、固定された被写体、そして説得力のある距離と高さを保つカメラです。シーンの残りの部分は、写真が置いた場所にとどまります。
step-1500オービット、1024 x 768、124フレーム、20ステップ、シード20260926。
CardSpinは同じオービットLoRAから出発し、生成済みの単一クリップで50トレーニングステップを追加します。その結果、写真の中の人物を周回するのではなくなります。写真を平坦なオブジェクトとして扱い、それを回転させます。これは空間に吊るされたプリントやカードのように見えます。
CardSpin v2。同じ写真とシードにcard-spinプロンプトを使用。
どのファイルを使うか
| ファイル | 内容 | 用途 |
|---|---|---|
minimax_h3_orb360_step1500.safetensors | オービットLoRA。高解像度Blenderレンダーで1500ステップ、カメラの高さは下から上まで、ラベル付き参照画像を1〜4枚使用 | クリーンな360度オービット。3つの中で最もシャープ |
minimax_h3_orb360_cardspin_v2_step50.safetensors | step 1500に50のcard-spinステップを追加 | カードスピン。高解像度オービットから開始 |
minimax_h3_orb360_cardspin_step50.safetensors | CardSpin v1。古い750ステップのオービットをベースに構築 | オリジナルのcard-spinリリース |
以下のクリップは、CardSpinを生んだ偶然の産物です。オービットLoRAを、トレーニングに使ったグレー背景のレンダーではなく実際の写真でテストしていたとき、MATLOWはJulia Margaret Cameronによるサー・ジョン・ハーシェルの1867年の肖像画を入力しました。するとモデルは、人物ではなく写真そのものを回転させる対象だと判断しました。
19世紀の肖像画に対する750ステップのオービットLoRA。ソース: MiniMax-H3-ORB360-CardSpin。
その1つのクリップのキャプションで50ステップを実行すると、効果はトレーニングが一度も見ていない写真にも転移しました。高解像度パスは見た目以上に重要です。step-1500オービットは750ステップ版と比べて細部をおよそ2倍にします。一方、50のcard-spinステップは触れるものすべてを柔らかくするため、クリーンなオービットが欲しいときにCardSpinは選ぶべきファイルではありません。
| 白猫360、同じ写真、プロンプト、シード、長さ | オービット step 750 | CardSpin v1 | ORB360 step 1500 | CardSpin v2 |
|---|---|---|---|---|
| 細部(Laplacian分散) | 30.2 | 19.8 | 56.1 | 20.7 |
| step 1500に対する細部 | 0.54x | 0.34x | 1.00x | 0.35x |
| エッジエネルギー(Tenengrad) | 1098 | 809 | 1343 | 841 |
| 最初のフレームと写真の比較、PSNR / SSIM | 28.0 dB / 0.87 | 24.5 dB / 0.85 | 28.5 dB / 0.87 | 22.5 dB / 0.77 |
同じフレームのネイティブピクセルクロップ。1列につき1つのLoRA。ソース: MiniMax-H3-ORB360-CardSpin。
step-1500オービットの精度
作者は、トレーニング用に一度もレンダリングされていない3つのオブジェクトについて、それぞれ1シードでstep 1500をテストし、真のオービットのBlenderレンダーと比較しました。
| テスト | 結果 |
|---|---|
| 20度でのオービット、3つの視点(0/120/240) | すべてのフレームで真のオービットの1フレーム以内(2.9度) |
| 下からのオービット(中心から30度と10度下、床なし) | 124フレーム中118〜124フレームで正しい高さ、クリーンな1回転 |
| 45度から撮影した写真で、5度のオービットを要求 | 3つのオブジェクトすべてで低いオービット、ほとんどのフレームがターゲットの5〜10度以内 |
| 1枚の正面写真からの高いオービット(45度) | 高いオービット、ほとんどのフレームで30〜45度、見えない側は生成 |
| 45度から撮影した写真で、30度下のオービットを要求 | 失敗。参照写真の高さに向かってドリフトする |
| クリップ中に高さが変化、例えば上45度から下30度へ | 失敗。カメラが動く代わりにオブジェクトがタンブルする |
これらの数値はグレー背景のレンダーから得られたものです。実際の写真では、現時点でオービットは参照写真の高さにとどまります。作者はこれを主要な未解決問題として挙げています。
ComfyUIでLoRAを使う
両方のファイルは、MiniMax H3 Ref2VA モデル上で、スタンダードな Lora Loader ノードを使い、model-onlyモード、強度1.0でロードします。これらは lora_unet_*、lora_down、lora_up、alpha キーを持つkohyaスタイルのLoRAで、200個のモジュールすべてがComfyUIがすでにロードするMiniMax H3の重みに対応します。
- 参照画像をRef2VAの条件付けに入力します。参照が1つの場合、モデルはそれをオービットの最初と最後のフレームとして扱います。
- クリップは 124フレーム、24 fps に保ちます。リポジトリ内のプロンプトには「at 1.708333 seconds (zero-based frame 41), 120 degrees」のようなタイムコードが含まれており、この長さを前提としています。
- 重みには4つのプロンプトが同梱されています。写真自体の周囲を保つ単一写真オービット、前面・120度・240度ビュー用の3参照バリアント、そしてstep-1500パスがトレーニングされた正確なキャプション形式2つ(ホールドアウトテストから取得)です。
- 動作が確認されている解像度は、ランドスケープで 800 x 800、1024 x 768、1152 x 768、ポートレートで 672 x 832、832 x 1024 です。
- キャプションはMiniMaxのRef2VAプロンプトレイアウトに従い、両方の音声セクションを
N/Aに設定して無音を要求します。これがないとH3はサウンドトラックを勝手に生成しがちです。
トレーニング
両ステージはmusubi-tunerで、rank 32、アルファ32、AdamW、一定学習率1e-4、bf16混合精度、動画のみのlossにより、単一のNVIDIA RTX PRO 6000上でトレーニングされました。step-1500オービットでは、Blenderでレンダリングした23アセットを、3つの長さで345の時計回り1回転オービットとして使用し、各クリップが異なる参照画像で3つのトレーニング行に登場したため、960行、1500ステップ、約26時間となりました。
制限事項
- 高さの制御はグレー背景のレンダーには引き継がれますが、実際の写真にはまだ引き継がれません。
- クリップ中に高さが変わるオービットは失敗し、被写体がタンブルします。
- CardSpinの出力は、派生元のstep-1500オービットよりも明らかに柔らかくなります。
- 例のキャプションの高さ、時間、角度はリポジトリ内のテストオブジェクトを記述したものであり、他の被写体には編集が必要です。
コメント
GitHubでサインインしてディスカッションに参加しましょう。