🔥

ComfyUI+stable-fastで倍速生成

2023/11/14に公開

ComfyUIを使っています。

最近、ComfyUIを使っています。
あと、SDXLばっかり使ってます。
で、まぁ遅い
LCMとか蒸留最近みんなやってるけど、そこまでやるモチベはあまりない。(言い訳)

ので

stable-fast

を使う

1か月くらい前にこんなツイートをしたんだけど、みんなちょうど別の技術お試ししてたのか、あまり目をかけてる人がいなかった
(たぶんちょうどLCMとかが話題になったくらいだったと思うので)
https://twitter.com/R0u9h/status/1714266114962993635?s=20

でまぁ自分もあんま気にしてなかったけど、つい先日の生成AIなんでもLT会の途中くらいにGitHub眺めてたらいろいろ更新されてて、こんな感じのことをぼやいてた

で、これについてだだぱんくんと話してて、with LoRAがYesなのとか凄いねとか言ってた。(リアルで)
https://twitter.com/ddPn08
(TensorRTの最前線を走る大学生です。怖いね みんなフォローしよう)

まぁそのあと翌日にv0.0.9でいろいろ先に検証してくれてたけど、Diffuserだとめちゃくちゃ遅い
https://zenn.dev/ddpn08/scraps/c10966a947cf72

README.mdにあったComfyUI_stable_fastだとエラーが出る

https://github.com/gameltb/ComfyUI_stable_fast
のでまぁ早速issueを建てた
https://github.com/gameltb/ComfyUI_stable_fast/issues/3
ら、Nightlyビルド試してみてくんねみたいな感じの返答が来た。
ので、試してみたらドンピシャで、ちゃんと生成できた。
https://twitter.com/R0u9h/status/1723987228245066085?s=20

https://twitter.com/R0u9h/status/1723991846370857287?s=20
が、めちゃくちゃ遅い
興奮したまま次の日の朝(2023/11/14)になってよくよく考えたら同じくらいだったことに気が付いた。

お仕事終わったので、いろいろrepoとNightlyビルド追ってたら、こんなissueが
https://github.com/chengzeyi/stable-fast/issues/32

で、v0.0.10がリリースされたので、試していたらめちゃくちゃ早くなったので、使い方を書きます。
https://github.com/chengzeyi/stable-fast/releases/tag/v0.0.10

本題

そんなに難しくなくて、大方README.mdにある通り

1. stable-fastをダウンロードする

バージョンに合わせて選んでください。
https://github.com/chengzeyi/stable-fast/releases/tag/v0.0.10
自分はWindows + torch210 + cu118だったので、
stable_fast-0.0.10+torch210cu118-cp310-cp310-win_amd64.whlを使用した。

2. stable-fastと依存関係をインストールする

Windowsは

  • diffusers>=0.19.3
  • xformers>=0.0.20
  • torch>=1.12.0

Linuxはそれに加えて

  • triton>=2.1.0

の依存関係が必要です。
<wheel file>にはダウンロードしてきたwhlファイルを置いてください。

# Windows
pip3 install 'diffusers>=0.19.3' 'xformers>=0.0.20' 'torch>=1.12.0' <wheel file>
# Linux
pip3 install 'diffusers>=0.19.3' 'xformers>=0.0.20' 'triton>=2.1.0' 'torch>=1.12.0' <wheel file>

ソースからインストールするには

# Windowsでのビルドの場合はtritonはスキップ
pip3 install 'torch>=1.12.0' 'diffusers>=0.19.3' 'xformers>=0.0.20' 'triton>=2.1.0'
pip3 install ninja
pip3 install -v -U git+https://github.com/chengzeyi/stable-fast.git@main#egg=stable-fast

3. ComfyUI_stable_fastをインストールする

以下のリポジトリからcloneしてください
https://github.com/gameltb/ComfyUI_stable_fast

# custom_nodesのディレクトリ下で行ってください
git clone https://github.com/gameltb/ComfyUI_stable_fast

4. custom nodeを配置する

nodeは以下にあります。
Add NodeloadersApply StableFast Unet

画像のようにKSamplerの前にnodeが来るように配置してください

5. 生成する

Let's Enjoy!

あとは生成するだけです。

SDXLだろうが、LoRAを適用していようが生成できます。
初回はモデルに適用する必要があるので少し時間がかかりますが、warmupが終わって、3回目以降は倍速くらいで生成できると思います!


RTX3080(VRAM 10GB) + SDXL + 自作LoRAで

  • 初回: 297秒
  • 2回目: 33秒
  • 3回目: 14秒

以降アベレージ15秒未満くらい

まとめ

とくにない...
sdwebuiにはまだ未対応ですが、これまでの追加学習などで使用してきたリソースをそのままに、高速化できるのは大きいのではないかなと思います。
まだまだ改善の余地があるので不定期で更新しようと思います。
個人的にはいま一番興味があるので、今後が楽しみです。

あと、生成AIなんでもLT会の記事もそろそろ書くと思います。

たぶん𝕏が一番早く情報出ると思うので、フォローよろしくお願いします。
https://twitter.com/R0u9h

あと、一番早く検証してくれた、だだぱんくんのフォローもぜひ
https://twitter.com/ddPn08

AIものづくり研究会

Discussion