見出し画像

MiniMax H3 5秒の動画生成が15分から3分30秒に CUDA13.0を使え

MiniMax H3が使えるようになったものの、うちでは5秒の生成に15分かかっていたところから、いろいろと高速化を試してみた記録です。

RTX4060ti16GB RAM32GBの環境です。


前回の記事はこちら。


SageAttention + ComfyUI-SolAttn + EasyCache

まず調べてみて行き着いたのはこちらの記事で、kijaiさんのカスタムノードを使うものです。

やっぱり高速化といえばkijaiさんですね。


GitHubはこちらです。


カスタムノードのフォルダに移動して、git cloneします。

git clone https://github.com/kijai/ComfyUI-SolAttn_triton


ついでに、前回インストールしたSageAttentionもカスタムノードから使えるようにするために、こっちのカスタムノードもgit cloneしておきます。

git clone https://github.com/kijai/ComfyUI-KJNodes.git


これで、EasyCacheも加えて、最初の記事にあるとおりに設定してやってみます。



さて、どうかな。

[INFO] Prompt executed in 00:10:08

おー、効果あるね。EasyCacheもよく効いていて、後半加速した。



もう一回やってみよう。

[INFO] Prompt executed in 561.55 seconds

ついに10分を切ったよ。



ComfyUIのアップデート(v0.31.1)

うちのComfyUIはv0.30.2なんだけど、ComfyUIをアップデートしたら速くなるという話もあるようなので、やってみた。


ComfyUI-Managerから、ポチッとアップデートした。v0.30.2 → v0.31.1

さて、どうだ。

[INFO] Prompt executed in 581.90 seconds

初回から10分が切れた。たったこれだけでも効果があった。



Kijai/MiniMax-H3-experimental

kijaiさんが、なにやら高速なモデルも作っているらしい。

w4a8 is experimental format using 4bit weights and int8-convrot activations, at testing phase, further info here:

https://github.com/Comfy-Org/comfy-kitchen/pull/90

Requires ComfyUI 0.31.0

こう書いてあるが、意味はよくわからない。comfy-kitchenってのがいるのかな?


とりあえずモデルは、

minimax_h3_fl2va_pruned_w4a8_mixed.safetensors
minimax_h3_ref2va_pruned_w4a8_mixed.safetensors
minimax_h3_video_vae_int8_convrot.safetensors

とあって、サイズも小さくなっている。


これでR2Vをやってみよう。


どうかな。

[INFO] Prompt executed in 00:12:20

あれ、12分。遅くなった。


もう一回やってみよう。

[INFO] Prompt executed in 00:11:24

あまり速くならん。


CUDA13.0

なかなか速くならんなぁと思いながら、ComfyUIの起動ログを見てみると、

[WARNING] WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations.

ん、Warningが出て、cu130以上が要るよって書いてある?

さらにその下には、

[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': True, 'unavailable_reason': None,

なんかcomfy_kitchenのことが書かれているし、disabeled:Trueってあかんのちゃう?


ChatGPTにログを投げてみた。

<ログを貼って>
というのがあります。やっぱりcu130にしたほうがいいのでは。

はい。このログを見る限り、今回は cu130 以上に上げる意味がかなりあります。 これまでの「まず12.8のまま様子を見る」という判断より、優先度を上げてよさそうです。

ComfyUI本体の現在のコードを見ると、torch.version.cuda < 13.0 の場合、comfy_kitchen の CUDA backendを明示的に無効化して、

You need pytorch with cu130 or higher to use optimized CUDA operations.

という警告を出す実装になっています。つまり今の torch 2.10.0+cu128 では、H3のINT8 ConvRotで重要な高速CUDAカーネルを使えていません。

さらに、

特に今回使っている

minimax_h3_ref2va_pruned_int8_convrot

では int8_linear や ConvRot の量子化処理がまさに関係します。comfy-kitchen 自体もINT8 ConvRot向けの高速カーネルを実装しています。

ほら、最初からcu130にした方がいいんちゃうってゆったやん。


まあいい、じゃあ早速にcu130にアップデートしよう。

で、どうするの。

で、cu130にするにはどうしたらいい

はい。今の環境なら、OS側のCUDA Toolkitを13.0へ入れ替える必要はありません。まずは comfy-env 内の PyTorchを cu128 → cu130 に差し替えるのが本命です。

PyTorch公式には 2.10.0 + cu130 のLinux用wheelが用意されています。今の 2.10.0+cu128 と同じPyTorch 2.10系のままCUDAビルドだけ上げられるので、変更範囲を最小限にできます。

まずバックアップを取ってください。

source ~/comfy-env/bin/activate pip freeze > ~/comfy-env-cu128-backup.txt

次に現在のTorch系を削除します。

pip uninstall -y torch torchvision torchaudio

そのあと、公式のcu130版を入れます。

pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu130

PyTorch公式の対応表でも、この組み合わせがCUDA 13.0用として案内されています。

わかった。じゃあ早速やってみよう。

source ~/comfy-env/bin/activate

pip freeze > ~/comfy-env-cu128-backup.txt
pip uninstall -y torch torchvision torchaudio
pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu130


よし、これでいってみよう。


カスタムノードの影響は改めて見てみたいから、とりあえず公式のテンプレートのままやってみよう。



どうだ。


[INFO] Prompt executed in 509.43 seconds

おー、速いやん。8分29秒。


comfy_kitchenとかいうのも有効になるなら、kijaiさんのw4a8のモデルも速くなるのでは??



w4a8でやってみよう。

[INFO] Prompt executed in 444.47 seconds

きた。やっぱり速い。7分24秒。



CUDA13.0 + SageAttention + ComfyUI-SolAttn + EasyCache

CUDA13.0にしたから、SageAttentionのバージョンがずれてるはずなので、これを入れ直そう。

source ~/comfy-env/bin/activate

pip uninstall -y sageattention


仮想環境を抜けて

sudo apt install cuda-toolkit-13-0


仮想環境に入り直して

source ~/comfy-env/bin/activate
export CUDA_HOME=/usr/local/cuda-13.0
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
cd ~/SageAttention

rm -rf build dist *.egg-info
export EXT_PARALLEL=2
export NVCC_APPEND_FLAGS="--threads 4"
export MAX_JOBS=4

python setup.py install


これはホイールを入れたらいいんだろうけど、ChatGPTがコンパイルを指示してくれたので、それでやってみた。



よし。これで、カスタムノード挟んでやってみよう。

モデルはw4a8のままで。


[INFO] Prompt executed in 239.01 seconds

熱い。3分59秒。ついに3分台がきた。



もしかして、w4a8じゃない方がさっきも速かったから、int8_convrotでやってみよう。



どうだ。


[INFO] Prompt executed in 212.05 seconds

やっぱり。こっちの方が速いわ。3分32秒。



2回目だと、さらに速くなるかな。

[INFO] Prompt executed in 194.07 seconds

ついに200秒を切った。すごい。


できた動画も、15分かかってたのと変わらない。




これならどんどん生成できそうだわ。

次は15秒もやってみようかな。




ではまた。


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