見出し画像

MiniMax H3を自宅のDGX Sparkで動かして、実写動画をアニメに置き換えたい

MiniMax H3を自宅のDGX Sparkで動かして、実写動画をアニメに置き換える

2026年8月3日、MiniMaxが動画生成モデル「H3」のオープンウェイトを公開しました。

私は自宅のDGX Sparkで、実写のvlog動画に写った自分をキャラクターに置き換えるパイプラインを運用しています。これまではWan2.2 AnimateとSCAIL-2という2つのモデルを使い分けていました。H3がここに食い込むのか、公開当日に一日かけて検証した結果をまとめます。

結論から言うと、キャラクターの再現性は既存モデルを明確に超えました。ただし「姿勢をどう制御するか」という部分で、思っていたのとは違う答えに辿り着きました。


MiniMax H3とは

テキスト・画像・動画・音声を同じコンテキストに入れて、ステレオ音声つきの動画を一発で生成するモデルです。音を後付けするのではなく、映像と音声を同時に生成します。

ローカル実行の構成はこんな感じです。

  • 参照画像を最大9枚、参照動画を3本、参照音声を3本まで同時入力

  • 出力は最大2K・24fps・15秒程度(ローカル版は短辺768pxが上限)

  • DiTのint8版が21GB、テキストエンコーダにQwen3-VL-32Bのnvfp4版が15.7GB

  • ライセンスは年商2000万ドル未満なら商用可

ComfyUIが公開当日にネイティブ対応(Kijai氏の実装がその日のうちにマージ、v0.30.0がリリース)していたので、導入はモデルをダウンロードして所定のフォルダに置くだけでした。

今回のフローで重要なのは、H3にはポーズ入力の口が無いことです。Wan2.2 Animateのように骨格を渡して動かす仕組みではなく、「参照動画から動きを読み取る」方式。ここに後で苦しみます。


まず動かしてみる

自作キャラクターの参照画像1枚と、部屋で撮ったセルフィー動画を渡してみました。LoRAは一切使っていません。

これが1発目です。青灰色の髪、毛先だけ黄色、前髪で片目が隠れているジト目、白いケーブルニットのベスト——参照画像1枚から、キャラクターの設定がほぼ完全に再現されました

これまで使っていたSCAIL-2では、この水準を出すのに専用のキャラクターLoRAを学習させて強度0.4〜0.7で当てる必要がありました。それが参照画像1枚で超えてきたのは正直驚きです。

背景も部屋のレイアウト(電子レンジやブラインドの位置)が保たれています。ただしこれは「実写のピクセルが残っている」のではなく「似た構図で描き直されている」状態です。ここも後で重要になります。

絵柄を寄せる

初期状態だと絵柄がセル塗り寄りだったので、参照画像の解像度設定を上げ(ref_image_size を max に)、プロンプトで鉛筆画の質感を明示しました。

左が初期設定、右が調整後(シードは同じ)。鉛筆のハッチングが天井や壁まで全面に転写され、紙に描いたアニメーションのような質感になりました。処理時間はほとんど変わりません。参照画像が小さければ max 設定のコストはほぼ無視できます。


実際のvlog素材で試す

条件の違う3本のクリップで検証しました。強い日差しの屋外、高架下でボトルを飲む場面、夜の神社を歩く後ろ姿。


  • 明るい屋外でもキャラクターが崩れない。SCAIL-2ではLoRA強度を上げないと半写実化していた条件です

  • ボトルを持って飲む動作や、背景の看板の文字まで保持されました

  • 夜間の全身カットでも、前景の梁や提灯を残したまま歩行が成立

そして特筆すべきは、ロングヘアが自由に描けること。Wan2.2 Animateの置換モードは「マスクの内側しか描けない」という構造的な制約があり、元の人物より長い髪を描くことが物理的にできませんでした。H3はマスクという概念自体が無い全フレーム再生成なので、この制約がゼロになります。


実写背景に戻す

H3は背景を再生成するので、実写の背景をそのまま使いたい場合はキャラクターだけを抜いて合成する必要があります。ここは既存のパイプライン(SAM3でシードマスク→MatAnyone2で時間伝播)がそのまま流用できました。

124フレームの処理が16秒。毛先の細かいシルエットも鉛筆の輪郭線も保持されていて、マット品質は十分です。


本題:姿勢をどう制御するか

ここからが今回いちばん時間を使った部分です。

H3の弱点はポーズ追従が緩いこと。参照動画から動きを「読み取る」方式なので、骨格を厳密にトレースするWan2.2 Animateには及びません。実際、歩行シーンではキャラクターがほとんど静止してしまうことがありました。

そこで3つの方法を順番に試しました。

案1:骨格動画を参照動画として渡す → ✗

ViTPoseで骨格を抽出して、棒人間の動画を参照として渡してみました。

結果は完全に失敗。骨格が示す位置も「後ろ姿」という向きも無視して、顔寄りの別構図に化けてしまいました。

左が参照なしの素の状態、中央が骨格のみ、右が「実写+骨格の2本渡し」。骨格単体は使いものになりませんが、実写と併せて渡すと多少改善します。

理由は明快で、H3の学習分布に「棒人間の動画」が入っていないからです。分布外の入力は「緩いインスピレーション」程度にしか扱われません。

案2:Wan Animateの出力を参照動画にする → ◎ …のはずだった

では「アニメキャラが動いている動画」なら分布内では? という発想で、Wan2.2 Animateで生成したグレー背景のキャラクター動画を、H3の参照動画として渡してみました。


左がWanの出力、中央と右がH3の出力です。前屈みの姿勢まで一致するレベルでポーズを追従しました。仮説どおりです。

これで解決——と思ったのですが、実素材で試すと問題が見えてきました。

Wan駆動の落とし穴

左が従来パイプライン、右がWan駆動のH3。一見良くなっているのですが、よく見るとWan側の間違いをH3が忠実に再現しているのです。

  • 神社のカットでWanの後ろ髪の描写が崩れている → H3出力も同じように崩れる

  • 実写に写っていた白いボトルがWan出力で曖昧になる → H3もWan準拠になり、実写の小物が失われる

つまり、高精度なH3が低精度なWanをお手本にしてしまうという本末転倒が起きていました。ポーズは合っているのに、ディテールが劣化する。

案3:多面キャラクターリファレンス → ◎ こっちが正解

そこで発想を変えました。モーションソースを変えるのではなく、参照画像の側を強化する

H3は参照画像を9枚まで受け取れます。手持ちのデータセットから、正面以外の視点を発掘して4枚構成にしました。

正面・左横顔・3/4バック(背面寄り)・右横顔。プロンプトで「3枚目は後ろから見たときの髪の参照」と明示します。

左が参照画像1枚、右が多面参照。1枚だと「振り向いてカメラ目線」に化けていたのが、多面参照では後ろ姿のまま維持され、後ろ髪も正しく描かれました。Wanを一切経由せずに向きの問題が解決しています。

群衆のシーンでも効果が出ました。

夏祭りの人混みを歩く後ろ姿。参照1枚では前景の人物が置換されず素通りしていたのが、多面参照+「前景の人物だけを置き換える」という明示で正しく置換されました。周りの人々や提灯、屋台は実写のまま残っています。

番外:実写を直接latentに流し込む(不発)

Wanを完全に外す最終手段として、実写動画をH3の初期latentにして途中から生成を回す(画像生成でいうimg2img相当の)方法も試しました。ComfyUIの標準ノードだけで配線できることは実装を読んで確認済みです。

結果は不発でした。denoise 0.6では構造やボトルは完璧に保持されるものの、絵柄が実写のままでアニメ化しない。逆に上げると背景がドリフトする。構造保持とスタイル転換のトレードオフが強く、ちょうどいい中間点が見つかりませんでした。ここはもう少し詰める余地があります。

姿勢制御の結論

手法 ポーズ厳密性 副作用 判定 多面参照+実写を参照動画 中(位置・向き・シルエットは合う) なし 第一選択 Wan Animate出力を参照動画 高 Wanの誤りを丸ごと継承 動きが激しい時のみ 実写+骨格の2本渡し 中の下 なし 補助程度 骨格動画のみ ✗ 構図ごと化ける 不採用 実写のlatent流し込み 高 絵柄が変わらない 保留

「姿勢を厳密に合わせる」より「向きとシルエットが正しければ十分」に発想を変えるのが正解でした。

多面参照はWanを経由しないので、誤りの継承源がそもそも存在しません。後ろ姿・後ろ髪という一番効く部分が参照画像の側で解決するため、モーションの細部が多少緩くてもアニメーションとしては破綻しないんです。

考えてみれば当たり前で、アニメを見ている人は「実写の人間と同じ角度で腕が動いているか」なんて見ていません。キャラクターが正しく見えるかどうかを見ている。制御すべき対象を間違えていた、という話でした。


リップシンクもできる

H3は音声も同時に生成するので、手持ちの音声に口を合わせることができます。

ローカルで動かしているTTS(irodori-tts)で8.7秒の台詞を作り、H3の参照音声として渡しました。プロンプトには「この音声をそのまま使う」「参照動画の口の動きは完全に無視する」「口はこの音声に同期させる」と明示。

  • 音声の波形エンベロープ相関が0.983 — 入力音声がほぼそのまま維持されました

  • 口の形の変化、瞬き、自然な首の動きも生成されています

コミュニティでは「入力音声が維持されない」「リップシンクが合わない」という報告が多かったのですが、プロンプトの書き方で解決する可能性が高いと思います。公式のプロンプトガイドにある書式に素直に従うのが大事でした。


速度:1本8分まで短縮

初期状態だと5秒のクリップに21〜22分かかっていました。コミュニティで共有されていた高速化のノウハウを、同じシードで1つずつ検証しました。

構成 5秒クリップ 画質 素の状態(20ステップ) 21〜22分 基準 +EasyCache 14分18秒 差は拡散の揺らぎレベル +SageAttention 2.2 12分31秒 同上 +15ステップ 8分14秒 目視で同等

合計62%短縮、画質の劣化なし。上の画像は最適化前後を同じシードで比較したものですが、違いが分からないレベルです。

ちなみにSageAttentionの効果はコミュニティ報告の「約2倍」に対して、うちの環境では12.5%程度でした。ARM+Blackwellという構成の違いか、そもそも元の実装が速いのか。こういう「他所の数字がそのまま出ない」のは自宅運用あるあるです。

消費電力は最大67.9W。GB10には高負荷時に電源保護が働いて突然落ちる持病があるので、クロックを2100MHzに制限した状態で運用していますが、危険域(82〜95W)には余裕がありました。


まとめ

一日回してみた結論です。

【基本】多面キャラクター参照(正面/左横/右横/背面寄り)+ 実写を参照動画
  → MiniMax H3(15ステップ + EasyCache + SageAttention)
  → マット抽出 → 実写背景へ合成

【例外】走る・踊るなど動きが激しいカット
  → Wan2.2 Animate(骨格駆動)→ H3の参照動画として渡す
  • キャラクターの再現性・画質・スタイル転写はH3が既存モデルを明確に上回る

  • ロングヘアなどシルエットが元の人物と大きく違うキャラも自由に描ける

  • 姿勢の厳密性が要る場面だけ、既存のWanパイプラインを前段に置く

  • 音声とリップシンクまでH3の中で完結する

  • 5秒のカットで8分。実用範囲

公開初日のモデルがその日のうちにComfyUIで動いて、既存のパイプラインの弱点(ロングヘア問題、キャラLoRAの学習コスト)を両方解決してしまったのは痛快でした。

残る課題は真後ろの参照画像です。今は3/4バックで代用していますが、完全な背面図を用意すれば後ろ髪の精度はもう一段上がるはず。あとは実写を直接流し込むV2Vをもう少し詰めたい。

蒸留LoRA(少ないステップで生成できるようにする追加学習)が出れば、さらに数分の世界になると思います。公開翌日の時点ではまだ存在しないので、そこはコミュニティ待ちですね。

※8/6追記

いろいろ検証中。前の検証を覆す内容も出てきてしまっているので後日また書きたい


検証環境: DGX Spark (GB10 / 128GB unified memory / ARM64 / Blackwell)、ComfyUI v0.30.0、MiniMax H3 ref2va int8 + Qwen3-VL-32B nvfp4

いいなと思ったら応援しよう!