ComfyUI-SolAttn_tritonでMiniMax H3を高速化する方法

以前書いたSpectrumとは別に、MiniMax H3を高速化できるComfyUI-SolAttn_tritonというカスタムノードをkijai氏がリリースしました。

使い方は混合順さんの記事やうみゆきさんのポストを参考にしています。

この記事ではノードの導入と、自分の環境でSageAttentionやEasyCacheを併用し、生成速度や結果がどうなるか紹介します。

ComfyUI-SolAttn_tritonとは?

ComfyUI-SolAttn_tritonは、Sol-AttnをComfyUIで動かすための実験的な実装です。

モデルのAttentionを差し替えて推論を速くする狙いのノードで、ワークフローにノードを1つ挟む形で使います。

まだwork in progressの段階なので、これから変わる部分がある前提で触るのがよさそうです。

Tritonを使う実装なので、初回の実行はコンパイルが入るぶん遅くなります。

主な特徴

  • Sol-AttnをComfyUIのモデルにパッチとして適用する
  • Tritonベースの実装で、初回実行はコンパイル分だけ時間がかかる
  • tau、start_percent、end_percentで速度と品質のバランスを調整できる
  • repoだと4090と5090、MiniMax H3で動作確認されている
  • 開発中の実験的な実装
GitHub – kijai/ComfyUI-SolAttn_triton
Contribute to kijai/ComfyUI-SolAttn_triton development by creating an account on GitHub.

必要なもの

ComfyUIで動かすのでComfyUIが必要です。

導入がまだの方はこちらの記事を参考にしてみてください。

【ComfyUI】の使い方・始め方まとめ|インストールから基本操作・カスタムノードまで
ComfyUIを始めたいけど、インストール方法がいくつかあってどれを選べばいいか迷う、という方は多いと思います。この記事では、ComfyUIの導入方法の違いと選び方、そして基本的な使い方の入口をまとめて紹介します。各トピックの詳しい手順は、…

MiniMax H3の基本的な使い方についてはこちらで紹介しています。

【ComfyUI】MiniMax H3で音声付き動画を生成する方法
MiniMax H3をComfyUIでローカル実行し、T2V・I2V・R2Vでステレオ音声付き動画を生成する手順です。方式ごとのモデル、入力画像・参照素材、プロンプト、解像度の設定まで紹介します。

Tritonのインストール

ComfyUI-SolAttn_tritonは名前の通りTritonが必要です。

SageAttentionは任意ですが、併用することでより高速化が可能です。

Stability Matrixならオプションでインストールできますが、ポータブル版は自身で導入する必要があります。

情報が古くなってるかもしれませんが、以前書いた記事があるのでこちらを参考にしてみてください。

【ComfyUI】ポータブル版でTriton+SageAttentionをインストールする方法|aiaicreate
StabilityMatrixのComfyUIだと簡易インストール機能があり、簡単に導入できるようです。 ただポータブル版だと手動でインストールする必要があり、調べてもあまり情報が見つかりませんでした。 Stability Matrixに手…

カスタムノードのインストール

執筆時点でComfyUI-SolAttn_tritonはManagerには公開されていませんでした。

なので手動インストールします。

custom_nodesフォルダでクローンしてください。

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

SageAttentionを使う場合はComfyUI-KJNodesも必要です。

こちらはManager、または手動でインストールしてください。

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

クローン後は、ComfyUIを再起動します。

ノードの設定&実行

今回はComfyUIの公式テンプレートで試します。

左上部のメニューから「Browse Templates」を開いて→MiniMax H3: Image to Videoを取り込んでください。

Patch Sol-Attn

MiniMax H3の処理がImage to Video (MiniMax H3)というサブグラフにまとめられているので、サブグラフ内に入るか、右クリック→Unpack subgraphで展開して内部のノードを表示してください。

Spectrumと同じで、モデルローダーとサンプリング用ノードの間へ配置します。

またパラメータを以下のように設定します。

  • sink_conditioning:exact_kv
  • morton:true
  • morton_curve:3d
モデルローダーとサンプリング用ノードの間へPatch Sol-Attnを接続したワークフロー

もしSageAttentionを追加するならPatch Sol-Attnの前、EasyCacheは後に追加します。

これは他の方の真似をしているだけで理屈はよく分かってません。

Patch Sage Attention KJ・Patch Sol-Attn・EasyCacheをこの順で接続したノード

それぞれのノードは以下のように設定します。

Patch Sage Attention KJ

  • sage_attention:sageattn_qk_int8_pv_fp8_cuda++
  • allow_compile:true
Patch Sage Attention KJノードの設定画面

EasyCache

  • reuse_threshold:0.3
  • start_percent:0.2
  • end_percent:0.9
EasyCacheノードの設定画面

初回はTritonのコンパイルで待たされるので、設定を比べるなら2回目以降で見たほうがいいそうです。

Patch Sol-Attnの生成結果

それぞれ生成速度は以下の通りでした。

位置設定生成時間
左上デフォルトのworkflow6分3秒(363.42 seconds)
右上Patch Sol-Attn4分22秒(262.13 seconds)
左下Patch Sol-Attn+EasyCache2分48秒(168.99 seconds)
右下Patch Sol-Attn+EasyCache+SageAttention2分21秒(141.70 seconds)

追記:10秒以上の動画かつもう少し動きのあるものじゃないと効果が分からないとのことだったので、別の動画で試して見ました。

ちょうど10秒ですが、5秒と同じくらい高速化はできており、動画もほぼ崩れていないと思います。

なので長さや動画内容に関係なく使えそうです。

位置設定生成時間
デフォルトのworkflow18分03秒(1083 seconds)
Patch Sol-Attn+EasyCache+SageAttention6分3秒(363.42 seconds)

まとめ

Spectrumノードありが4分44秒だったので、Patch Sol-Attnのみだと大体同じような効果でした。

ただEasyCacheとSageAttentionを組み合わせることで、そこからさらに2倍近く高速化が可能です。

今回の検証を見る限りでは動画の劣化はほとんどないので、生成を高速化してみたいという方は、ぜひ試してみてください。

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

参考になれば幸いです。

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