Stable Diffusionを高速化できるxFormersの使い方を紹介します!

森の中、銀髪で鎧を着たアニメ女性のAIイラスト

Stable Diffusionの画像生成を高速化できる、xformersの使い方を紹介します。

この記事で理解できること
  • xFormersのインストール方法・有効化手順
  • xFormersを導入すると、どの程度高速化されるのか
  • xFormersのアップデート方法
目次

Stable Diffusionを簡単に高速化できるxFormersとは

PyTorchのライブラリで、Transformersの研究を加速するために開発されたものです。

xFormersは導入が簡単かつ、恩恵が大きい機能なので、この機会に導入してみましょう。

簡単に使用できるから、イチオシの高速化テクニックだよ

xFormersのメリット、デメリット

Stable Diffusionで使用するxFormersには以下のメリット、デメリットがあります。

メリット
デメリット
  • 画像生成時間が高速化する
  • 使用するVRAM量が減る
  • 導入前と同じ設定でも生成される画像がわずかに変化する
  • AMD GPUでは使用できない。

大きなデメリットはないので、xFormersの導入はおすすめだね

xFormersはNVIDIA GPU向けの機能です

Xformers ライブラリは、イメージ生成を高速化するためのオプションのメソッドを提供します。この機能強化は NVIDIA GPU でのみ利用可能であり、画像生成を最適化し、VRAM 使用量を削減します。 0.0.20 より前の古いバージョンでは、非決定的な結果が生成されます。

AUTOMATIC1111 xFormers Wikiページ

以上のようにAMD GPUでは使用できないので、AMD製のグラフィックボードを使用している方は、SDPAの使用をおすすめします。
SDPAの使い方については以下記事で解説しています。

あわせて読みたい
Stable Diffusionを高速化するSDPAを紹介します はじめに Stable Diffusionの高速化では定番となるxFormersがありますが、さらなる高速化が可能となるSDPAの使い方を紹介します。 導入の仕方から、生成時間の比較結果...

Stable DiffusionでxFormersをインストール・有効化する方法

STEP
webui-user.batを編集モードで開く

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

webui-user.batを右クリックして「編集」をクリックするか、テキストエディタにドラッグ&ドロップすると編集モードで開くことが可能です。

STEP
–xformersを追加する

「webui-user.bat」の6行目のCOMMANDLINE_ARGSに以下コードを追加します。

--xformers
webui-user.batに--xformersを追記することを促している
webui-user.batに–xformersを追記

コードの追加が完了したら、ファイルを上書き保存します。

その後にwebui-user.batを実行すれば、xformersが有効化されたStable Diffusion WebUIが起動します。

xFormersで、どのくらい高速化されるのか

xFormersを使用した場合に、どの程度高速化されるのか確認してみました。

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

スクロールできます
xFormers適用有無生成速度生成時間使用VRAM量
非適用9.08it/s22.2ssec(100%)6.1GB(100%)
適用11.56it/s17.4sec(78%)3.5GB(57%)

デメリットに記載したとおり、xformersを有効化すると少し絵が変化します。

xFormers適用時の生成画像に対する影響を確認する
銀髪で花飾りを付けた女性のAIイラスト
xformers非適用
銀髪で花飾りを付けた女性のAIイラスト
xformers適用

生成時間については、xFormers非適用時と比較すると約78%になっています。

驚くのはVRAM使用量です。
約57%と大幅に削減されています。

どちらかというと、VRAM使用量を下げる目的の方が合ってるかもね

実はxFormersよりSDPAの方が高速に画像生成できる可能性が高いです。
SDPAについては以下記事をご参考ください。

あわせて読みたい
Stable Diffusionを高速化するSDPAを紹介します はじめに Stable Diffusionの高速化では定番となるxFormersがありますが、さらなる高速化が可能となるSDPAの使い方を紹介します。 導入の仕方から、生成時間の比較結果...

xFormersのアップデート方法

xFormersはバージョンアップにより、より高速になる可能性があります。
もし、お使いのxFormersのバージョンが古い場合には、以下手順で更新が可能です。

現在のバージョン確認

もしお使いのxFormersのバージョンが古い場合にはアップデートしましょう。

xFormersを有効化しStable Diffusion WebUIを起動すると、最下段にバージョンが表示されています。

xFormersのバージョン確認

xFormersの最新バージョンはGithubのxFormersページから確認できます。
(サポートされているCUDAも確認できます)

右下に表示されているReleasesをフォーカスしている
xFormers最新バージョン確認

xFormersのアップデート

xFormersはPytorchの追加ライブラリのため、PytorchとCUDAのバージョンにより使用できるxFormersのバージョンが異なります。

またPytorchのバージョンによっては、対応したPythonが必要になります。
(Pythonのバージョンアップが必要な場合があります)

Pytorchのアップデートにより不具合が発生する可能性があるので、venv(仮想環境)で作業を実施しましょう。

venv仮想環境で作業するか、Stable Diffusion WebUIの環境を複数用意しても良いです。
Stable Diffusion WebUIを複数インストールしたい場合には、以下記事をご参考ください。

あわせて読みたい
Stable Diffusion WebUI(AUTOMATIC1111)をローカルPCに導入しよう! この記事では、Stable Diffusion WebUI(AUTOMATIC1111)をローカルPC(Windows)にインストールする方法を紹介します。 記事に沿って作業することで、簡単にStable Diffusi...
STEP
仮想環境(venv)の準備

「webuiフォルダ」の中にある、「venv」フォルダのフォルダ名を適当なものに変更しましょう。

venvフォルダをフォーカスしている
venvフォルダ

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

venvフォルダの名前を変更するよう促している
既存のvenvフォルダをリネームする
STEP
スクリプトファイルの実行を有効化する

過去に実行済みの場合は、この工程は必要ありません。

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

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

PowerShellを管理者権限で実行するよう促している

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

PowerShell Set-ExecutionPolicy RemoteSigned
PowerShell Set-ExecutionPolicy RemoteSignedコマンド実行を促している

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

STEP
新しい仮想環境を作る

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

WebUIフォルダでパワーシェルを起動するよう促している

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

python -m venv venv
python -m venv venvコマンド実行を促している

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

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

venv\Scripts\Activate.ps1
venv\Scripts\Activate.ps1コマンド実行を促している

これで仮想環境を有効化できます。

STEP
Pytorchをインストールする

Pytorchをアップデートしたい場合にだけ実行します。

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

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118コマンド実行を促している
STEP
xformersをアップデートする

xformersをアップデートしたい場合にだけ実行します。

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

pip install -U xformers
STEP
仮想環境を無効化する

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

deactivate

これでアップデート完了です。
お疲れ様でした。

トラブルが発生した場合

もしアップデートによりトラブルが発生した場合は、以下手順でバックアップしたvenvを有効にしましょう。

STEP
アップデートで作成したvenvフォルダを削除する

アップデート作業で新規作成したvenvフォルダを削除する。

STEP
バックアップしたvenvを有効化する

バックアップとして保存しておいた、venv_old(仮名)フォルダのフォルダ名を「venv」に戻します。

これで環境がアップデート前に戻ります。

まとめ

今回は、Stable Diffusionを高速化できるxFormersを紹介しました。

手軽に導入できますし、VRAM使用量にも効果が高いのでとりあえず試してみることをおすすめします!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

IT技術者でありDTMer
EDMの作曲を始めたところ楽しさに気づき、ロック以上にハマっています。
楽器はギターを弾いており、バンドではギタリストとしても活動しています。

コメント

コメントする

目次