xformersとは?Stable Diffusionを軽くする仕組み

xformersは、Transformerの部品を高速・省メモリに組み直したPythonライブラリで、画像生成では主に「注意機構」の計算を軽くする目的で使われます。
Transformerは、ChatGPTのような言語AIにも、Stable Diffusionのような画像生成AIにも入っている基本構造です。その中の「Attention(注意機構)」は、画像や文章のどこに注目するかを計算する部分。ここがとにかくメモリを食います。
xformersはこの計算を、同じ結果のままメモリを抑えるやり方に置き換えます。開発はMeta AI(Facebook Research)で、研究から本番運用までを想定した部品集として公開されています。
| 項目 | 内容 |
|---|---|
| 正体 | Transformer向けの高速化・省メモリ化ライブラリ |
| 開発元 | Meta AI(Facebook Research) |
| 主な使い道 | Stable Diffusion系の画像生成、Transformerの学習・推論 |
| 対応GPU | NVIDIA製GPU(CUDA環境)が中心 |
| 料金 | 無料(オープンソース) |
表のとおり、中身は「NVIDIA GPUで画像生成やAI学習を回す人のための部品」です。
ブラウザで画像を作るだけの人には、そもそも関係のない話。自分のPCでStable Diffusionを動かす人が対象です。
編集部のおすすめ
PCに
GPUや環境構築がなくても、登録してすぐブラウザで生成できます。多くは無料枠から試せます。
なぜVRAMが減るのか?memory-efficient attentionの考え方

xformersがVRAMを減らせるのは、注意機構の計算途中にできる巨大な表を、一度に全部メモリへ置かずに小分けで処理するからです。
普通の注意機構は、画像のすべての位置同士の関係を1枚の大きな表にします。画像を大きくすると、この表は縦にも横にも伸びる。解像度を2倍にすると、メモリ消費は2倍どころでは済みません。
xformersの「memory-efficient attention」は、この表を小さなブロックに分けて順番に計算します。全体をGPUのメモリに広げないので、ピーク時の消費量がぐっと下がる。結果の数値は同じです。
たとえるなら、大きな地図を床いっぱいに広げずに、1区画ずつめくって読むやり方に近いです。
- 減るもの: 計算途中の一時的なメモリ(ピークVRAM)
- 速くなる理由: GPUのメモリ読み書きが減り、待ち時間が短くなる
- 変わらないもの: 生成される画像の中身、モデル本体の重さ
- 苦手なこと: モデルの重み自体が大きすぎる問題は解決しない
最後の項目は見落としがちな落とし穴です。
モデルファイルそのものがVRAMに収まらない場合、xformersを入れても動きません。その場合は軽いモデルを選ぶか、別の手段を考える必要があります。仕組みが分かったところで、どんな場面で効くのかを具体的に見ます。
xformersで何が変わる?効果が出る場面・出にくい場面
xformersの効果は、高解像度の生成やバッチ生成など「注意機構の計算が重くなる場面」ほど大きく、小さな画像を1枚ずつ作るだけなら体感差は小さめです。
VRAMが8GBや12GBといった中堅クラスのGPUで、解像度を上げたとたんにメモリ不足で止まる。このケースでは破格の効き目があります。逆に、VRAMに余裕のある上位GPUでは「少し速くなったかな」程度のことも多いです。
| 場面 | 効果の | 理由 |
|---|---|---|
| 高解像度の生成 | 大きい | 注意機構の表が急に大きくなるため |
| 複数枚の同時生成(バッチ) | 大きい | ピークVRAMが積み上がるため |
| LoRAなどの追加学習 | 大きい | 学習中は計算途中のデータを多く抱えるため |
| 小さめの画像を1枚ずつ | 小さい | もともと注意機構の負担が軽い |
| モデル本体がVRAMに入らない | 効かない | 重みの大きさは変わらないため |
つまり「解像度やバッチを上げたらメモリ不足」という症状にこそ効く薬です。
注意したいのは、速度の上がり幅がGPUの世代やPyTorchの版で大きく変わる点。ネット上の「○%速くなった」という数字は、その人の環境での話にすぎません。自分の環境で入れる前後を比べるのが一番確実です。
効果を得るには、まず正しい組み合わせで入れる必要があります。ここが一番つまずく部分です。
PyTorch・CUDAとの対応表と確かめ方
xformersのpip版は特定のPyTorchの版に合わせてビルドされており、組み合わせが合わないと動かないか、PyTorchが勝手に入れ替わります。
Hugging FaceのDiffusers公式ドキュメントによると、xformersのpipパッケージは最新のPyTorchを必要とし、古いPyTorchを使う場合はソースからのインストールを推奨しています(2026年9月時点)。つまり「今のPyTorchに合うxformersを選ぶ」のが基本の考え方です。
公式の配布一覧には、次のようなwheel(インストール用のファイル)が並んでいます。
| xformersの | 配布されている | 対応Python |
|---|---|---|
| 0.0.31.post1 | Linux x86_64 / Windows amd64 | 3.9以降(abi3) |
| 0.0.32.post1 | Linux x86_64 / Windows amd64 | 3.9以降(abi3) |
| 0.0.32.post2 | Linux x86_64 / Windows amd64 | 3.9以降(abi3) |
「cp39-abi3」は、Python 3.9以降ならどの版でも1つのファイルで動くという意味です。Pythonの版で悩む必要はほぼありません。
問題はPyTorchの版です。xformersの各版は、要求するPyTorchの版をファイルの中に書き込んでいます。版の組み合わせを他人の表で覚えるより、自分の環境で直接確かめるほうが確実です。
| 確認したい | コマンド | 見る |
|---|---|---|
| 今のPyTorchとCUDA | python -c "import torch; print(torch.__version__, torch.version.cuda)" | 「2.x.x+cu1xx」のような表示 |
| 入れたらどうなるか | pip install xformers --dry-run | torchが入れ替わる予定がないか |
| 特定の版の依存 | pip install xformers==0.0.32.post2 --dry-run | 要求されるtorchの版 |
| 入れた後の状態 | python -m xformers.info | 使える機能とCUDAの認識 |
この4行を順に打つだけで、組み合わせ事故の大半は防げます。
特に--dry-runは地味に効きます。実際には何も入れず、「入れたら何が起きるか」だけを表示してくれるからです。torchの入れ替えが表示されたら、そのまま進めてはいけません。
確認が済んだら、実際のインストールに進みます。
pipでのインストール手順(Windows・Linux)
pipで入れる場合は、今のPyTorchと同じCUDA版の配布元を指定してインストールし、最後にxformers.infoで動作を確かめます。
手順は3段階です。仮想環境(プロジェクトごとに分けたPythonの箱)の中で作業するのが前提。WebUIやComfyUIを使っているなら、そのアプリが使う仮想環境を有効にしてから打ちます。
1. 仮想環境を有効にする
# Windows(PowerShell)の例
.\venv\Scripts\Activate.ps1
# Linuxの例
source venv/bin/activate
2. PyTorchのCUDA版に合わせて入れる
# 事前確認(何も入らない)
pip install -U xformers --index-url https://download.pytorch.org/whl/cuXXX --dry-run
# 問題なければ本番
pip install -U xformers --index-url https://download.pytorch.org/whl/cuXXX
cuXXXの部分は、前のセクションで確認したCUDAの版に合わせます。たとえばPyTorchが「+cu128」ならcu128です。
3. 動作を確認する
python -m xformers.info
表示の中に「memory_efficient_attention」の項目があり、利用可能を示す表示になっていれば成功です。
ここでPyTorchが別の版に入れ替わってしまった場合は、焦らず戻しましょう。pip install torch==元の版 --index-url ...で戻してから、その版に合うxformersを選び直します。
最新の手順はxformersの公式GitHubのREADMEにまとまっています。CUDAの版ごとのコマンド例もここが一番新しいです。
pip以外に、condaやpixiで入れる方法もあります。
condaとpixiで入れる場合はどう違う?
condaやpixiで入れると、PyTorchとxformersのCUDA版をパッケージ管理側がまとめて揃えてくれるため、組み合わせ事故が起きにくくなります。
xformersはconda-forge(コミュニティが運営する配布チャンネル)でも配布されています。conda-forge版は、CUDAの種類を仮想パッケージという仕組みで管理しています。PyTorchとxformersが同じCUDAを共有するよう、依存関係を自動で解いてくれるわけです。
# condaの場合
conda install -c conda-forge xformers
# pixiの場合
pixi add xformers
pixiは、プロジェクト単位で環境を固定できる新しめのパッケージ管理ツールです。チームで同じ環境を再現したい場合に重宝します。
| 方 | 向いている | 注意点 |
|---|---|---|
| pip | WebUIやComfyUIの仮想環境をそのまま使う人 | PyTorchの版合わせを自分でやる |
| conda | 研究用・学習用の環境を1から作る人 | pipで入れたtorchと混ぜると壊れやすい |
| pixi | 環境を固定して複数台で再現したい人 | ツール自体に慣れが必要 |
| ソースからビルド | 古いPyTorchを使い続けたい人 | ビルドに時間がかかり、コンパイラ環境が要る |
つまり、既存のアプリに足すならpip、まっさらな環境を作るならcondaかpixiという分け方で迷いません。
conda環境の中でpipとcondaを混ぜるのは避けたほうが無難です。どちらで入れたtorchなのか分からなくなり、原因の切り分けが一気に難しくなります。インストールが終わったら、使うアプリの側で有効にする作業が残っています。
WebUI・ComfyUI・Diffusersで有効にする方法
xformersは入れただけでは使われないことがあり、アプリごとに「起動オプション」か「コードでの指定」で有効にします。
アプリによって、自動で使うものと明示的に指定が要るものに分かれます。
| アプリ・ライブラリ | 有効に | 補足 |
|---|---|---|
| Stable Diffusion WebUI(AUTOMATIC1111系) | 起動オプションに--xformersを追加 | webui-user.batなどの起動設定に書く |
| ComfyUI | インストールされていれば自動で使用 | 無効化は--disable-xformers |
| Diffusers(Python) | set_attention_backend()で指定 | Attention backendsの公式ガイド参照 |
| 自作のPyTorchコード | xformers.ops.memory_efficient_attentionを呼ぶ | 既存の注意機構を置き換える |
表を見ると分かるとおり、ComfyUIだけは手間がほぼありません。
ComfyUIは、画像生成の手順を「ノード」と呼ばれる箱をつないで組み立てるツールです。xformersが入っていれば起動時に自動で読み込むので、設定ファイルをいじる必要がありません。細かい制御をしたい人や、同じ処理を何度も回したい人に向いています。逆に、ノードの配線に抵抗がある人には最初のハードルがやや高めです。PCにGPUが無い場合は、公式のクラウド版であるComfy Cloudという選択肢もあります。
Diffusersを使う場合は、公式ドキュメントのAttention backendsガイドにあるset_attention_backend()で切り替えます。詳しくはHugging Face Diffusersのxformersページが一次情報です。
有効にしたはずなのに動かない。そんなときに出やすいエラーを次でまとめます。
よくあるエラーと直し方
xformersのエラーは、ほぼ「PyTorchとの版ずれ」「CUDAを認識していない」「対応していないGPUや形状」の3系統に分かれます。
エラー文は英語で長いですが、キーワードで見分けられます。
| エラー文に | 主な | 直し方 |
|---|---|---|
No operator found for memory_efficient_attention | 版ずれ、またはGPU・入力形状が非対応 | python -m xformers.infoで使える機能を確認し、版を合わせ直す |
xFormers wasn't build with CUDA support | CUDA無しの版が入っている | CUDA版を指定して入れ直す |
torch の版に関する警告 | xformersが別のtorch向け | torchに合うxformersを選び直す |
DLL load failed(Windows) | 版ずれ、または依存ファイルの不足 | 仮想環境を作り直すのが最短 |
表の中で一番多いのは1行目です。
エラーが出たら、まずpython -m xformers.infoを打ちます。ここで「使えない」と出た機能が、エラーの正体です。多くの場合、PyTorchの版を上げたのにxformersが古いまま、という組み合わせになっています。
- 一番早い解決策: 仮想環境を作り直し、PyTorch→xformersの順に入れ直す
- やってはいけないこと: エラーが出るたびに版を上下させ続けること
- 最後の手段: xformersを外して、PyTorch標準の仕組みに任せる
Windowsで何度も壊れるなら、仮想環境を消して作り直すほうが結局早いです。
1時間の格闘より10分の再構築。これが経験則として定着しています。そして3つ目の「最後の手段」は、実は多くの人にとって正解になり得ます。
ここまでの整理: xformersは注意機構のメモリを小分けで処理し、ピークVRAMを減らすライブラリです。pip版はPyTorchの版に強く縛られるので、
--dry-runとxformers.infoで確かめてから入れるのが安全。ここからは「そもそも入れるべきか」を考えます。
PyTorch標準のSDPAがあれば不要?
PyTorch 2系には標準でSDPA(省メモリな注意機構の計算)が入っているため、多くの環境ではxformersなしでも近い効果が得られ、必須ではありません。
SDPAは「scaled dot product attention」の略で、PyTorch本体に組み込まれた注意機構の関数です。中身には、xformersと同じ発想の省メモリ計算が含まれています。つまり、PyTorchを新しくするだけで、似た恩恵を受けられるわけです。
では、xformersの出番はもう無いのか。そうとも言い切れません。
| 比べる | xformers | PyTorch標準SDPA |
|---|---|---|
| 追加インストール | 必要 | 不要 |
| 版合わせの手間 | 大きい | ほぼ無い |
| 省メモリ効果 | 高い | 高い(環境によって差) |
| 速度 | GPUや形状によってはこちらが速い | GPUや形状によってはこちらが速い |
| 壊れにくさ | PyTorch更新のたびに要確認 | 本体と一緒に更新される |
つまり、性能の差は環境次第で、手間の差ははっきりしているという構図です。
ComfyUIには--use-pytorch-cross-attentionというSDPAを使う起動オプションがあります。xformersで何度も壊れるなら、こちらに切り替えて様子を見るのが手堅い判断です。
どちらが速いかは、同じ設定で両方を試して時間を比べれば分かります。1回数十秒の比較で済むので、思い込みで決めずに測ってください。とはいえ、そもそもGPU自体が非力なら、ライブラリの工夫だけでは限界があります。
自分のGPUで回すか、クラウドに任せるか
VRAMが足りずxformersでも厳しい場合は、GPUを買い替えるより、クラウドGPUやブラウザ型の画像生成サービスに任せたほうが費用も手間も抑えられることが多いです。
xformersはあくまで「今あるGPUを上手に使う」道具です。モデル本体が載らない、生成に何分もかかる。そういう状態なら、処理そのものを外へ出す選択が現実的になります。
| 選択肢 | 向いている | 向かない |
|---|---|---|
| 自分のPC+xformers | NVIDIA GPUを持ち、設定を詰めたい人 | Mac利用者、GPUが古い人 |
| ComfyUI / Comfy Cloud | ノードで手順を組み、同じ処理を繰り返したい人 | 配線作業が苦手な人 |
| Novita AI | APIやクラウドGPUで生成を組み込みたい開発者 | コードを書かずに使いたい人 |
| getimg.ai | ブラウザだけで手早く画像を作りたい人 | ライブラリ単位で細かく調整したい人 |
表の上の行ほど自由度が高く、下の行ほど手軽です。
Novita AIは、画像生成モデルをAPI(他のソフトからAIを呼び出す窓口)で使えるほか、GPUを時間単位で借りられるクラウドサービスです。自社アプリに画像生成を組み込みたい開発者に向いています。一方、コードを書かずに画面だけで完結させたい人には遠回りです。料金体系は使い方で変わるので、最新の条件は公式サイトで確認してください。
getimg.aiは、ブラウザ上でStable Diffusion系などのモデルを使って画像を作れるサービスです。インストールも版合わせも要らないので、「xformersのエラーで1日溶けた」という人には相性がいいです。ただし、細かいライブラリ設定まで触りたい人には物足りません。無料枠の有無と条件は公式で確かめてから使い始めましょう。
ブラウザで無料のまま画像を作り続けたいなら、イメージfxの無料移行ガイドも参考になります。Googleの無料ツールで生成を続ける手順がまとまっているので、ローカル環境をやめる判断材料になります。
キャラクターを何枚も同じ見た目で描きたい用途なら、AIマンガ生成ツール7選で一貫性の出し方と商用利用の条件を先に押さえておくと、ツール選びで遠回りしません。
画像生成ツール全体を見比べたい人は、AI画像生成のカテゴリから一覧で確認できます。ここまでの材料をふまえて、編集部としての見立てをまとめます。
AI PICKS編集部の判定
xformersは、今から新しく環境を作る人にとって「入れなくてもいい、でも知っておくべき道具」です。公開情報を突き合わせると、評価はこうなります。
PyTorch 2系に標準のSDPAが入ったことで、xformersの立ち位置は大きく変わりました。かつてはStable Diffusionを動かすなら一択でしたが、今は「標準機能で足りなければ足す追加パーツ」です。pip版が最新のPyTorchを前提にしている以上、PyTorchを更新するたびに版合わせの手間がついて回ります。この管理コストは正直イマイチです。
一方で、VRAM 8GB〜12GB級のGPUで高解像度やLoRA学習をするなら、今でも重宝します。SDPAと両方試して速いほうを使う。この進め方が一番損をしません。
おすすめは、ComfyUIで標準のSDPAから始め、足りなければxformersを足す順番です。ComfyUIはxformersを自動で読み込むので、切り替えのコストが圧倒的に小さいからです。
そもそもGPUが非力なら、xformersで粘るよりクラウドやブラウザ型サービスへ移るほうが時間の節約になります。ライブラリ調整に何日もかけるのは、道具の目的から外れています。
よくある質問(FAQ)
Q. xformersは無料で使えますか?
はい、無料です。Meta AIが公開しているオープンソースのライブラリで、有料プランはありません。商用で使う場合は、GitHubのLICENSEファイルで条件を確認してください。
Q. Mac(Apple Silicon)でもxformersは使えますか?
実用的な選択肢ではありません。公式に配布されているwheelはLinux x86_64とWindows向けで、NVIDIAのCUDA環境を前提にしています。MacではPyTorch標準の仕組みを使うのが基本です。
Q. xformersを入れたらPyTorchの版が変わってしまいました。どうすればいいですか?
元のPyTorchを入れ直してから、その版に合うxformersを選び直します。次回からはpip install xformers --dry-runで、torchが入れ替わらないかを先に確認すると防げます。
Q. xformersを入れると画像の仕上がりは変わりますか?
計算の順番を変えるだけなので、画像の中身は基本的に変わりません。細かな数値の差で、同じシード値でもわずかに違う絵になることはあります。
Q. xformersとPyTorchのSDPA、どちらを使えばいいですか?
まずはSDPAで始めて、VRAM不足や速度に不満が出たらxformersを試す順番がおすすめです。GPUや画像サイズによって速いほうが入れ替わるので、同じ設定で両方を測って決めてください。
Q. Pythonのバージョンは何でもいいですか?
公式wheelは「cp39-abi3」形式なので、Python 3.9以降であれば1つのファイルで動きます。気にすべきはPythonよりPyTorchの版です。
Q. xformersのインストールがどうしても上手くいきません。
仮想環境を作り直し、PyTorch、xformersの順に入れ直すのが最短です。それでも駄目なら、xformersなしでSDPAを使うか、ブラウザで完結する画像生成サービスへの切り替えを検討してください。
あわせて見たいツール・カテゴリ
xformersで環境を整えた後の使い道や、ローカル以外の選択肢を探すときに役立つページを並べました。
- ComfyUI:xformersを自動で使うノード型の画像生成ツール。手順を組んで量産したい人向け
- Novita AI:APIとクラウドGPUで画像生成を組み込みたい開発者向け
- getimg.ai:インストール不要でブラウザから画像を作りたい人向け
- AI画像生成ツールの比較ランキング:用途別に候補を絞り込みたいときに
- AIデザインのカテゴリ:生成した画像をバナーや資料に仕上げるツール
- AIコーディングのカテゴリ:Diffusersなどのコードを書くときの補助に
- AI自動化のカテゴリ:画像生成を他の業務とつなぎたいときに
生成した画像を定期的に作ってSNSや資料へ流したいなら、n8nの使い方でワークフローの組み方を押さえると、手作業の往復が減ります。デザインツールと画像生成をつないで素材を量産したい人は、Figma nodeとは?で具体的なつなぎ方が分かります。画像生成以外にもAIの導入を段階的に進めたい事業者には、AIセールスツール5選が、フェーズごとにツールを足していく考え方の参考になります。
次に読むならこれ。ローカル環境の構築に疲れたら、イメージfxの無料移行ガイドがおすすめです。GPUも版合わせも要らずに生成を続ける道筋が、3つの手順で分かります。

有料にすると Entryで毎月3 000クレジットと商用利用権(Entry 月払い¥1,450/月、年払いなら¥1,160/月 (¥13 920を年額請求、税別))
各ツールの公式サイト(一次情報)
料金・機能・対応範囲は各社公式が一次情報です。本記事は公開時点の検証に基づきますが、最新かつ正確な条件は必ず各公式ページで確認してください。
- ComfyUI:公式サイト(AI PICKSの詳細)
- Novita AI:公式サイト(AI PICKSの詳細)
- getimg.ai:公式サイト(AI PICKSの詳細)



