ComfyUI-H3VAE_TRTの使い方|MiniMax H3のVAEをTensorRTで高速化する方法

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ローダーと差し替えられる
  • エンコードとデコードの両方に対応
GitHub – lihaoyun6/ComfyUI-H3VAE_TRT: Running ONNX/TRT version of the MiniMax-H3 VAE in ComfyUI, which increase speed by up to 1.7x
Running ONNX/TRT version of the MiniMax-H3 VAE in ComfyUI, which increase speed by up to 1.7x – lihaoyun6/ComfyUI-H3VAE_…

導入方法

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

【ComfyUI】の使い方・始め方まとめ|インストールから基本操作・カスタムノードまで
ComfyUIを始めたいけど、インストール方法がいくつかあってどれを選べばいいか迷う、という方は多いと思います。この記事では、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.onnxComfyUI/models/vae
ONNX VAE(デコーダーの重み)minimax_h3_vae_decoder.onnx.dataComfyUI/models/vae
ONNX VAE(エンコーダー)minimax_h3_vae_encoder.onnxComfyUI/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.onnx

3つ合わせて約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上のモデルを一度全部解放してからビルドが始まります。

ONNXファイルを選んだMiniMax-H3 TRT VAE Compilerノード

デコーダーで4GB、エンコーダーで8GBの作業領域を取る設定なので、他のアプリでVRAMを使っていると失敗しやすいです。

「Done! Press “R” to refresh the model list.」と出たら終了です。

コンパイルが終わりDone! Press R to refresh the model list.と表示されたMiniMax-H3 TRT VAE Compilerノード

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

decoderとencoderに.engineを選んだMiniMax-H3 TRT VAE Loaderノード

エンジンは環境ごとに作るものなので、GPUやTensorRTのバージョンが変わったら作り直しになります。

使い方

MiniMax-H3 TRT VAE LoaderをVAE Decodeに繋ぐだけです。

MiniMax-H3 TRT VAE LoaderのVAE出力を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秒。

fp16のVAEで生成したときのVAE Decodeの処理時間101.765秒

TRT

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

TRTで生成したときのVAE Decodeの処理時間62.231秒

VAE(int8)の結果

VAE(int8)だと485.10秒、VAE Decode部分は58.484秒。

int8のVAEで生成したときのVAE Decodeの処理時間58.484秒
VAE全体VAE Decode
fp16558.61秒101.765秒
TRT497.19秒62.231秒
int8485.10秒58.484秒

うまくいかないときは

つまずきやすいのは、だいたい次の3つです。

  • Loaderのプルダウンに.engineが出てこない → コンパイルがまだか、Rキーでのリスト更新をしていない
  • 「TensorRT library not found!」で止まる → ComfyUIのPython環境にtensorrtが入っていない
  • コンパイル中に落ちる、VRAMが足りない → 他の生成を止めてVRAMを空けてからやり直す

まとめ

fp16のVAEを使いたい、でもint8くらいの速度で生成したいという方には良いカスタムノードかもしれません。

ただint8で特に不満はないとかであれば、あまり入れる必要はないように感じました。

この辺りは人それぞれなので、好みもあるかと思います。

以上ComfyUI-H3VAE_TRTの使い方を紹介しました。

参考になれば幸いです。

タイトルとURLをコピーしました