はじめに
Stable Diffusionの高速化の定番である、xformersの使い方を紹介します。
この記事では以下のことが理解できます。
- xformersのインストール方法・有効化手順
- xformersを導入すると、どの程度高速化されるのか
- xformersのアップデート方法
Stable Diffusionを簡単に高速化できるxformersとは
PyTorchのライブラリで、Transformersの研究を加速するために開発されたものです。
xformersは導入が簡単かつ、恩恵が大きい機能なので、この機会に導入してみましょう。

簡単に使用できるから、イチオシの高速化テクニックだよ
xformersのメリット、デメリット
Stable Diffusionで使用するxformersには以下のメリット、デメリットがあります。
- 画像生成時間が高速化する
- 使用するVRAM量が減る
- 導入前と同じ設定でも生成される画像がわずかに変化する

大きなデメリットはないので、xformersの導入はおすすめだね
Stable Diffusionでxformersをインストール・有効化する方法
- STEP1webui-user.batを編集モードで開く
「webuiフォルダ」の中にある「webui-user.bat」を編集モードで開きます。
- STEP2–xformersを追加する
COMMANDLINE_ARGSに「–xformers」を追加します。
※-は2つです--xformers
webui-user.batに–xformersを追記 webui-user.batを実行すれば、xformersが有効化されたStable Diffusion WebUIが起動します。
xformersで、どのくらい高速化されるのか
xformersを使用した場合に、どの程度高速化されるのか確認してみました。
テストは解像度512×512、ステップ数20、バッチ回数10で実施しました。
測定結果は以下の通りです。
xformers適用区分 | 生成速度 | 生成時間 | 使用VRAM量 |
非適用 | 9.08it/s | 22.2ssec(100%) | 6.1GB(100%) |
適用 | 11.56it/s | 17.4sec(78%) | 3.5GB(57%) |


デメリットに記載したとおり、xformersを有効化すると少し絵が変化します。
生成速度については約22%高速化されましたね。
驚くのはVRAM使用量です。
約57%と大幅に削減されています。

どちらかというと、VRAM使用量を下げる目的の方が合ってるかもね
高速化が目的であれば、xformersより高速なSDPAがおすすめです。
SDPAについては↓の記事をご参考ください。
xFormersのアップデート方法
現在のバージョン確認
もしお使いのxFormersのバージョンが古い場合にはアップデートしましょう。
xformersを有効化しStable Diffusion WebUIを起動すると、最下段にバージョンが表示されています。

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

xFormersのアップデート
xFormersはPytorchの追加ライブラリのため、PytorchとCUDAのバージョンにより使用できるxFormersのバージョンが異なります。
またPytorchのバージョンによっては、対応したPythonが必要になります。
(Pythonのバージョンアップが必要な場合があります)
Pytorchのアップデートにより不具合が発生する可能性があるので、venv(仮想環境)で作業を実施しましょう。
venv仮想環境で作業するか、Stable Diffusion WebUIの環境を複数用意しても良いです。
Stable Diffusion WebUIを複数インストールしたい場合には↓の記事をご参考ください。
- STEP1仮想環境(venv)の準備
「webuiフォルダ」の中にある、「venv」フォルダのフォルダ名を適当なものに変更しましょう。
venvフォルダ 既存のvenvフォルダをリネームする 私は「venv_old」に変更しました。
- STEP2スクリプトファイルの実行を有効化する
過去に実行済みの場合は、この工程は必要ありません。
Windows PowerShellを管理者権限で実行します。
PowerShellはタスクバーの左端にあるWindowsスタートボタンを右クリックすると、ポップアップメニューに起動ボタンが表示されます。
PowerShellが表示されたら以下のコマンドをコピペしてエンターキーを押下します。
PowerShell Set-ExecutionPolicy RemoteSigned
完了したら、PowerShellウィンドウは閉じて構いません。
- STEP3新しい仮想環境を作る
「webuiフォルダ」の何もないエリアでShift + 右クリックし、表示されたポップアップメニューから「PowerShellウィンドウをここで開く」をクリックします。
※もしくは、cdコマンドでwebuiフォルダに移動しますPowerShellが表示されたら以下のコマンドをコピペしてエンターキーを押下します。
python -m venv venv
これでwebuiフォルダ内に新しい「venv」フォルダが作成されます。
続いて以下のコマンドをコピペしてエンターキーを押下します。
venv\Scripts\Activate.ps1
これで仮想環境に入ることができます。
- STEP4Pytorchをインストールする
Pytorchをアップデートしたい場合にだけ実行します。
以下のコマンドをコピペしてエンターキーを押下します。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- STEP5xformersをアップデートする
xformersをアップデートしたい場合にだけ実行します。
以下のコマンドをコピペしてエンターキーを押下します。
pip install -U xformers
- STEP6仮想環境を無効化する
最後にdeactivateコマンドを実行して作業完了です。
以下のコマンドをコピペしてエンターキーを押下します。deactivate
トラブルが発生した場合
もしアップデートによりトラブルが発生した場合は、以下手順でバックアップしたvenvを有効にしましょう。
- STEP1アップデートで作成したvenvフォルダを削除する
アップデート作業で新規作成したvenvフォルダを削除する。
- STEP2バックアップしたvenvを有効化する
バックアップとして保存しておいた、venv_old(仮名)フォルダのフォルダ名を「venv」に戻します。
これで環境がアップデート前に戻ります。
AI画像生成は余裕を持ったストレージ容量がおすすめ
AI画像生成では思った画像が生成できないことが多々あるので、テスト用の画像を沢山生成します。
また、モデルデータも数GBのデータ容量なのでデータ保存先となるストレージは大容量のHDDやSSDがおすすめです。
容量を求めるならHDD、読み込み/書き込みスピードもある程度欲しい場合はSSDを選択しましょう。
(SSDの方がスピードと静音性(無音です)に優れます)
まとめ
今回は、Stable Diffusionを高速化できるxformersを紹介しました。
手軽に導入できますし、VRAM使用量にも効果が高いのでとりあえず試してみましょう。
Comment