技術 約8分で読めます

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の主要スペック。

項目仕様
VRAM96 GB GDDR7
メモリバス512ビット
メモリ帯域幅約1.8 TB/s
Tensorコア第5世代
ネイティブ精度FP4対応
TDP600W(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-4Linux環境で互換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での導入の壁

  1. SageAttentionはTritonに依存するが、標準のTritonはLinux専用。Windows用には triton-windows フォークが必要
  2. CUDA 13.0 + MSVCでソースビルドすると、PyTorchヘッダーファイル内の名前空間衝突(MSVC C2872: 'std' ambiguous symbol)でほぼ確実に失敗する
  3. 事前コンパイル済みWheelを使う必要があるが、PyTorch Nightlyのビルド日付が1日でもずれると DLL load failed で動かない

グローバル適用すると黒画像になる

--use-sage-attention フラグでグローバルに有効化すると、Wan 2.1やQwenなど特定モデルで出力が真っ黒になる問題が報告されている。

KJNodesでノードレベルに適用する

ComfyUI-KJNodesのPatch Sage Attention KJノードを使ってノードレベルで適用する。

  1. 起動引数から --use-sage-attention を削除(デフォルトのPyTorch Attentionで起動)
  2. ComfyUIのグラフ上で、モデルロード直後に Patch Sage Attention KJ ノードを挿入
  3. バックエンド設定を 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_dtypedefault → FP16に強制キャストされて約28 GB消費 → OOMエラー
  • weight_dtypefp8_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 R580582.16RTX PRO 6000の安定動作認証済み。マルチGPU環境でのクリーンインストール推奨
Production Branch R595595.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-memoryRAMのページを固定してディスクスワップの遅延を防止
--disable-cuda-mallocPyTorchネイティブのメモリアロケーションを使用。Blackwell最適化パッチ適用後はこちらの方が安定する場合がある
--fast-fp16FP16演算の最適化

デプロイ方法の選択

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での代替
  • カスタムノード導入時の依存関係手動監査

セットアップ手順

ドライバと基盤環境

  1. DDUで古いドライバをクリーンアップ
  2. Production Branchドライバ(582.16 or 595.71)をクリーンインストール
  3. CUDA Toolkit 13.0をインストール
  4. 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

ワークフローの構築

  1. NVFP4量子化チェックポイント(Wan 2.2やFLUX.2など)をロード
  2. モデル出力を Patch Sage Attention KJ ノードに接続
  3. バックエンドを sageattn_qk_int8_pv_fp16_cuda に設定
  4. パッチ適用済みモデルをK-Samplerに渡す