見出し画像

「低スペックPCでは無理」は本当? VRAM16GBでMiniMax H3のローカル動画生成がここまで動いた話

こんにちは、TKです。

前回は、Codexにニュース動画の編集システムを作ってもらった話を書きました。

最近流行りのAI動画編集をCodexでやってみた

今回は「画像や音声を並べて動画にする編集」ではありません。

1枚の静止画そのものを、AIで動かします。

使ったのは、MiniMax H3というImage-to-Videoモデルです。

赤髪の女性がコインランドリーのベンチに座っている1枚絵を渡し、まばたき、呼吸、髪の揺れ、指先の動き、洗濯機の回転、ゆっくりしたカメラ寄りを付けました。

最終的な出力は、864×480、24fps、124フレーム、約5.17秒。

音声トラックは入れていません。

動画生成全体にかかった時間は約169秒でした。

「ローカル動画生成は、VRAM 24GB以上の高級GPUがないと無理」

僕もそう思っていました。

でも実際に必要だったのは、性能で殴ることより、重い処理をどう減らすかを決めることでした。

「動画生成は24GB以上」が当たり前だと思っていた

ローカルAIの情報を探していると、VRAM 24GB、32GB、48GBといった数字をよく見かけます。

画像生成でも重いのに、動画では何十枚、何百枚というフレームを一度に扱います。

普通に考えれば、必要なメモリが増えるのは当然です。

今回使ったモデルも軽くはありません。

  • 動画生成モデル:約19.5GB

  • テキストエンコーダー:約14.6GB

  • Video VAE:約3.0GB

保存するモデルファイルは合計で約40GBあります。

ただし、ディスク上のモデルサイズと、生成中にGPUへ載せ続けるVRAM量は同じではありません。

必要な部分だけGPUへ載せ、使い終わった部分をメインメモリ側へ逃がせれば、モデル全体より少ないVRAMでも動かせます。

今回の実測環境は、RTX 5070 TiのVRAM 16GBです。

いわゆる低価格GPUではありませんが、動画生成でよく基準にされる24GB級より8GB少ない環境です。

また、参考にした公開ワークフローにはRTX 3060向けの構成もあります。

ただし、この記事の時間と画質は16GB環境での実測です。3060や6GB環境で同じ数字が出ると断定するものではありません。

今回作ったもの:1枚絵を5秒の無音動画にする専用画面

最初はComfyUIのノードを直接つなぐことも考えました。

でも、毎回巨大なワークフローを開き、画像、フレーム数、モデル、保存先を確認するのは大変です。

そこで、必要な操作だけを残した専用画面を作りました。

画面で触るのは、ほぼ次の4つだけです。

  1. 元になる画像を選ぶ

  2. 何をどう動かすかを書く

  3. 5〜15秒の長さを選ぶ

  4. 画質を選んで生成する

裏ではComfyUIが動いていますが、ユーザーは複雑なノードを見る必要がありません。

今回の指示は、次のような内容です。

女性が自然にまばたきし、ゆっくり呼吸する。髪と指先がわずかに動き、背後の洗濯機が回転する。カメラは顔へゆっくり寄る。顔、体型、服、コーヒー缶、背景の構図は維持する。

MiniMax H3の公式プロンプト形式へ、画面側で自動的に整形します。

生成時に音声は要らなかったため、音に関する項目は常に`N/A`へ固定しました。

Audio VAEもダウンロードしません。

最終MP4にも音声ストリームはありません。

ワークフロー:重い動画生成を7段階に分けた

今回の処理を簡単にすると、次の流れです。

入力画像
  ↓
0.40MP前後へリサイズ
  ↓
動きの指示をMiniMax公式形式へ整形
  ↓
int8 / NVFP4の軽量モデルを読み込む
  ↓
25 stepsで動画の潜在表現を生成
  ↓
EasyCacheで再計算を減らす
  ↓
Video VAEで画像フレームへ戻す
  ↓
24fpsのH.264 MP4として保存

主な設定は次のとおりです。

| 項目 | 今回の設定 |
|---|---|
| 長さ | 約5.17秒 |
| 解像度 | 864×480(約0.4MP) |
| フレームレート | 24fps |
| 総フレーム数 | 124 |
| サンプリング | 25 steps / simple |
| キャッシュ | EasyCache 0.3 / 0.2〜0.9 |
| 動画モデル | int8 ConvRot |
| テキストエンコーダー | NVFP4 AWQ |
| Video VAE | int8 ConvRot |
| 音声 | 生成しない |

MiniMax H3は、好きなフレーム数を何でも指定できるわけではありません。

内部の条件に合うフレーム数へ揃える必要があるため、画面で5秒を選んでも、完成動画は約5.17秒になります。

この変換も画面側で自動化しました。

16GBで効いたのは、機能を足すより先に捨てること

低VRAM環境で動かすために、一番効いたのは「便利そうなものを全部入れない」ことでした。

今回、最初から捨てたものがあります。

  • 生成時の音声

  • いきなり10秒、15秒の長尺

  • 1080pでの直接生成

  • 毎回変わる複雑な設定

  • 使わない追加モデル

代わりに、次の部分へ絞りました。

  • まず5秒

  • まず0.40MP

  • 24fps

  • 25 steps

  • EasyCache

  • Dynamic VRAMによる退避

  • int8 / NVFP4の量子化モデル

EasyCacheは、毎ステップを同じ重さで計算せず、再利用できる部分をキャッシュする仕組みです。

今回のログでは、25 stepsのうち13 steps分の計算がスキップされ、`2.08x speedup`と表示されました。

もちろん、設定を削れば無条件に良くなるわけではありません。

解像度を落としすぎると顔が崩れます。

stepsを減らしすぎると、動きや質感が安定しません。

長さを伸ばせば、その分だけ時間とメモリの負担が増えます。

だから「一番軽い設定」を探すのではなく、「自分が許容できる画質の中で一番軽い設定」を固定する必要があります。

これは、以前ローカルLLMを高速化したときにも感じたことでした。

ローカルLLMが遅すぎる。高速化する前に「待ち時間」を分解した話

速度だけを追うと、速いけれど使えないものが完成します。

最大の落とし穴:処理は成功したのに、動画が真っ黒だった

ここまで読むと、順調に完成したように見えるかもしれません。

実際は、一度かなり大きく失敗しています。

最初の生成は、エラーを出さずに最後まで完了しました。

MP4も保存されました。

再生時間もフレーム数も正常です。

ところが、再生すると全フレームが真っ黒でした。

最初はプロンプトやVideo VAEの設定を疑いました。

しかし、入力画像をVideo VAEで圧縮し、そのまま復元するだけの診断を行っても黒くなります。

つまり、動画生成モデルの前段階で壊れていました。

原因は、使っていたComfyUI v0.30.0のポータブル版に、int8 ConvRot Video VAEを正しく扱う変更がまだ入っていなかったことです。

必要だったのは、ComfyUI公式のPR #15334でした。

この公式修正を適用すると、同じ入力画像のVAE往復テストが正常に復元されました。

その後にもう一度I2Vを実行すると、黒画面ではなく、元の人物と構図を保った動画が出力されました。

いまのセットアップには、この修正を自動適用する処理を入れています。

一度適用済みなら重ねて壊さず、未適用ならセットアップ時に追加します。

今回一番怖かったのは、エラーが出なかったことです。

「処理が完了した」と「正しい映像ができた」は別でした。

ローカル動画生成では、最低でも冒頭、中間、終端の3フレームを画像として取り出し、黒画面、崩れ、動きの有無を確認した方がよいです。

実測結果:5.17秒の動画を約169秒で生成できた

修正後の実測結果は次のとおりです。

  • GPU:RTX 5070 Ti / VRAM 16GB

  • 出力:864×480

  • フレームレート:24fps

  • フレーム数:124

  • 動画時間:約5.17秒

  • 生成全体:約168.74秒

  • コーデック:H.264

  • 映像ストリーム:1

  • 音声ストリーム:0

元画像から顔、赤い髪、白いニット、緑のスカート、コーヒー缶、ベンチ、洗濯機の配置は維持できました。

そのうえで、表情、髪、指先、洗濯機へ小さな動きが入り、カメラがゆっくり顔へ寄っています。

派手なアクションではありません。

でもADVゲームのイベントCG、会話シーン、ショート動画の差し込み、SNS用のループ素材なら、この「少しだけ自然に動く」がかなり使えます。

低スペック寄りの環境で試すなら、僕は次の順番をおすすめします。

  1. 音声を切る

  2. 5秒から始める

  3. 0.25〜0.40MPにする

  4. 量子化モデルを使う

  5. Dynamic VRAMを有効にする

  6. EasyCacheを使う

  7. 3フレームを必ず目視確認する

  8. 成功してから解像度と長さを上げる

最初から最高画質、最長時間、音声付きにすると、どこで失敗したのか分からなくなります。

まず小さく通す。

品質を確認する。

次に一つだけ重くする。

この順番なら、GPUを買い替える前に、手元の環境でどこまで届くかを確認できます。

ローカル動画生成は、まだ「誰でもボタン一つで完璧」という段階ではありません。

モデルだけで約40GB必要ですし、5秒を作るのにも数分かかります。

それでも、クラウドの回数制限や従量課金を気にせず、自分の画像を何度でも試せる環境が手元にできました。

今回の結論は、次の一文です。

低スペックPCで高品質なローカル動画生成を狙うなら、GPU性能だけを見るのではなく、動画に必要なものを先に絞る。

24GBがないから諦める前に、まず5秒、無音、0.40MPから試してみる。

そこからなら、ローカルI2Vは十分に現実的でした。

この記事が参考になったら「スキ」をお願いします。

みなさんのGPUとVRAM容量、どのくらいの動画が作れたかもコメントで教えてください!

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

TK@非エンジニア×AIでコンテンツ制作 僕の記事に価値を見出してくれた…そのチップという名の『覚悟』、心に響きました。あなたからの応援は、より良い記事を作るための『黄金の風』にしてみせます。後悔はさせません、心からグラッツェ!