Xformersを導入する

Last-modified: 2025-06-15 (日) 19:18:10

Xformersについて

追加ライブラリの一つ。
生成AI分野でしばしば使われる。画像生成だけでなく、言語生成などにも。
https://github.com/facebookresearch/xformers

Xformersによる高速化について

Xformersを有効化すると、次の効果を得ることができます。
-画像生成速度の大幅な向上
-使用するVRAM量の大幅削減

恩恵が大きいので、基本的に導入したほうがよいでしょう。
「cuda out of memory」エラーが発生したときに、お世話になるオプションです。

2025年6月現在、基本的には導入する必要はありません
基盤的なライブラリであるPyTorchにも類似の最適化が実装されており、xFormersを導入しても大幅な効果は得られません。
各種webuiを新規に導入する際であればwebui-user.batに--xformersを追記するだけで適切にインストールされるのでやって損はないです。
reForgeForge-ClassicではSageAttentionやFP16 accumulationといった最適化も利用可能です。

PyTorch2系の高速化について

どこに書こうか迷いましたがとりあえずここに書きます。
PyTorch2系にアップデートすると"--opt-sdp-attention --opt-sdp-no-mem-attention"のパラメータ
を--xformersの代わりにCOMMANDLINE_ARGSに設定することで高速化が図れると紹介するサイトも
ありますが、VRAM消費量はxformersのほうが少ないので注意しましょう。
GTX1070 8GBで生成時に上記の最適化を利用したら768x768の生成がVRAM不足で動かなくなりました。

導入方法

導入要件

  • NVIDIA系のGPUであること。

必須要件を満たせない場合は、Xformersは導入出来ません。
※この場合、DirectMLを使用することになります。

GTX 9xx等の非常に古いグラボを使用している場合

Xformersは標準では GTX 10xx 以降のグラボ*1にしか対応していません。
とはいえその 10xx でも発売が6年前と結構前なのであまり気にする必要もないでしょう。

 

ただ、もしかすると「昔のPCをAI用マシンにしたい」とかでそれより前のグラボを使う事があるかもしれません。
そういった時はこのページの内容は無視して以下のページの指示に従ってください。
ただし自前でコンパイルする必要があったりでハードルは高めです。
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Xformers

インストール

1.webui-user.bat を開く

 webui-user.bat をテキストエディタで開きます(※)。
 ダブルクリックじゃないよ。編集するために開くんだよ。※右クリック→「編集」、またはメモ帳で開く。

   stable diffusionのフォルダ
  └webui
       ├ webui-user.bat  ←これ。
        └ webui.bat    ←こっちじゃない。
注意: 編集するのはwebui-user.bat の方だよ

注意: 編集するのはwebui-user.bat の方だよ
webui.bat の方じゃないよ
としあきがwebui.batを編集するのは厳禁だよ
なぜならwebui.batは1111の開発メンバーによってアプデされることがあるからだよ
もしもとしあきが手元のwebui.batを編集してしまうと、後日git pullとかで1111を最新版に更新する際に、編集履歴同士が衝突して面倒くさいことになるよ
だからとしあきが編集していいのはwebui-user.batの方だけだよ
ゆめゆめ忘るることなかれ
(そう囁くと老婆は煙のように姿を消した…)

 

2.webui-user.bat を編集&保存

 set COMMANDLINE_ARGS= の後ろに --xformers という引数を書き加えてください。
 以下のようになっていればOK.
 よくわからなければ下記をそのまままるっとコピペすれば動きます。
 編集後に保存します。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers

call webui.bat
 

3.WebUIを起動

すると、インストールが自動で実行されて導入完了です。
 なお、上記の「--xformers」コマンドは削除不要です。

4.Xformersを使用したくない時

 「--xformers」コマンドを削除しましょう。


導入済みのXformersの更新方法

 すでにxformersが導入していて、かつ1111を更新及び再起動したときに
 notice(注記)として、そのxformersのバージョンでは未検証(サポート外みたいなもの)と表示されることがあります。
 そんなときは、コマンド「--reinstall-xformers」を追記しましょう。(追記するのは更新時の1回のみ)

set COMMANDLINE_ARGS=--reinstall-xformers

PyTorchのアップグレード(必要な場合のみ)

XformersにはPyTorchが必要です。
PyTorchそのものは既にインストール済みだと思います(web-UI導入時)。
通常作業は不要ですが、もし旧バージョンと指摘された場合はアップグレードしてください。

 

webui-user.batを開き、下記コマンドを追加

--reinstall-torch

インストール実行後は、コマンドを外す。

指摘・更新するべき箇所や助言など

  • ここに書いてあることだけを試すとほとんどの人がエラー出てるし--xformers外してもエントリポイント云々出て使用不可になる人が圧倒的に多すぎるのでもうちょっと非推奨を強調してもいいのではないか -- 2024-08-25 (日) 18:29:46
  • Easy Reforge導入→Loraが生成されない問題→xformers導入で解消との情報を見てこのページの通りにやってみる→xformersはインストールされず、Loraも生成されず、xfomers絡みのエラーが出るようになってEasy Reforge自体を再インストールすることになった(報告) -- 2025-03-01 (土) 17:46:09
    • reForgeでの画像生成では、xformersは基本的に必要ないよ。1111ならともかく、reForgeでは他の設定のほうが高速に画像生成できるから、デフォルトではxformersは使用されない設定になってるんだ。
      それよりもその手前の「Loraが生成されない問題」とやらの内容が気になる……。これどういう意味? 「LoRAを使用しても画像内容に効果が乗らない」ってこと? -- 2025-03-01 (土) 18:03:00
      • .safetensorsが出力されない問題ですね。あと自分の記憶では自分が入れたeasy reforgeのtrain toolsはデフォで"xformersを使用する"がチェックされてたような気がします -- 2025-03-01 (土) 20:16:51
      • さっき雑スレで聞いてたとしあきだね。画像生成じゃなくてLoRA学習の問題でしたか。すみませんでした! -- 2025-03-01 (土) 20:40:05
      • ieieお騒がせしました -- 2025-03-01 (土) 20:47:56
    • xformersのエラーで起動できなくなったらvenvフォルダを消せば多分リセットされて起動できるようになると思う -- 2025-05-10 (土) 08:06:22
  • WindowsはLinuxと違って基本webui-user.shはデフォルトのまま「#export COMMANDLINE_ARGS=""」でコメントアウトしておく。そしてwebui-user.batは「set COMMANDLINE_ARGS=--xformers」にしておく。両刀使いの人が陥るパターンかも。 -- 2025-06-01 (日) 22:17:46

(Tips)

導入がうまく行かない場合
→ XformersがなくてもStable diffusionは動作します。
  導入できない理由は、個々のPC環境に依存するので、エラー文を眺めるほかありません。
  質問による解決は難しいです。
  どうやっても使えないケースもあります。
  自己解決できないなら、いさぎよく導入を諦めましょう。

  • 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になります(ツリー構造)。
  • コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入されます。これは送信後に改行として機能するので、文章の整形に役立ちます。
    br.png

*1 正確にはアーキテクチャが Pascal, Turing, Ampere, Lovelace または Hopper のもの