「低スペックPCでは無理」は本当? VRAM16GBでMiniMax H3のローカル動画生成がここまで動いた話
こんにちは、TKです。
前回は、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つだけです。
元になる画像を選ぶ
何をどう動かすかを書く
5〜15秒の長さを選ぶ
画質を選んで生成する
裏では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用のループ素材なら、この「少しだけ自然に動く」がかなり使えます。
低スペック寄りの環境で試すなら、僕は次の順番をおすすめします。
音声を切る
5秒から始める
0.25〜0.40MPにする
量子化モデルを使う
Dynamic VRAMを有効にする
EasyCacheを使う
3フレームを必ず目視確認する
成功してから解像度と長さを上げる
最初から最高画質、最長時間、音声付きにすると、どこで失敗したのか分からなくなります。
まず小さく通す。
品質を確認する。
次に一つだけ重くする。
この順番なら、GPUを買い替える前に、手元の環境でどこまで届くかを確認できます。
ローカル動画生成は、まだ「誰でもボタン一つで完璧」という段階ではありません。
モデルだけで約40GB必要ですし、5秒を作るのにも数分かかります。
それでも、クラウドの回数制限や従量課金を気にせず、自分の画像を何度でも試せる環境が手元にできました。
今回の結論は、次の一文です。
低スペックPCで高品質なローカル動画生成を狙うなら、GPU性能だけを見るのではなく、動画に必要なものを先に絞る。
24GBがないから諦める前に、まず5秒、無音、0.40MPから試してみる。
そこからなら、ローカルI2Vは十分に現実的でした。
この記事が参考になったら「スキ」をお願いします。
みなさんのGPUとVRAM容量、どのくらいの動画が作れたかもコメントで教えてください!
いいなと思ったら応援しよう!
僕の記事に価値を見出してくれた…そのチップという名の『覚悟』、心に響きました。あなたからの応援は、より良い記事を作るための『黄金の風』にしてみせます。後悔はさせません、心からグラッツェ!