見出し画像

ComfyUI~Windows画像生成加速計画~

前置き

!!ComfyUIのポータブル版の最新(確認時:ComfyUI 0.3.30)だとSageAttention2への対応が必須になるので注意!!

ハッピーホワイトデー!
数か月前、風のうわさでsage attentionとかtorch.compileとかtritonとかを使うと速くなるらしいと聞きました
へ~っと思って調べて一応やってみて、実際速くなったのですがtritonっていう一番重要なやつがwindows正式対応しておらず、入れる方法が非常に大変だったのです
面倒で環境作り直してから再対応を放置してました

ところが、久し振りに調べてみると大分簡単になっているということで、備忘録として残すことにしました


ターゲット

  • Windowsで生成を速くしたい人

  • ComfyUIを使っている人

    • StabilityMatrix版/ポータブル版/デスクトップアプリ版

  • 重いモデルを使う人

    • Fluxや動画モデル

  • 同じ設定でたくさん生成する人

    • SDXLでもこれに当てはまるなら……

検証時点の情報

  • ComfyUI v0.3.26(ポータブル版はv0.3.3)

  • ComfyUI frontend v1.11.8(同v1.17.11)

  • VRAM16GB

最も簡単で効果的な方法

ComfyUI-TeaCacheのインストール

TorchCompileやSageAttentionも不要!
シンプルにTeaCacheノードを挟むだけで速くなる
rel_l1~はモデル毎の推奨値があるのでリポジトリを見ましょう
Fluxにも動画モデルにも対応しています(SDXLは非対応)

これだけでかなり速くなるので感動するかもしれない
TorchCompileやSageAttentionと違いカスタムノードインストールだけで終わる

同一設定で沢山生成する場合

TorchCompileとSageAttentionをいれます!
ComfyUI毎に対応が変わります

StabilityMatrix版

  1. StabilityMatrixのパッケージメニューを開く

    1. ComfyUIの「…」をクリック

    2. Pythonパッケージ

    3. +をクリックして以下実行

      • pip install -U triton-windows

      • pip install sageattention

  2. こちらのgithubから環境(Pythonのバージョン)に合わせたzipファイルをDL

  3. エクスプローラーでData/Packages/ComfyUI/venvを開く

    • libsフォルダをvenv直下にコピー

    • includeフォルダを同venv/Scriptsフォルダにコピー

  4. StabilityMatrixごと再起動して更新

ポータブル版

  1. ComfyUI/user/default/ComfyUI-Managerのconfig.iniを開いてsecurity_level = weakにする

  2. ComfyUIを起動する

  3. ManagerメニューからInstall PIP~を選び以下を実行する

    • pip install -U triton-windows

    • pip install sageattention

    • 一番下の「SageAttention2への対応」が必要です!

  4. こちらのgithubから環境(Pythonのバージョン)に合わせたzipファイルをDLする

  5. pytyon_embededフォルダにlibsとincludeをコピーする

    • 元々入っていたら一旦避難しておいた方がよい

  6. リスタート&更新

デスクトップアプリ版

  1. Documents\ComfyUI\user\default\ComfyUI-Managerのconfig.iniを開いてsecurity_level = weakにする

  2. ComfyUIを起動する

  3. ManagerメニューからInstall PIP~を選び以下を実行する

    • pip install -U triton-windows

    • pip install sageattention

  4. こちらのgithubから環境(Pythonのバージョン)に合わせたzipファイルをDLする

  5. Documents\ComfyUI\.venvフォルダにlibs、Scriptsフォルダにincludeフォルダをコピーする

  6. リスタート&更新

TorchCompileを使うには

ComfyUIにTorchCompileノードがあるのでそれを使うか、TeaCacheにも同様のノードがあるのでそれを使えばOK

SageAttentionを使うには

ComfyUI-KJ_nodes

SageAttentionを単体ノードで使いたい場合に必要です
TorchCompileノードはKJにもあり、他のノードに比べて色々な設定値を変えられるので色々試したい人にはおすすめ
ただし、KJベースだとPatch Model Patcher Orderを使わないとLoRAが効かないなど、マニア向けの作りなので注意

Fluxの場合。Patch Model Patcher OrderはLoRAを使わない場合は不要です。

SDXLをチョットでも速くしたい

ComfyUI-WaveSpeed

SDXLに対応しているのはこれだけなので試してみたい人向け
Apply First Block Cacheノードを挟むだけですが、residual~はモデル種類ごとに推奨値があるのでリポジトリを見ましょう
ちなみに、これにもTorchCompileがあります

TorchCompileやSageAttentionも効果はチョットです
速度安定する気がするので多分あった方が良い

終わり

TeaCacheは強すぎるのでぜひ試して欲しい!
sageattentionがうまく動いているかはログに「Patching comfy attention to use sageattn」とか書いてあるかどうかでわかる
ComfyUIの起動時の引数--use-sage-attentionはKJ氏のノードをつないでいれば不要だそうです

おまけ

詰まったところ

  • error: include file 'Python.h' not found

    • 導入して実際に動かしたら上のエラーがでました

    • (Claudeが)エラーをよく読むと、Data\\Packages\\ComfyUI\\venv\\Scripts\\Includeが見つかりませぬが?ということでした

    • この時、DLしたzipのincludeはlibsと同じでvenv直下に置いてました(ポータブル版がそうだから)

    • しかし、StabilityMatrixだとvenv/Scriptsフォルダに置かないとダメそうなので、そのように対応しました

      • ClaudeがincludeじゃなくてIncludeにしておいた方がいいというので従いました(多分Windowsなので不要)

      • デスクトップアプリ版も同じ対応が必要です

    • もし同じエラーが出たらLLMに読んでもらえば置き場所が分かると思います。使え!生成AI!!

    • 他のエラーだった場合は知りません、ごめんなさい

  • この加速化は今話題沸騰のローカル動画生成モデル、wanとかにも使えるみたいですが、私はまだやってないのでわかりません

SageAttention2への対応

最新ポータブルはsage attention v2に上げないと動かない

ふつうにpip install sageattentionで入れるとv1の方が入ります――
が、5/1にComfyUIポータブル版を最新にしたら(ちなみに最新にしたら環境が壊れたので全部入れなおした)エラーで生成不可!
triton-windowsはそのまま入れればいいですが、SageAttentionはそのままいれると1系が入りエラー地獄になるよ。

SageAttention2のビルドされたデータをDLしよう

以下にすでにビルドされたやつがあるよ。便利だね。
ComfyUIにインストールされているtorchのバージョンがあってないと死ぬから気を付けてね。

SageAttention2をインストール

ダウンロードしたらComfyUIポータブルにインストール

ComfyUI_windows_portableのパス/python_embeded/python.exe -m pip install whlファイルのパス

終わり!
エラーが出たら諦めよう!

準備はいい?  いくわよ!!



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