見出し画像

RTX 50ユーザーはxformersを窓から投げ捨てろ(動作させる方法もあるよ)

2026/4/10更新:Forge Neoの公式Githubのメッセージについて追記
2026/2/2更新:xformers 0.0.34でコードを改変して動作させても、A1111系WebUIでは適切に利用できていない可能性について追記
2026/2/1更新:コード改変しても動作しないバージョン組合せがあることを追記


PyTorchの最適化が進んだことによって、画像生成や動画生成におけるxformersの優位性は小さくなっています。
また、xformersが使われることが少なくなったためか?調べてもほとんど情報が出てきませんが、私が試した限りGeforce RTX 50シリーズ (Blackwell) では関連ライブラリのほとんどのバージョンの組合せにおいてxformersは動作しません。

Blackwellでxformersがほとんどのバージョンの組合せで動作しないこと、また動作させる方法を解説します。


xformersとは

xformersはMeta社 (Meta Research) が開発したAI(特にTransformerモデル)の計算を効率化するためのライブラリです。画像生成や動画生成においては、メモリ使用量を削減しつつAttention計算を効率化することで、VRAMが少ない環境でも高速・高解像度な生成を可能にするとされています。

現在のxformersの立ち位置

上記の公式Githubでは "xFormers contains bleeding-edge components, that are not yet available in mainstream libraries like PyTorch.”(xFormersには、PyTorchのような主流のライブラリではまだ利用できない最先端のコンポーネントが含まれています) と説明されています。しかしPyTorchの最適化が進んだことで現在では画像生成や動画生成におけるxformersの優位性は小さくなり、個別に導入して適用する必要はほとんど無くなっています。
私もA1111系WebUIで実際にpytorch attention,sage attention, xformersの性能を検証しました。

その結果、生成時間は良いほうから順に、
sage attention > xformers > pytorch attention
となりましたがxformersとpytorch attentionの差は小さく、VRAM消費量についてはsage attentionも含めて大きな差はありませんでした。

また検証当時xfomersは0.0.33.post2、PyTorchは2.9.1が最新版でしたが、その組み合わせでは生成でエラーが発生し、動作させるためにxformers 0.0.30とPyTorch 2.7.0まで下げる必要がありました。

このことから、生成時間の短縮を目的に個別導入するならsage attentionのほうが優れており、導入が面倒であれば標準的に利用できるpytorch attentionでも大きな問題はないと考えられます。

xformersのBlackwellサポート

PyTorchは2025/4/23にリリースされた2.7.0で正式にBlackwellに対応しました。xformersは2025/4/29にリリースされた0.0.30でPyTorch 2.7.0に対応し、私はこれがBlackwell対応だと思っていました。
確かにその組合せであればBlackwellでも動作しましたが、それ以降のバージョンの組合せでは動作しません。

xformersのGitHubを見てもGPUのサポート範囲がはっきりと書かれておらず、ソースコードを見る限りでは機能によって異なるようです。
たとえばFlashAttentionの最新版FlashAttention 3については、flash3.pyによるとサポート範囲がCUDA GPU Compute Capability = 8.0~9.0(GeForce RTX 30 ~ RTX 40)とかなり狭いです。
またCUTLASSについてはxformers 0.0.33.post1以降、cutlass.py(capability ≦ 9、~ GeForce RTX 40)とcutlass_blackwell.py(capability ≧ 10、GeForce RTX 50 ~)でコードが分けられています。

FlashAttention 3は使えないとしてもCUTLASSはcutlass_blackwell.pyというコードがあるのでRTX 50で動きそうですが、ComfyUIやA1111系WebUIでxformers 0.0.34を使おうとしても起動はするものの以下のようなエラーが発生します。

`fa3F@0.0.0` is not supported because:
    requires device with capability <= (9, 0) but your GPU has capability (12, 0) (too new)
    operator wasn't built - see `python -m xformers.info` for more info
`fa2F@0.0.0` is not supported because:
    operator wasn't built - see `python -m xformers.info` for more info
`cutlassF-pt` is not supported because:
    requires device with capability <= (9, 0) but your GPU has capability (12, 0) (too new)

エラーメッセージの意味は以下のとおりです。

  • fa3F (FlashAttention 3) はサポートされていません

    • capability ≦ 9のデバイス(~ GeForce RTX 40)が要求前提ですが、あなたのGPUはcapability = 12です(新しすぎる)

    • そのオペレーターはビルドされていません

  •  fa2F (FlashAttention 2) はサポートされていません

    • そのオペレーターはビルドされていません

  • cutlassF-ptはサポートされていません

    • capability ≦ 9のデバイス(~ GeForce RTX 40)が要求前提ですが、あなたのGPUはcapability = 12です(新しすぎる)

cuttlassF-ptと順にフォールバックして、すべて利用できないため生成を中止したということです。

メッセージに記載されている "python -m xformers.info" の結果は、xFormers v0.0.34とv0.0.30でそれぞれ以下のとおりです(抜粋)。

xFormers 0.0.34
memory_efficient_attention.cutlassF-pt:            available
memory_efficient_attention.cutlassF-blackwell:     unavailable
memory_efficient_attention.fa2F@0.0.0:             unavailable
memory_efficient_attention.fa3F@0.0.0:             unavailable
xFormers 0.0.30
memory_efficient_attention.cutlassF-pt:            available
memory_efficient_attention.fa2F@2.7.4:             available
memory_efficient_attention.fa3F@0.0.0:             unavailable

fa3Fが利用できないのは仕方ないとして、0.0.30で利用できたfa2Fは0.0.31以降ではDeprecated(非推奨、廃止)となり組み込まれていないようです。利用するにはFlashAttention 2 (flash-attn) を個別にインストールしなければならないようですが、FlashAttention公式からはWindows用whlが配布されておらずビルドが必要そうなので諦めました。
cutlassF-blackwellが利用できない原因は不明です。利用できたとしてもエラーメッセージ的にComfyUIやA1111系WebUIからは呼ばれていないようですが。
そしてcutlassF-ptは利用できるはずですが、前述のとおりcutlass.pyにcapability ≦ 9(~ GeForce RTX 40)という判定コードがあるため、Blackwellでは利用できずエラーになるようです。

Blackwellでxformersを動作させる方法

私が確認した範囲で、BlackwellでComfyUIやA1111系WebUIを使用してxformersを動作させる方法は二つあります。

(方法1)PyTorchとxformersを特定のバージョンにする

前の節でxformersのバージョンが0.0.30では動作したが、0.0.31以降で組み込みのFlashAttentionがfa2Fからfa3Fになり、0.0.33.post1以降でcutlassF-ptとcutlassF-blackwellに分離され動作しなくなったと書きました。
つまり以下のようにxformersを0.0.30に指定してインストールすればBlackwellでもエラー無く生成可能です。
仕組み的にfa2F (FlashAttention 2.7.4) が使われているはずです。

pip install xformers==0.0.30 --index-url https://download.pytorch.org/whl/cu128

--index-urlを指定しないとCPU用がインストールされるため忘れないようにしてください。
このwhlはPyTorch 2.7.0+cu128専用にビルドされているため、異なるバージョンのPyTorchでは動作しません。triton-windowsやsageattentionも対応するバージョンにする必要があるので注意してください。
PyTorch、triton-windows、sageattentionの対応バージョンの組合せについては過去に記事にしています。

(方法2)xformers 0.0.34のコードを改変する

以下のissue reportを参考にしました。

前述のcutlass.pyに記載されたcapability ≦ 9という判定コードを直接変更してエラーを回避するという対応です。

対象ファイル:venv\Lib\site-packages\xformers\ops\fmha\cutlass.py
変更箇所:170行目
(変更前)

    CUDA_MAXIMUM_COMPUTE_CAPABILITY = (9, 0)

(変更後)

    CUDA_MAXIMUM_COMPUTE_CAPABILITY = (12, 9)

これでBlackwellを含むcapability ≦ 12.9のGPUで動作するようになります。
ComfyUIとA1111でそれぞれ以下の組合せで簡単な画像生成をしましたが、とりあえず正常に動作しているようでした。
仕組み的にcutlassF-ptが使われているはずです。

  • ComfyUI v0.11.0
    torch 2.10.0+cu130, xformers 0.0.34, triton-windows 3.6.0.post25

インストールコマンド

pip install torch==2.10.0 torchvision --index-url https://download.pytorch.org/whl/cu130
pip install xformers==0.0.34 --index-url https://download.pytorch.org/whl/cu130
pip install triton-windows=3.6.0.post25

起動メッセージ(抜粋)

xformers version: 0.0.34
Using xformers attention
  • Stable Diffusion web UI (A1111) dev fd68e0c (2025/12/18)
    torch 2.10.0+cu128, xformers 0.0.34 ※ triton-windowsは不要

インストールコマンド

pip install torch==2.10.0 torchvision --index-url https://download.pytorch.org/whl/cu128
pip install xformers==0.0.34 --index-url https://download.pytorch.org/whl/cu128

起動メッセージ(抜粋)

Applying attention optimization: xformers... done.

2026/2/1追記:コード改変してもtorch 2.9.1+cu130, xformers 0.0.33.post2の組合せでは動作しませんでした。他の組合せも動作しない可能性があります。
2026/2/2追記:xformers 0.0.34でコードを改変して動作させてもA1111(Forge系も)ではpytorch attentionと生成される画像が変わりませんでした。ComfyUIとxformers 0.0.34、A1111とxformers 0.0.30の組合せでは画像が変わりますのでA1111からxformers 0.0.34は適切に使えていない可能性があります。

まとめ

Blackwellでxformersがほとんどのバージョンの組合せで動作しないこと、また動作させる方法を解説しました。
FlashAttention 3が使えるGeForce RTX 30 ~ RTX 40では違うのかもしれませんが、RTX 50では画像生成や動画生成においてわざわざxformersを導入する必要はほとんどありません。
どうしても導入する必要があったり、意図せず有効にしてしまって記事内のエラーで困っている人はxformersを無効にしてみるか、この記事の方法で対応してみてください。

このような感じで、あまり体系的に整理や理解されていない技術的な内容を分かりやすく無料で解説しています。「スキ」「フォロー」「チップ」で応援よろしくお願いします。

補足

2026/4/10追記:Forge Neo公式GitHubのREADMEが更新され、"xformers does not support RTX 50s" というメッセージが追加されていて笑いました。何かあったのでしょうかw

https://github.com/Haoming02/sd-webui-forge-classic より

関連記事

2026/2/5追記:続編として「xformersとFlashAttentionを救いたい」を書きました。xformers 0.0.34でfa2F (FlashAttention 2.8.3) を使う方法に興味がありましたらご覧ください。

いいなと思ったら応援しよう!