こんにちは、タカムネ(@takamune_ai)です。
Stable Diffusion WebUIで画像生成が遅い、VRAM(グラフィックメモリ)が不足する――そんなときに検討できる最適化の一つがxFormers(エックスフォーマーズ)です。
この記事では、AUTOMATIC1111版Stable Diffusion WebUIを対象に、xFormersの仕組み、導入方法、注意点、筆者が2023年に実施した比較テストを紹介します。現在は別の最適化方法もあるため、必ずしもxFormersを導入する必要はありません。
xFormersとは?
xFormersは、画像生成で使用するAttention(アテンション)処理を効率化するためのライブラリです。対応するNVIDIA GPU環境では、VRAM使用量を抑えたり、画像生成を高速化したりできる場合があります。
ただし、効果はGPU、モデル、解像度、PyTorch・xFormersのバージョンなどで異なります。導入しただけで必ず速くなるわけではありません。
AUTOMATIC1111の公式Wikiでも、xFormersは任意の最適化方法として案内されています。詳しくは公式Wiki「Optimizations」を参照してください。
xFormersは現在も必要? SDP最適化との違い
現在のAUTOMATIC1111では、xFormersのほかに、PyTorch 2系のScaled Dot Product Attention(SDP)を使った最適化も選べます。環境によってはSDPのほうが速いこともあるため、まず現在の設定で生成速度やVRAM使用量を確認し、必要なら比較するのがおすすめです。
xFormers:起動オプション --xformers で利用する方法。対応環境やライブラリの互換性に注意が必要です。
SDP:--opt-sdp-attention などで利用するPyTorch 2系の最適化。環境によってはxFormersより高速になる場合があります。
どちらも効果は環境依存です。速度だけでなく、VRAM使用量や生成結果の再現性も比較してください。
xFormers使用時の注意点:生成結果の再現性
古いxFormersでは、同じSeedや設定でも細部が変わる「非決定的な結果」が注意点でした。ただし、公式WikiではxFormers 0.0.19以降で決定的な結果を得られるようになったと説明されています。現在のxFormersで毎回必ず画像が変わる、というわけではありません。
なお、最適化方式やPyTorchなどのバージョンを切り替えると、計算の違いによって生成画像が変わる場合があります。厳密な再現が必要な場合は、Seedだけでなく、モデル・VAE・Sampler・ソフトウェア環境も記録しておきましょう。
以下は、筆者が2023年当時に撮影した比較画像です。現在のxFormersの挙動を示す検証ではなく、過去の実験記録として掲載しています。






当時の筆者の環境では、基本的な構図は近い一方で、服の陰影や背景などの細部に違いが見られました。
タカムネ当時は、人物のポーズが比較的大きく変わったこともありました。ただし、これは過去の環境での体験です。
xFormersの導入方法(AUTOMATIC1111/Windows)
AUTOMATIC1111版WebUIでxFormersを利用する場合は、起動オプション --xformers を指定します。対応するPyTorch・Python・GPU環境であることが前提で、環境によってはインストールや起動時にエラーが発生する場合があります。
WebUIを終了し、インストール先の webui-user.bat をテキストエディターで開いて、COMMANDLINE_ARGS の行を次のように変更します。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers
call webui.bat
すでにほかの起動オプションが設定されている場合は、それらを消さずに半角スペースを空けて --xformers を追加してください。
保存後、通常どおり webui-user.bat から起動します。初回は関連パッケージの準備が必要になる場合があります。起動ログにエラーが出ていないか確認してください。
xFormersを無効にする場合は、追加した --xformers を削除してWebUIを再起動します。変更前に webui-user.bat をバックアップしておくと安心です。
xFormersの効果を比較:2023年の検証結果
筆者が当時使用していたNVIDIA GeForce RTX 3060(VRAM 12GB)で、xFormersの有無による生成時間を比較した結果です。
| 画像サイズ | xFormersあり | xFormersなし |
|---|---|---|
| 600×900 | 12.5秒 | 16.5秒 |
| 700×1100 | 32.5秒 | 56.0秒 |
このテストでは、600×900で約24%、700×1100で約42%の生成時間短縮が見られました。ただし、測定時のWebUI・PyTorch・xFormersのバージョンなどの詳細条件が残っていないため、参考値としてご覧ください。
現在の環境で導入を判断するなら、同じモデル・解像度・Sampling Steps・Batch sizeで複数回測定し、生成時間とVRAM使用量を比較するとよいでしょう。
VRAM不足や生成速度が気になる場合の考え方
xFormersは最適化の一つですが、すべてのVRAM不足を解消できるわけではありません。モデルの種類、画像サイズ、Batch size、使用する拡張機能なども必要なVRAM量に影響します。
筆者は以前、GTX 1660 SUPER(VRAM 6GB)を使用しており、処理速度やメモリ不足に悩む場面がありました。その後、RTX 3060(VRAM 12GB)を使用して検証しました。
GPUの更新は有効な選択肢ですが、必要なスペックは利用するモデルや用途によって変わります。「RTX 3060以上なら必ず快適」といった一律の基準では判断しないことが大切です。
まとめ
xFormersは、対応環境でVRAM使用量や生成速度を改善できる場合がある最適化ライブラリです。一方で、AUTOMATIC1111にはSDPなどの代替手段もあり、現在は必須の設定ではありません。
まずは標準設定での速度とVRAM使用量を確認し、必要に応じて最適化方法を比較してみてください。







コメント