
MiniMax H3でVAEの処理を高速化できるComfyUI-H3VAE_TRTというカスタムノードが公開されました。
SNSでも話題になっていたので、今回はこのカスタムノードの使い方を紹介します。
ComfyUI-H3VAE_TRTとは?
ComfyUI-H3VAE_TRTは、MiniMax-H3のVAEをTensorRT版に置き換えてComfyUIで動かすカスタムノードです。
公式の説明では、速度が最大1.7倍になります。
追加されるノードは2つだけで、ONNXからTensorRTエンジンを作る MiniMax-H3 TRT VAE Compiler と、作ったエンジンをVAEとして読み込む MiniMax-H3 TRT VAE Loader です。
どちらもノードメニューの MiniMax_H3/Acceleration の中にあるノードになります。
エンコードとデコードの両方に対応。
Loaderの出力はVAE型なので、既存のworkflowのVAEローダーと差し替えるだけで使えます。
主な特徴
- MiniMax-H3のVAEをTensorRTで動かすカスタムノード
- 公式の説明では速度が最大1.7倍
- 追加されるノードはCompilerとLoaderの2つだけ
- 出力はVAE型で、既存workflowのVAEローダーと差し替えられる
- エンコードとデコードの両方に対応

導入方法
ComfyUI本体をまだ入れていない人は、こちらを参考にしてください。

Managerから入れる場合は、ComfyUI Manager→Custom Nodes Managerで ComfyUI-H3VAE_TRT を検索してインストールするだけです。
手動でcloneする場合は以下のコマンドを実行してください。
cd ComfyUI/custom_nodes
git clone https://github.com/lihaoyun6/ComfyUI-H3VAE_TRT.git依存はtensorrtだけなので、コマンドで入れてます。
Stability MatrixならComfyUIフォルダの仮想環境に直接入れてください。
venv/scripts/python.exe -m pip install tensorrtポータブル版はCMDでComfyUI_windows_portable\python_embededを開き、以下でインストールできます。
python.exe -m pip install tensorrt入れ終わったらComfyUIを再起動してください。
モデルのダウンロードと配置
使う前に、ONNX版のVAEを3ファイル用意します。
| 種類 | ファイル名 | 配置先 |
|---|---|---|
| ONNX VAE(デコーダー本体) | minimax_h3_vae_decoder.onnx | ComfyUI/models/vae |
| ONNX VAE(デコーダーの重み) | minimax_h3_vae_decoder.onnx.data | ComfyUI/models/vae |
| ONNX VAE(エンコーダー) | minimax_h3_vae_encoder.onnx | ComfyUI/models/vae |
3ファイルすべて必要で、decoderの.onnxと.onnx.dataはセットです。
ComfyUI/models/vae/
├── minimax_h3_vae_decoder.onnx
├── minimax_h3_vae_decoder.onnx.data
└── minimax_h3_vae_encoder.onnx3つ合わせて約5.2GBあります。
TensorRTエンジンのコンパイル
ONNXのままでは使えないので、最初に一度だけMiniMax-H3 TRT VAE CompilerでTensorRTエンジンへ変換し、そのエンジンをMiniMax-H3 TRT VAE Loaderで読み込む形になります。
MiniMax-H3 TRT VAE Compilerノードを置いて、decoder_onnxに minimax_h3_vae_decoder.onnx、encoder_onnxに minimax_h3_vae_encoder.onnx を選んでください。
delete_onnx_after_compile をオンにすると、変換が終わったあとにONNXと.onnx.dataを自動で削除します。
ノードを実行すると、VRAM上のモデルを一度全部解放してからビルドが始まります。

デコーダーで4GB、エンコーダーで8GBの作業領域を取る設定なので、他のアプリでVRAMを使っていると失敗しやすいです。
「Done! Press “R” to refresh the model list.」と出たら終了です。

MiniMax-H3 TRT VAE Loaderの方を追加してRキーで更新すると、それぞれ.engineが使えるようになります。

エンジンは環境ごとに作るものなので、GPUやTensorRTのバージョンが変わったら作り直しになります。
使い方
MiniMax-H3 TRT VAE LoaderをVAE Decodeに繋ぐだけです。

あとはI2Vなら画像とPrompt、解像度などを決めて実行してください。
実行結果
生成環境はVRAM16GB、RAM64GB、0.4MP(864 x 480)、高速LoRA有、8step、15秒の動画でやりました。
seed値固定し忘れたので動画の内容はちょっと変わっちゃってます。
・VAE(fp16)の結果
まず普通のVAE(fp16)だと全体が558.61秒、VAE Decodeは101.765秒。

・TRT
TRTは全体497.19秒、VAE Decodeは62.231秒。

・VAE(int8)の結果
VAE(int8)だと485.10秒、VAE Decode部分は58.484秒。

| VAE | 全体 | VAE Decode |
|---|---|---|
| fp16 | 558.61秒 | 101.765秒 |
| TRT | 497.19秒 | 62.231秒 |
| int8 | 485.10秒 | 58.484秒 |
うまくいかないときは
つまずきやすいのは、だいたい次の3つです。
- Loaderのプルダウンに.engineが出てこない → コンパイルがまだか、Rキーでのリスト更新をしていない
- 「TensorRT library not found!」で止まる → ComfyUIのPython環境にtensorrtが入っていない
- コンパイル中に落ちる、VRAMが足りない → 他の生成を止めてVRAMを空けてからやり直す
まとめ
fp16のVAEを使いたい、でもint8くらいの速度で生成したいという方には良いカスタムノードかもしれません。
ただint8で特に不満はないとかであれば、あまり入れる必要はないように感じました。
この辺りは人それぞれなので、好みもあるかと思います。
以上ComfyUI-H3VAE_TRTの使い方を紹介しました。
参考になれば幸いです。

