画像生成AIの情報を纏めるWikiです。



torch2

現在、torch2がデフォルトになりました。
Hyper-SDなどの改造不要の最適化やパラメータの調整で速くできるのでtorch.compile改造はおすすめしません。

古い情報

CUDA使用率

画像生成速度には、CUDA使用率が大きく影響する。
アスカベンチで同じグラボの他人の結果より明らかに遅い場合、なんらかの原因でCUDAがフルに使われていない可能性もある。
(これを確認する場合、Win11なら、GPUスケジューリングをオフにしてタスクマネージャーで項目をクリックしてCudaに切り替えるのが簡単)
このページにある対策を行ってもアスカベンチで期待したパフォーマンスが出ない、という場合でも、高解像度やHires fixした場合は512x512単体生成よりもCUDAがフルに使われやすい傾向があるので、
もしそっちでCUDA使用率が100%近くなってて、そういう生成方法がメインだという場合は、アスカベンチで劣っていても気にしなくていい可能性もある。

ちなみに、速度が速いほどCPUのシングル性能の影響が大きくなる。旧世代CPUを使っているなら最新世代のCPUに買い替えるのもあり。

モジュールによる高速化

環境によりますが、xformersかsdpによって速度が変わることはないと思われます。

古い情報

xformers

Meta Researchが開発した最適化ライブラリ。高速化とVRAM消費減少効果がある。
インストールは1111の標準機能で簡単にできる。
このオプションをつけるとわずかに出力内容が変化し、常に同じ結果にならない。
とはいえ体感できるか難しいほど小さい変化のため気にする必要はない。

変化の検証ページ作ったので記録はこちらへ
→「xformersの検証
対応GPU
  • NVIDIA
  • GeForce GTX 1000(Pascal)、RTX 2000(Turing)シリーズ以降
  • GeForce 900番台以前でも動くけど逆効果だったという報告あり
導入方法
初めて導入する場合
set COMMANDLINE_ARGS= --xformers

古い環境から更新する場合
set COMMANDLINE_ARGS= --reinstall-torch --reinstall-xformers
venvを削除してからWebUIを起動する手もあり

Torchバージョンが1111のデフォルトではない場合
ここで対応するTorchバージョンを確認してから、「pip install xformers==x.x.x」でインストールする。
開発版をインストールする
pip install --pre -U xformers
でコンパイル無しで導入できるようになった。
なお、対応するTorchバージョンが入っている必要がある。

アスカテストのtime taken
--xformers --opt-sdp-attention 18.50
--xformers 20.30
--opt-sdp-attention 18.47
--opt-sdp-no-mem-attention 18.40
--xformers --opt-sdp-no-mem-attention 18.60
両方指定の場合はsdpが有効になってる雰囲気です

torch.compile(非推奨)

NVIDIAがTensorRTを使えるようにするExtensionを公開したのでそちらを推奨。改造不要でTensorRTが使える。

以下は上級者向け。またWebUIのアプデで以下の手順が使えない可能性あり。
(TensorRTみたいな感じで)モデルの事前コンパイルを行うことによって、
生成処理を高速化する仕組みがtorch2には実装されている。
これを1111で使えるように改造する。

Windowsには対応していない(WSL2で動かすことになる)

手順

--opt-channelslast


これはつけるだけ。
--xformers や --opt-sdp-no-mem-attention と併用できる。
環境によっては効果が無かったり逆に遅くなったりするらしいので比較検討しましょう。

ハードウェアアクセラレーションによるGPUスケジューリング を無効にする

VRAM消費を減らす効果がある。速度も向上するかも。
やり方はこちら
公式wikiにも記載がある
redditによれば速度が30%くらいかわることがあるとかないとか
副作用としてDLSS3のフレーム生成が使えなくなる?

モデルを軽量化する

2024年現在、fp16,pruned,safetensorsでの配布(=すでに軽量化された状態)が主流になった。

古い情報

Extensionsの退避や削除

しばらく使わないときは Dreambooth Extension を削除する(もう使ってない?)
起動時間が劇的に変わる

Extensionにはinstall.pyが同梱されていて毎回起動するので、
不要なExtensionが沢山入ってるなら消すだけでだいぶ速くなるはず。

UIからオフにするだけではダメ
フォルダごと別の場所に退避させとくとか、いっそバッサリ消すとか

LyCORIS Extensionを削除する

1111がLyCORISに標準で対応したためこのExtensionは不要。
このExtensionは今となっては生成を遅くするだけ。

Stepsを減らす

出来るだけ少ないStepsでも期待通りの絵が出る方法を模索する。
末尾にa(ancestral)がつかないサンプラーで再現できないか試す。
DPM++ 2Mは15Stepsでもそれなりに映えるのでおすすめ。
UniPCはもっと良い感じ。実際はそうでもない。
SchedulerにSimpleを使うとさらに良くなる。
LCM、TurboやHyper-SDはさらに速い。出力を大きく変化させる代わりに10steps未満でまともな絵がでる。

WebUIを高速なストレージに入れる

シーケンシャル3GB以/s上のSSDに配置することで読み込みを高速化する。大容量なSDXLに効果的。

メインメモリを使う


モデルのロード時間を短縮するために、あらかじめRAMに読みこんでおくことが出来る。

Settings - Stable Diffusion
  • Checkpoints to cache in RAM
  • VAE Checkpoints to cache in RAM

SuperMergeでもモデル3つのトリプルマージまでRamで高速化できるようになった。
詳しくは ローカルのExtensions の SuperMerger を参照。

新しい機能などのために RamDisk が使いたくなったら ImDisk Toolkit が使いやすい。
https://sourceforge.net/projects/imdisk-toolkit/

1111 全部 RamDisk に突っ込んで高速化するのは、必要RAMのわりに恩恵がほとんど無いからおすすめしない。

WSL2で使う


以前はLinuxにするだけで1〜2割速くなると言われていたが、ドライバやTorchの最適化が進んで速度やメモリ消費の差が小さくなった。
どっちが速いか比較検討してみるのが良さそう。

Linuxに入れる

Windows上の仮想化ではなく実際にインストールする。
Ubuntu24.04 LTS、Python 3.11.9、Torch2.3.1での環境では、推論は2〜4%、学習は10%高速化した。VRAM消費は特筆すべき変化はなかった。
またmevram有効時の1111のメモリ消費が激減し、生成開始と終了のもたつきが軽減し、ReForgeとほぼ同じ速度を出せるようになった。いいぞこれ

あと1111やsd-scriptsなどでcheckpoint読み込み中のメモリ消費が跳ね上がる現象がない。

Windowsが入っていない空っぽのSSDに入れるか、サブ機とかお古になったら検討してもいいかも
なお各種ライブラリ等のインストールは原則コマンド打ってやるし、途中でUbuntuのGUI(gdm3)が壊れてリカバリーモードでgdm3を再インストールしたりとかなり面倒

TensorRTを使う

https://github.com/NVIDIA/Stable-Diffusion-WebUI-T...
最適化で大幅に高速化するもので最大2倍速くなるらしい。NVIDIA専用。
1111のExtensionから導入できる。

けど以下の重大な欠点があるのでベンチ以外で使い道はないかな
  • あらかじめ設定した解像度のみ使用可能
  • TensorRTモデル変換に時間がかかるしVRAM消費が激しい(しかもOOMになるとWebUI本体がフリーズ)
  • LoRAはTensorRT変換で埋め込んで使えるが1つしか使えない
  • ControlNetのようなU-netに干渉するものは一切使えない
  • Extensionのインストールが不安定で失敗しやすい

venvをいったん消して作り直す

Windows再インストール並みの最終手段。
最新の1111に必要なものしか入らなくなるので軽くなる、かも。
Extension試しまくってると肥大化するので月イチくらいでやるといいかも。

別のUIを使う

1111のWebUIを速くする方法でこれを書くのは本末転倒だが、ほかのUIを使う手もある。
AUTOMATIC1111のWebUIは最近になって速度が改善されたが、Windows版のメモリ消費の多さは変わっていない。Forgeのほうが速くて省VRAM、ComfyUIは速くて省メモリで省VRAM。

GPUを買い替える

ソフトウェア側であれこれ必死にやっても劇的に速くならないのが現実。結局ハードウェアの強化が一番。
場合によっては他のパーツの買い替えも必要になるが、最も効果的。
(give me money:3000.0)

このページへのコメント

TensorRTは拡張機能で運用が楽になったのでおすすめ
アスカベンチ基準で1.6倍程度早くなる

0
Posted by 名無し(ID:UkNtPSqMXA) 2023年10月25日(水) 00:51:33 返信

--opt-channelslastで使う
5u34v576.7zだけど
人によっては使わない方が良いかもしれない

ここのところ何回か環境構築してるけど
うちで3060でだと、入れないで
オプションにxformersとopt-channelslastと言う形で
Hello Asuka Benchmarkで40.03sと言う数字が出た

5u34v576.7zの中身を入れると43s台後半という酷い数字に

4
Posted by 名無し(ID:sfrkRBi+dw) 2023年01月09日(月) 20:42:06 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

Prompts

  1. 非R18詠唱全文
  1. 顔(目・口・表情)
  2. 構図
  3. 場所・背景
  4. 環境表現
  5. 特徴・年齢・体型・髪型
  6. ポーズ集
  7. 服飾
  8. 亜人・モンスター娘・人外
  9. 食品
  10. その他
  11. 画風
  12. ジャンル
  13. 絵文字
  14. 色一覧
  15. 頻用ネガティブプロンプト
  16. 大量検証結果
  17. 整理用倉庫

編集中メニュー

  1. 未発見のプロンプト
  2. 旧ページ

table拡張js

どなたでも編集できます

メンバー募集!