ComfyUIをBlackwell GPU(RTX 50/PRO 6000)で動かすまでの手順と落とし穴
RTX 5090やRTX PRO 6000などのBlackwell世代GPUを買ってComfyUIを動かそうとしたら、CUDA error: no kernel image is available for execution on the deviceで落ちた――という報告がRedditやGitHub Discussionsに大量に上がっている。原因はハードウェアの不具合ではなく、PyTorch安定版がBlackwellアーキテクチャ(Compute Capability sm_120)をまだサポートしていないことにある。
自分もQwen-Image-Layeredの記事でRTX PRO 6000上のComfyUIがVAEデコード時にNaNを吐いて使えず、diffusersに逃げた。あのときは「ComfyUI側の対応待ち」で片付けたが、実際にはPyTorch Nightlyへの切り替えとxformers排除で動く環境を作れる。調べた内容をまとめた。
なぜBlackwellでComfyUIが動かないのか
sm_120とCUDAコンパイルの不一致
NVIDIAのCUDAは、GPUコードをバイナリ形式のcubinオブジェクトとアセンブリ形式のPTXの2種類で配布する。cubinは特定のCompute Capabilityに厳密に紐づいており、sm_90(Hopper)向けのcubinはsm_120(Blackwell)では動かない。PTXが同梱されていればドライバがJITコンパイルで対応できるが、PyTorch安定版(2.5〜2.7)はsm_120向けのPTX命令を欠いているか、アーキテクチャチェックで実行をブロックしてしまう。
結果として起きるのがどちらかの症状。
CUDA error: no kernel image is available for execution on the deviceで即死- GPU実行を諦めてCPUフォールバック → 実用不可能な速度
Blackwellハードウェアのスペック
RTX PRO 6000 Blackwell Workstation Editionの主要スペック。
| 項目 | 仕様 |
|---|---|
| VRAM | 96 GB GDDR7 |
| メモリバス | 512ビット |
| メモリ帯域幅 | 約1.8 TB/s |
| Tensorコア | 第5世代 |
| ネイティブ精度 | FP4対応 |
| TDP | 600W(Max-Qは300W) |
コンシューマー向けのRTX 5090/5080/5070も同じsm_120アーキテクチャなので、互換性の問題は共通。
xformersの罠
Blackwell環境で最も厄介なのが「xformersの罠」と呼ばれる現象。PyTorch Nightlyで環境を正しく構築したはずなのに、突然GPUが認識されなくなるケースが頻発している。
何が起きるか
graph TD
A[PyTorch Nightly cu130で<br/>Blackwell環境を構築] --> B[カスタムノードを<br/>インストール]
B --> C[requirements.txtに<br/>xformersが含まれている]
C --> D[pipの依存関係リゾルバが<br/>起動]
D --> E[xformersがPyTorch安定版を<br/>要求]
E --> F[PyTorch Nightlyが<br/>アンインストールされる]
F --> G[PyTorch安定版に<br/>ダウングレード]
G --> H[sm_120互換性が<br/>消失]
H --> I[環境崩壊]
2026年初頭時点で、PyPIで配布されているxformersのコンパイル済みバイナリはRTX 40シリーズ(Ada Lovelace, sm_89)までしかサポートしていない。カスタムノードのインストール時にxformersが依存関係に含まれていると、pipがPyTorch Nightlyを勝手にアンインストールして安定版にダウングレードしてしまう。
対策
- 起動引数に
--disable-xformersを必ず追加 - カスタムノードの
requirements.txtからxformersの記述を手動で削除 - 問題の切り分けには
--disable-all-custom-nodesと--whitelist-custom-nodesを併用 - 特定ノードのディレクトリ名に
.disabledを付与して隔離
Attentionメカニズムの選択肢
xformersを排除した場合、Cross-AttentionとSelf-Attentionの計算に代替メカニズムが必要になる。Blackwell環境で使える選択肢は以下の3つ。
| Attentionメカニズム | Blackwell互換性 | 設定方法 | 特徴 |
|---|---|---|---|
| PyTorch SDPA | 完全互換 | --use-pytorch-cross-attention | 導入が容易で安定。速度はSageよりやや劣る |
| SageAttention | カスタムWheelが必要 | KJNodesのPatchノードを使用 | 30〜35%の高速化。ビルドとバージョン依存関係が厳格 |
| FlashAttention-4 | Linux環境で互換 | pip install flash-attn-4(Linux) | 理論上最速クラスだがWindowsネイティブでの導入が困難 |
PyTorch SDPA(安定重視)
torch.nn.functional.scaled_dot_product_attentionはPyTorch組み込みなので、追加ライブラリ不要でsm_120上で動く。起動引数に --use-pytorch-cross-attention を追加するだけ。torch.compileと組み合わせれば、専門ライブラリに近いパフォーマンスが出る。
SageAttention(速度重視)
SageAttention 2.2.0/3.0は、Query/Key行列にINT8量子化を適用しつつValueは16ビット精度を維持する手法で、SDPAと比べて30〜35%の高速化を実現する。ただしWindowsへの導入はかなり面倒。
Windowsでの導入の壁
- SageAttentionはTritonに依存するが、標準のTritonはLinux専用。Windows用には
triton-windowsフォークが必要 - CUDA 13.0 + MSVCでソースビルドすると、PyTorchヘッダーファイル内の名前空間衝突(
MSVC C2872: 'std' ambiguous symbol)でほぼ確実に失敗する - 事前コンパイル済みWheelを使う必要があるが、PyTorch Nightlyのビルド日付が1日でもずれると
DLL load failedで動かない
グローバル適用すると黒画像になる
--use-sage-attention フラグでグローバルに有効化すると、Wan 2.1やQwenなど特定モデルで出力が真っ黒になる問題が報告されている。
KJNodesでノードレベルに適用する
ComfyUI-KJNodesのPatch Sage Attention KJノードを使ってノードレベルで適用する。
- 起動引数から
--use-sage-attentionを削除(デフォルトのPyTorch Attentionで起動) - ComfyUIのグラフ上で、モデルロード直後に Patch Sage Attention KJ ノードを挿入
- バックエンド設定を
sageattn_qk_int8_pv_fp16_cudaに指定
コンソールに Using xformers attention in VAE と表示されることがあるが、これはVAEのエンコード/デコードフェーズでのフォールバック通知であり、環境の退行ではない。
NVFP4量子化でVRAMを劇的に削減
Blackwellの目玉機能の一つが、シリコンレベルでネイティブサポートされる4ビット浮動小数点フォーマット「NVFP4」。一般的な事後量子化(ロスのある圧縮)とは異なり、AIワークロード専用に設計されたハードウェアアクセラレーション対応の精度フォーマットになっている。
VRAMとスループットの変化
14Bパラメータのモデルを例にとる。
| 精度 | VRAM消費量 |
|---|---|
| FP16 | 約28 GB |
| FP8 | 約14 GB |
| NVFP4 | 約6.8〜7.5 GB |
推論速度はFP16比で200〜300%の高速化。実環境のテストでは、FLUX.1-devの画像生成がBF16の40秒超から約12秒に短縮されている。
comfy-kitchenバックエンドの導入
ComfyUI標準のモデルローダーは4ビットの重みデータを直接TensorCoreに渡す方法を知らない。NVFP4を使うには、Comfy-Orgが開発しているcomfy-kitchenライブラリが必要。
pip install comfy-kitchen[cublas]
CUDA 13.0(cu130)が必須。
NVFP4が正しく動いているかの確認方法
comfy-kitchenが未インストールまたは初期化に失敗している場合、以下の症状が出る。
weight_dtypeがdefault→ FP16に強制キャストされて約28 GB消費 → OOMエラーweight_dtypeがfp8_e4m3fn→ 4ビットから8ビットにアップキャストされて約14 GB消費 → NVFP4の恩恵なし
正常動作していれば以下が確認できる。
- コンソールログに
dequantize_nvfp4およびquantize_nvfp4がリストされている - モデルロード時に
manual cast: torch.float16の警告が出ない TF32 enabled, cuDNN benchmark activeが表示される
ドライバの安定性問題
RTX PRO 6000や5090で、VRAMが飽和する高負荷処理(高解像度動画生成など)を続けると画面がブラックアウトし、ディスプレイドライバがクラッシュする現象が報告されている。Windowsの再起動では復帰せず、電源ユニットからの物理的なハードリブートが必要になるケースもある。
推奨ドライバ
| ブランチ | バージョン | 修正内容 |
|---|---|---|
| Production Branch R580 | 582.16 | RTX PRO 6000の安定動作認証済み。マルチGPU環境でのクリーンインストール推奨 |
| Production Branch R595 | 595.71(2026年3月2日) | Blackwell Max-QのマルチGPU環境でのクラッシュ問題を修正 |
DDU(Display Driver Uninstaller)で古いドライバをクリーンアップしてからインストールすること。
Proxmox GPUパススルーの場合
Linux上でVFIOを使ってGPUパススルーしている場合、ホストOSがクラッシュする問題がある。対策として vfio_iommu_type1 allow_unsafe_interrupts=1 の設定が必要。vBIOSが古い場合はNVIDIAサポート経由でアップデートする。
ComfyUIのVRAM管理引数
| 引数 | 効果 |
|---|---|
--highvram | モデルをVRAM内に保持し続ける。96 GB VRAMなら必須。デフォルトではモデルが使用直後にシステムRAMにアンロードされてしまう |
--async-offload | 待機中のテンソルを非同期にシステムRAMへ退避 |
--pin-shared-memory | RAMのページを固定してディスクスワップの遅延を防止 |
--disable-cuda-malloc | PyTorchネイティブのメモリアロケーションを使用。Blackwell最適化パッチ適用後はこちらの方が安定する場合がある |
--fast-fp16 | FP16演算の最適化 |
デプロイ方法の選択
Docker(Linux/WSL2)
環境の隔離性を重視するならDockerが最適。ChiefNakor/comfyui-blackwell-dockerが、Blackwell最適化済みのイメージを提供している。
メリットは多い。
- cu130対応のPyTorch依存関係解決を自動化
- SageAttentionを事前コンパイル済み
- comfy-kitchenバックエンドを統合済み
- カスタムノードがxformersを呼び出してもホスト環境が汚染されない
- 壊れたらコンテナを破棄して
docker-compose buildするだけ
Windowsネイティブ
WSL2のオーバーヘッドを避けたい場合。hiroki-abe-58/ComfyUI-Win-Blackwellが参考になる。
必須要件は以下の通り。
- Pythonバージョンの固定(SageAttentionのWheelに合わせて3.11または3.13)
- xformersの明示的排除とSDPA/triton-windowsでの代替
- カスタムノード導入時の依存関係手動監査
セットアップ手順
ドライバと基盤環境
- DDUで古いドライバをクリーンアップ
- Production Branchドライバ(582.16 or 595.71)をクリーンインストール
- CUDA Toolkit 13.0をインストール
- Python 3.11 or 3.13で仮想環境を作成
PyTorchとComfyUI
# PyTorch Nightly (cu130) のインストール
pip install --pre torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/nightly/cu130
# ComfyUIをクローン
git clone https://github.com/comfyanonymous/ComfyUI.git
ComfyUI本体とカスタムノードの requirements.txt から xformers の記述を削除。
アクセラレーションライブラリ
# comfy-kitchen(NVFP4用)
pip install comfy-kitchen[cublas]
# triton-windows(Windows環境のみ)
pip install triton-windows
# SageAttention(sm_120向けの事前コンパイル済みWheel)
pip install sageattention-2.2.0+cu130.torch2.11-cp311-cp311-win_amd64.whl
# KJNodes(SageAttentionのノードレベル適用用)
cd custom_nodes
git clone https://github.com/kijai/ComfyUI-KJNodes.git
起動引数の設定
python main.py ^
--disable-xformers ^
--use-pytorch-cross-attention ^
--highvram ^
--async-offload ^
--pin-shared-memory
ワークフローの構築
- NVFP4量子化チェックポイント(Wan 2.2やFLUX.2など)をロード
- モデル出力を Patch Sage Attention KJ ノードに接続
- バックエンドを
sageattn_qk_int8_pv_fp16_cudaに設定 - パッチ適用済みモデルをK-Samplerに渡す