Stable Diffusionを高速化するSDPAを紹介します【Stable Diffusion WebUIの使い方】 | IT技術者のDTM奮闘記
画像生成AI

Stable Diffusionを高速化するSDPAを紹介します【Stable Diffusion WebUIの使い方】

タートルネックを着た黒髪女性のAI写真画像生成AI

※本ページはプロモーションが含まれています

スポンサーリンク

はじめに

Stable Diffusionの高速化では定番となるxFormersがありますが、
さらなる高速化が可能となるSDPAの使い方を紹介します。

nov
nov

導入の仕方から、生成時間の比較結果も載せているので最後まで見ていってね。

この記事では以下のことが理解できます。

  • Pytorch2.0 SDPAのインストール方法
  • Pytorch2.0 SDPAの使い方
  • SDPAを使用した場合の画像生成時間
スポンサーリンク

SDPAとは

沢山の黒いクエスチョンマークの中に赤色のクエスチョンマークが2つある

SDPAはscaled dot product attentionの略で、Pytorch2.0で実装されています。

従来のxformersと比較すると、さらに画像生成時間を短縮することが可能です。

SDPAをインストールする

SDPAを使用するにはPytorch2.0にアップデートする必要があります。

  • STEP1
    仮想環境(venv)の準備

    仮想環境を上書きしてしまうと、トラブルが発生した場合に大変なことになるので、既存の仮想環境をバックアップしておきましょう。

    「webuiフォルダ」 → 「venv」フォルダの名称を適当なものに変更しましょう。

    venvフォルダをフォーカスしている
    venvフォルダ
    venv_oldフォルダに名前を変更している
    変更後のフォルダ名

    私は「venv_old」に変更しました。

  • STEP2
    スクリプトファイルの実行を有効化する

    Windows PowerShellを管理者権限で実行します。

    PowerShellはタスクバーの左端にあるWindowsスタートボタンを右クリックすると、ポップアップメニューに起動ボタンが表示されます。

    PowerShell管理者権限をフォーカスしている
    PowerShellを管理者権限で起動

    PowerShellが表示されたら以下のコマンドをコピペしてエンターキーを押下します。

    PowerShell Set-ExecutionPolicy RemoteSigned
    PowerShell Set-ExecutionPolicy RemoteSignedコマンドを入力している

    完了したら、PowerShellウィンドウは閉じて構いません。

  • STEP3
    新しい仮想環境を作る

    「webuiフォルダ」の何もないエリアでShift + 右クリックし、表示されたポップアップメニューから「PowerShellウィンドウをここで開く」をクリックします。
    ※もしくは、cdコマンドでwebuiフォルダに移動します

    PowerShellウィンドウをここで開くクリックを誘導している
    PowerShellを起動

    PowerShellが表示されたら以下のコマンドをコピペしてエンターキーを押下します。

    python -m venv venv
    python -m venv venvコマンドを入力している

    これでwebuiフォルダ内に新しい「venv」フォルダが作成されます。

    続いて以下のコマンドをコピペしてエンターキーを押下します。

    venv\Scripts\Activate.ps1
    venv\Scripts\Activate.ps1コマンドを入力している

    これで仮想環境に入ることができます。

  • STEP4
    Pytorch2.0をインストールする

    引き続き以下のコマンドをコピペしてエンターキーを押下します。

    pip install torch==2.0.0 torchvision --extra-index-url https://download.pytorch.org/whl/cu118

    少し時間がかかりますが、気長に待ってください。
    これでインストール完了です。

SDPAを有効化する

「webuiフォルダ」の中にある「webui-user.bat」を編集モードで開きます。

COMMANDLINE_ARGSに「–opt-sdp-attention」を追加します。
※-は2つです

--opt-sdp-attentionコマンドを入力している

後は普段通りにwebui-user.batをダブルクリックして、Stable Diffusion WebUIを起動します。

SDPAでどのくらい高速化されるのか計測してみた

SDPAを使用した場合に、どの程度高速化されるのか画像生成時間を比較しました。

xformersの有無、–opt-sdp-attention、–opt-sdp-no-mem-attentionで生成時間を測定しています。

–opt-sdp-attentionは低VRAMで使用できますが、生成する度に画像が変化します。
–opt-sdp-no-mem-attentionは生成速度が低下する傾向で、VRAMをたくさん使いますが、設定が同じであれば同じ画像が生成されます。

–opt-sdp-attentionを使用して画像生成
白ジャケットを着た白髪女性のAIイラスト
opt-sdp-attentionサンプル画像
白ジャケットを着た白髪女性のAIイラスト
opt-sdp-attentionサンプル画像
–opt-sdp-no-mem-attentionを使用して画像生成
白ジャケットを着た白髪女性のAIイラスト
opt-sdp-no-mem-attentionサンプル画像
白ジャケットを着た白髪女性のAIイラスト
opt-sdp-no-mem-attentionサンプル画像

テストは解像度512×512、ステップ数20、バッチ回数10で実施しました。
測定結果は以下の通りです。

コマンドライン引数生成速度使用VRAM速度比較
無し7.21it/s5.4gb-(基準)
–opt-sdp-attention11.06it/s4.4gb153%
–opt-sdp-no-mem-attention10.95it/s5gb152%
–xformers8.71it/s4.5gb121%

ということで、SDPAの効果は抜群でした!
環境により結果は異なるので、効果は各自確認してみてください。

nov
nov

テストに使用したGPUはRTX4070 tiだよ。

50%以上早くなるから–opt-sdp-attentionは手放せないね

SDPAを使用してトラブルが発生した場合

もしもトラブルが発生した場合には、Pytorch2.0をインストールしたvenvフォルダを適当な名前にリネームして、バックアップした旧venvフォルダ名を「venv」に戻すだけです。

「webui-user.bat」に記述したPytorch2.0用のコマンドライン引数「–opt-sdp-attention」などは、忘れずに削除しようね。

あとは普段通りに起動すれば、旧環境で起動します。

AI画像生成は余裕を持ったストレージ容量がおすすめ

AI画像生成では思った画像が生成できないことが多々あるので、テスト用の画像を沢山生成します。

また、モデルデータも数GBのデータ容量なのでデータ保存先となるストレージは大容量のHDDやSSDがおすすめです。

容量を求めるならHDD、読み込み/書き込みスピードもある程度欲しい場合はSSDを選択しましょう。
(SSDの方がスピードと静音性(無音です)に優れます)

高い信頼性かつ大容量でランキング上位の常連HDD、AI画像生成にぴったり!

高速かつ大容量SSDでAI画像生成もノンストレス!

大容量かつ超高速なM.2 NVMe SSD、AI画像生成で更なるスペックを求める方に

ノートPCで増設するなら高速なSSDです

ノートPCで増設したいけど価格を抑えたい方におすすめ!

スポンサーリンク

まとめ

今回は、Stable Diffusionを高速化するSDPAの使い方を紹介しました。
環境によりますが50%以上の高速化も可能となるので、ぜひチャレンジしてみましょう!

nov
nov

というか必須レベルでは?

実は、TensorRTを使用すると画像生成時間が2倍程度高速になります。
TensorRTを使用した画像生成方法については↓の記事が参考になります。

注目
セーターを着た日本人女性のAI写真
Stable Diffusionの使い方・記事まとめ【Stable Diffusion WebUIの使い方】
Stable Diffusion関連の記事が増えてきたので、使い方に関する記事をまとめました。
注目
黒髪のアニメ調女性のAIイラスト
Stable Diffusionのアニメ系イラストが得意なモデル5選!
アニメ調のイラストが得意なStable Diffusionのおすすめモデルを紹介していきます
注目
黒のロングヘアー女性のAIイラスト
美少女2次元イラストに最適なモデル5選!!【Stable Diffusion モデル紹介】
2Dイラストに最適なStable Diffusionのおすすめモデルを紹介していきます。
注目
コートを着た日本人女性のAI写真
Stable Diffusionのおすすめモデルを用途別に紹介するよ
Stable Diffusionで使用できるおすすめモデルを用途別に紹介していきます
注目
ショートヘアーの日本人女性のAI写真
綺麗なお姉さんは好きですか? ハイクオリティな日本人女性が生成できるhaduki_mixを紹介します【Stable Diffusion SDXLモデル紹介】
日本人女性が綺麗に生成できるStable Diffusionのモデルを9つ紹介していきます。
注目
茶髪女性が町中に立っているAI写真
Fooocusのインストールから簡単な使い方を紹介【SDXLを手軽に高速に使える】
Fooocusのインストールから簡単な使い方を解説していきます。Fooocusは数あるStable Diffusion WebUIの中でも、軽量かつシンプルなクライアントアプリです。
注目
ピンク髪のアジア人女性のAI写真
SDXL 1.0が公開開始されました!Stable Diffusion WebUIでの使い方を紹介します【低VRAMでも使えます!】
バージョン1.0となったSDXLはどんな画像を生成できるのか、インストール方法から使い方、サンプル画像を紹介していきます。
注目
タートルネックを着た黒髪女性のAI写真
Stable Diffusionを高速化するSDPAを紹介します【Stable Diffusion WebUIの使い方】
高速化が可能となるSDPAの使い方を紹介します。
注目
タートルネックに茶色の上賀を着た日本人女性のAI写真
Stable DiffusionでRefinerを使用する方法
Refinerに対応したAUTOMATIC1111の使い方を紹介していきます。
注目
黒いジャケットを着た女性のAI写真
FreeUでお手軽高画質化!【Stable Diffusion WebUI拡張機能 FreeUの使い方】
生成速度はそのままに高画質化が可能なFreeUの使い方を紹介します
注目
ライダージャケットを着た日本人女性のAI写真
Stable Diffusionを2倍高速化できるTensorRTを紹介します
Stable Diffusion WebUIの拡張機能「TensorRT」のダウンロード方法、インストール方法、使い方を紹介します。 TensorRTアクセラレーションに対応したことにより、2倍以上(実測)画像生成時間の高速化が可能です。

Comment

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