Stable Diffusionのパフォーマンスを向上させるための15のTips
多くのGPUの計算リソースを利用するStable Diffusion。リソースは有限で、用意できるGPUもそれぞれの環境によって異なります。多くの画像を生成する場合、そのパフォーマンスが生産効率に直結するため、今回はStable Diffusionのパフォーマンスを向上させるための15のTipsを紹介したいと思います。
Stable Diffusionのパフォーマンスを向上させる15の設定
1.トークンマージンの利用
Settings > Select Optimizations > Set token ratio to between 0.2-0.5
トークン比率を0.2-0.5の間に設定する。ただし、比率が高いほど、ディテールが失われます。
2.TensorRT用の拡張機能
trtモデルの変換設定を最適化します。バッチサイズを7に設定し、幅と高さを512に設定します。
3.webui-user.batの設定
COMMANDLINE_ARGS=–opt-sdp-no-mem-を追加。RTX4070では高速化の成果があったみたいです。その他のパラメーターや設定やメモリの節約などの方法については、詳しくは「Stable Diffusionのメモリ不足対策・解決策まとめ」や「xFormers以外で、Stable Diffusionの生成速度を高速化」をご覧ください。
4.Nvidia Control Panelでの電源モードの変更
デスクトップを右クリックし、Nvidia Control Panelを選択し、電源管理モードを選択し、最大パフォーマンスを選択します。
5.コンピュータの電源設定モードの変更
Windowsの電源設定モードを最高のパフォーマンスに変更。
6.解像度のスケールファクターを非分数にする
例えば、150%ではなく100/200/400%にします。
7.Opera GXブラウザを利用
ハードウェアアクセラレーション設定をオフにして利用
8.windowsのGPU設定の変更
Windowsでは、GPUハードウェアアクセラレーションをオフに。環境によってはパフォーマンス落ちる場合もあるそうです。
9.cuda dllを更新
10.プロンプトを精査
なるべく少ない単語で生成する
11.ドライバを最新版に更新する
12.Windowsの設定を見直す
DWM.exeとexplorer.exeを手動で統合グラフィックカードに設定するか、省電力モードに設定
https://www.reddit.com/r/StableDiffusion/comments/13tb2sa/tutorial_how_to_increase_generation_speed_with/
13.HDRをオフに
デスクトップを右クリックし、ディスプレイ設定を選択し、HDRをオフにします。
14.不要なサービスを無効にする
Windows +R > msconfigと入力してEnterを押す > サービスタブを選択 > すべてのMicrosoftサービスを隠すチェックボックスをクリック > すべて無効にするをクリック > OKをクリック
15.視覚効果設定を調整
システム環境変数の編集」を選択 > パフォーマンスセクションで「設定」を選択 > 最高のパフォーマンスのために調整を選択 > OKをクリック
メインメモリに余裕がある場合の対応策
PC本体のメインメモリに余裕がある場合ですが、モデルファイルとVAEをRAMにキャッシュさせることで生成を高速化させることが可能です。メモリ32GB、RTX4090の場合、1枚あたり、2.1秒縮まりました。詳しくは「Stable Diffusion web UIのモデルやVAEをRAMにキャッシュさせて高速化」の記事をご覧ください。
また、windowsの場合、仮想メモリを設定することで、一時的に物理メモリ不足でフリーズするような問題を解決可能です。
グラフィックボードの変更も視野に入れる
最適化は一定行いながら、設定ではどうしても限界があるため、非効率的である場合は、グラフィックボードの変更も視野に入れましょう。tazikuでは生成AIを始めた当初、RTX3070 8GBを利用しており、メモリ不足に悩まされましたが、RTX4090 24GBに変更し明らかに生産性が向上しました。
基本的なwebui-user.batでStable Diffusionの基本機能を利用してメモリ節約するなどについては「Stable Diffusionのメモリ不足対策・解決策まとめ」をご覧ください。
原文:List of all the ways to improve performance for stable diffusion