【14%高速化!】SPDAを使いxformersより高速に画像生成する方法を画像付き解説

SPDAを使いxformersより高速に画像生成する方法を画像付き解説 ソフトウェア

WindowsでWebUI(1111版)を使用して画像生成する際、従来のxformersの代わりにPytorch2.0で実装されたSPDAを用いることで、画像生成速度を向上させることが出来ます。

現環境を壊さずにPytorch2.0とCUDA11.8をインストールして、SPDAを導入する方法を画像付きで丁寧に解説します。

また、アスカベンチを行い、どのくらい生成速度が向上するか検証したところ、なんと14%程度も早くなりました!!

チェック!!
さくいん! 本サイトのAI関連記事まとめ どれから見れば良いのか?!


数十記事ある本サイトのAI関連記事を体系的にまとめました。

目的別にどれから見れば良いのかわかります!!

AI記事索引ページはコチラ

1. Pytorch2.0などを仮想環境にインストール

まず、従来のvenvフォルダ名をvenv-oldなどに変更します。

このように名前を変更した

こうすることで従来の環境を壊すことなくSPDAを使うようにしていきます。

次に「stable-diffusion-webui」フォルダ内右クリック→「ターミナルで開く」を選択。

以下のコマンドで新たなPythonの仮想環境を作成します。

python -m venv venv

そして仮想環境を有効化します。

venv\Scripts\Activate.ps1

そして、Pytorch2.0とCUDA11.8をインストールします。

https://pytorch.org/get-started/locally/

通常以下のコマンドでインストールできます。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

2. SDPAを有効化をするようbatファイル編集

webui-user.bat」をメモ帳などで開き、以下のように編集します。

  • --xformersを削除
  • --opt-sdp-attentionを追加

なお、「--opt-channelslast」は付けたままで問題ありません。

後はいつもどおり「webui-user.bat」をクリックしてWebUIを起動します。

初回起動時は色々インストールするので時間がかかりますが、特に操作は不要です。

なお、以下のように表示されますが当然正常です。

No module ‘xformers’. Proceeding without it.

URLが表示されたら成功!!

アスカベンチで比較してみました。

3. 実際の速度差をアスカベンチしてみた

なお、由緒正しくsafetensors変換前の、ckptファイルのnaiを使いました。

各種高速化設定などは全て同じにして、xformersかSDPAかのみ変化させました。

SPDAを試す 10枚を3回1回目2回目3回目平均割合
–xformersの場合19.9819.9719.7019.881
SDPAの場合17.1017.1217.0817.100.86

というわけで、14%の高速化に成功しました!!!

おまけ 従来のxformers環境に戻したい時は?

SDPAを使用できるようにPytorch2.0をインストールした環境が今venvフォルダに入っているハズです。

そのため、xformersを使用するには、現在のvenvフォルダ名を「venv-sdpa」などに変更します。

その後、最初に「venv-old」とリネームしておいたxformers用の仮想環境が入ったフォルダを再度「venv」に変えます。

最後に起動時オプションを下のようにして元に戻します。

  • --xformersを追加
  • --opt-sdp-attentionを削除

4. まとめ SDPAを使い画像生成速度を向上させる方法

  1. 従来のvenvを適当な名前に変えておく
  2. 新たにvenv作成し、Pytorch2.0とCUDA11.8をインストール
  3. webui-user.bat編集(起動時のオプションを変更)
  4. いざ起動!!

たった数回コマンドを打つだけで14%も生成速度が向上しました。

技術の進歩はソフトウェア方面でも目覚ましいですね!!

合わせて以下のような高速化を行うと、より素早く画像を生成できるのでぜひお試しください。

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