ComfyUIをAPIで動かしてWan2.2+SVI2.0PROをNVFP4で動かす話

目次
ClaudeCodeにまとめさせた記事になります。一応確認していますが、全く分からないことを書いている部分もあるので間違っていたらすいません。
NVFP4 実行 超簡潔版(5分理解)
544×960 16fps 81フレーム×5セグメント
FP8の時点で高速化が完璧か?と言う話があるが、一応こんな感じ。画質が落ちることを考えると意味があるのかと言う話もあるが、速度は速くなる。
┌──────────┬───────┬───────┬───────────────┐
│ フェーズ │ FP8 │ NVFP4 │ 備考 │
├──────────┼───────┼───────┼───────────────┤
│ 前処理 │ ~1秒 │ ~1秒 │ 顔クロップ │
├──────────┼───────┼───────┼───────────────┤
│ LLM生成 │ ~45秒 │ ~45秒 │ 2段階処理 │
├──────────┼───────┼───────┼───────────────┤
│ Phase 1 │ ~30分 │ ~25分 │ NVFP4で高速化 │
├──────────┼───────┼───────┼───────────────┤
│ Phase 2 │ ~3分 │ ~3分 │ VAEデコード │
├──────────┼───────┼───────┼───────────────┤
│ 後処理 │ ~5分 │ ~5分 │ │
├──────────┼───────┼───────┼───────────────┤
│ 合計 │ ~40分 │ ~33分 │ 約17%短縮 │
└──────────┴───────┴───────┴───────────────┘
① まず前提
必須環境
GPU: RTX 50シリーズ(Blackwell世代)
CUDA: 13.0以上
PyTorch: cu130ビルド版
これが揃っていないと 物理的に動きません。
② 一番重要な設定(これがないとほぼ確実に失敗)
起動オプション
python main.py --disable-cuda-malloc
なぜ?
NVFP4は巨大モデルを扱うため
cudaMallocAsyncだとVRAM断片化でOOMになります
典型エラー:
Tried to allocate 1.10 GiB.
GPU has 15 GiB reserved but only 10 MiB free.
→ メモリはあるのに連続領域が取れない状態
--disable-cuda-malloc は 必須
③ 必須ソース修正(3箇所)
NVFP4はそのままではComfyUIと衝突します。
1. dtype変換スキップ(LoRA対策)
comfy/ops.py
if not isinstance(self.weight, QuantizedTensor):
weight = weight.to(self.weight.dtype)
理由:
QuantizedTensor(NVFP4)にdtype変換をかけると壊れる
2. triton無効化(最重要)
comfy/quant_ops.py
ck.registry.disable("triton")
理由:
NVFP4専用演算 scaled_mm_nvfp4 は
CUDAバックエンドにしか存在しない
Tritonでは未実装
これを忘れると:
scaled_mm_nvfp4 not found
が出ます。
3. version_counterエラー回避
comfy/utils.py
with torch.inference_mode(False):
理由:
QuantizedTensor → nn.Parameter変換時の内部エラー回避
④ ワークフロー設定
UNETLoader
FP8の場合
"weight_dtype": "fp8_e4m3fn"
NVFP4の場合
"weight_dtype": "default"
ここを間違えると動きません。
⑤ 動作確認方法
ログ確認:
grep -i "nvfp4\|scaled_mm\|native" log.txt
正常時
Found comfy_kitchen backend cuda: True
Memory allocator: native
異常時
scaled_mm_nvfp4 not found
CUDA out of memory
FP8との違い(超要点)
項目 FP8 NVFP4
サイズ 13.3GB 9.9GB
ソース 修正不要 必須
triton 使用可 使用不可
Blackwell必須 いいえ はい
--disable-cuda-malloc 推奨 必須
まとめ(これだけ守れば動く)
✔ RTX50シリーズ
✔ CUDA13
✔ --disable-cuda-malloc
✔ triton無効化
✔ weight_dtype = default
これでNVFP4は動きます。
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。