HunyuanVideoの量子化と高ビットモデルの活用
VRAM12GBローカル環境でHunyuanVideoを使用していると、Q5程度の量子化モデルに落ち着くことが多い。
しかし、より高性能なモデルを扱えないかと調べたところ、VRAMの限界を補う新技術が登場していた。
VRAM 12GB環境での限界
通常、VRAM 12GBのGPUで動作可能なモデルは、言語系ならB7~B8程度で、量子化すればQ5やQ6あたりが無難だ。
動画生成においても、パラメーター数を減らしたり、量子化を施すことでVRAM使用量を抑えられるが、その代償として表現力が下がる。
RTX 4070のVRAM 12GBでは、HunyuanVideoのQ5モデルが安定して動作するが、それ以上のビット数になるとVRAMがパンクして止まってしまう。
RTX 40シリーズ向けのおすすめフォーマット
フォーマット | 速度 | 精度 | 特徴 |
---|---|---|---|
BF16 GGUF | ◎(高速) | ◎(高精度) | RTX 40シリーズのTensorコア最適化、計算が安定 |
FP16 GGUF | ◎(高速) | ◎(高精度) | BF16よりVRAM消費がやや大きいが、広く互換性あり |
Q6_K GGUF | ○(軽量) | ○(やや劣化) | 量子化によるVRAM節約、RTX 40シリーズでの動作良好 |
Q5_K GGUF | ○(軽量) | △(劣化) | さらに軽量で、精度がやや犠牲 |
VRAMごとの推奨フォーマット
- VRAM 16GB以上(RTX 4090/4080) → BF16 GGUF or FP16 GGUF(高精度 & 高速)
- VRAM 12GB前後(RTX 4070 Ti, 4070) → Q6_K GGUF(VRAM節約しつつ速度と精度のバランス)
- VRAM 8GB(RTX 4060 Ti, 4060) → Q5_K GGUF or Q4_K GGUF(VRAM節約重視)
ComfyUI-MultiGPUとDisTorchの登場
HunyuanVideoのBF16モデルは23.8GBあり、CLIPなどの追加要素を読み込むとRTX 4090でもVRAMが不足する状況のようだ。
しかし、ここでComfyUI界に革命的な技術が登場した。
ComfyUI-MultiGPUの中核技術であるDisTorchは、GPUのVRAMを別のGPUのVRAMへオフロードする機能を持ち、さらにシステムRAMへのオフロードも可能。つまり、仮想VRAMとして機能し、VRAMの制約を回避できる。
要はVRAM12GBのグラボでそれ以上のサイズのモデルを稼働させられる夢の機能だ。
最後に参考として詳しい機能解説を載せた。
高ビットモデルの実験
shiba*2氏は、VRAM 12GB環境でQ8(サイズ13GB)モデルを動作させることに成功している。
そこで、筆者もQ8を試し、100フレーム程度の動画生成に成功した。さらに、システムRAM 64GB環境でBF16(23.8GB)を試したところ、初期の引っ掛かりはあったものの、あっけなく動作した。
比較動画の結果
- テスト条件
- Seed固定 769687777487998
- シフト17
- ガイダンス10
- ステップ20
- 41-101フレーム
- 480×720と720×1280
男性の顔アップは720×1280-41フレーム、女性の顔アップは480×720-49フレームにした。ほかは480-720-101フレーム
比較動画では、Q5, Q8, BF16を並べて検証。
結果
- アクション自体はQ5もBF16も大きな差は感じられない。
- 男性は高ビットモデルがかっこいいがQ8とBf16の差は小さい
- 女性はどのビットモデルも大差がない?
- トラはより高いビットモデルの顔がかわいく仕上がっている
- ただし、通常の用途ならQ5で十分
- 1280×720で細かい描写を求めるなら、高ビットモデルを試す価値あり。
結論として、VRAM 12GB環境でもDisTorchを活用すれば、Q8やBF16のモデルも実用レベルで動作可能。今後、より高度なモデルを活用する道が開けたようだ。
HunyuanVideoに限ると、より美しくバランスの取れた動画を生成したいならBF16モデルがいいが差を感じられるのはより高品質動画の720×1280でありBF16モデルで長時間生成は厳しい。
480X720のBF16ではそれ以下のモデルと差が出にくいので高画質の720X1280に低ビットモデルのQ5を組み合わせて長時間生成を目指す手段として活用するのがよさそうだ。
やり方などは説明が大変なので途中でご紹介した参照記事を読んでいただきたい。
実は欲しい情報がなかなか見つからず技術系会員募集アフィリエイトブログにたどり着き、だらだら長時間読まされた上に肝心な部分が読めず「ここまで無駄に読まされた老い先短い人間の大事な時間を返せ!」(笑)と言いたくなったので、これをアップして参考になったshiba*2さんの記事の検索順位を上げる支援をしておきたい。
あとGJL氏はFULX.1にてこの技術に言及している。
参照記事にはワークフローを作成しており誰でもダウンロードできるようにしてくれているのでComfyUIがそれなりに使えてVRAM12GB+システムRAM64GBあれば夢のBF16モデルが動かせるかも?
参考
「ComfyUI」における「Distorch」技術は、VRAM(ビデオメモリ)の消費を削減するために、モデルの一部のデータや処理をシステムRAM(主記憶装置)にオフロードする手法を採用しています。従来、AI生成モデルでは、システムRAMを使用すると処理速度が大幅に低下することが一般的でしたが、「Distorch」は以下の方法でこの問題に対処しています。
-
動的オフロード: モデルの特定の部分やレイヤーを動的にシステムRAMに移動し、必要に応じてVRAMとシステムRAM間でデータをやり取りします。これにより、VRAMの使用量を抑えつつ、処理速度の低下を最小限に抑えることが可能です。
-
効率的なメモリ管理: 「Distorch」は、メモリ使用状況をリアルタイムで監視し、最適なデータ配置を行います。これにより、VRAMとシステムRAMのバランスを保ちながら、高速な処理を維持します。
ただし、完全にVRAMを使わずにシステムRAMだけで処理を行うと、依然として速度の低下が避けられません。そのため、「Distorch」はVRAMとシステムRAMのハイブリッドな使用を推奨し、処理速度とメモリ使用量のバランスを最適化しています。
具体的な設定として、ComfyUIを起動する際に--highvram
オプションを使用すると、データのオフロード先をCPUではなくGPUに設定し、VRAM上での処理を優先させることができます。
また、ユーザーの環境やモデルの構成によっては、VRAMの使用量が50%程度に制限される場合があります。このような場合、--highvram
オプションを使用することで、VRAMの使用効率を向上させることが可能です。
要約すると、「Distorch」はVRAMとシステムRAMの効果的な活用を通じて、VRAMの消費を削減しつつ、処理速度の低下を最小限に抑える技術です。適切な設定とハードウェアの組み合わせにより、AI生成モデルの効率的な運用が可能となります。