ComfyUI 消除 “cu130” 警告并强制开启 comfy-kitchen 全后端加速实战记录[backend triton/backend eager/backend cuda]

Comfy-Org / ComfyUI 官方仓库

Comfy-Org / comfy-kitchen 官方仓库

突破 ComfyUI 环境枷锁:RTX 3090 强行开启 comfy-kitchen 官方全后端加速库实战

一、问题现象

在 Windows 环境下运行最新版的 ComfyUI 源代码部署版(尤其是使用 RTX 30/40 系列显卡、PyTorch 为 CUDA 12.x 版本时),控制台启动阶段几乎必定会遇到以下黄色警告:

[WARNING] WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations.
[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': True, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8']}
[INFO] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
[INFO] Found comfy_kitchen backend cuda: {'available': True, 'disabled': True, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}

在这里插入图片描述

关键片段摘抄:

WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations.
[INFO] Found comfy_kitchen backend cuda: {'available': True, 'disabled': True, 'unavailable_reason': None, ...}
[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': True, 'unavailable_reason': None, ...}
[INFO] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, ...}

在这里插入图片描述
该片段日志翻译理解:

### 简体中文翻译(保留日志标签、技术术语不翻译)
[警告] 提示:如需启用优化版CUDA运算,需安装CUDA130及以上版本的PyTorch。
[信息] 检测到comfy_kitchen后端triton:{'可用': True, '已禁用': True, '不可用原因': None, '支持功能': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8']}
[信息] 检测到comfy_kitchen后端eager:{'可用': True, '已禁用': False, '不可用原因': None, '支持功能': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
[信息] 检测到comfy_kitchen后端cuda:{'可用': True, '已禁用': True, '不可用原因': None, '支持功能': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}

### 补充说明
1. 函数名(`apply_rope`/`dequantize`等)、量化算法标识(FP8/NVFP4/AWQ)为AI底层技术专有命名,行业惯例保留英文原文;
2. `available=可用``disabled=已禁用``capabilities=支持功能`为日志字段标准化汉化。

三个后端中,CUDATriton 明明检测到可用(available: True),却被强制禁用disabled: True),只有最基础的 eager 后端处于开启状态。这意味着 comfy-kitchen 官方加速库(负责 FP8/FP4 量化、算子融合等优化)完全没有发挥作用,推理速度被锁死在 PyTorch 原生实现上。

环境信息

项目 版本/规格
GPU NVIDIA GeForce RTX 3090 (24 GB VRAM)
显存策略 NORMAL_VRAM,启用异步权重卸载
PyTorch 2.7.1+cu126
xformers 0.0.31.post1
Python 3.12.11 (EPGF 架构)
ComfyUI 0.23.0
前端包 comfyui-frontend-package 1.44.19
相关算子加速库 comfy-kitchen 0.2.10

二、原因分析

comfy-kitchen 是 Comfy-Org 官方推出的高性能算子库,用于优化 FP8、FP4 等量化格式的推理性能。其源码内部存在两道"安检":

  1. 版本锁quant_ops.py 中硬编码了 cuda_version < (13,) 的检查,只要 PyTorch 自带的 CUDA 版本低于 13.0(如 cu126cu128),就会打印警告并跳过优化初始化。
  2. 硬件/注册锁comfy_kitchen 包内的 registry.pybackends/cuda/__init__.py 存在算力门槛(如 min_compute_capability=(10, 0))与 disable() 逻辑,一旦检测到非最新架构或环境变量不匹配,就会强制将后端标记为 disabled

对于 RTX 3090(Ampere,算力 8.6)或 RTX 4090(Ada,算力 8.9)用户来说,硬件本身完全具备运行这些算子的能力,只是被源码层面的版本与算力检查拦截了。

三、解决方案:两步解封

第一步:修改 quant_ops.py,消除 cu130 警告

定位到 ComfyUI 核心文件:

H:\PythonProjects3\Win_ComfyUI\comfy\quant_ops.py

找到第 22 行附近的 CUDA 版本检查逻辑:

if cuda_version < (13,):
    # 触发警告并跳过优化

修改方式:将版本阈值调整为匹配当前实际环境,或彻底绕过该检查。例如:

# 方案 A:适配 CUDA 12.x 环境(推荐)
if cuda_version < (12,):

# 方案 B:彻底关闭该警告(暴力但有效)
if cuda_version < (0,):

保存后,重新启动 ComfyUI,黄色警告(WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations.)即会消失。
在这里插入图片描述

第二步:修改 comfy-kitchen 源码,强制启用 CUDA / Triton 后端

本步骤核心思路参考《突破 ComfyUI 环境枷锁:RTX 3090 强行开启 comfy-kitchen 官方全后端加速库实战》,通过"脑叶手术"绕过源码自禁逻辑。

需要修改 comfy-kitchen 包内的两个文件(位于虚拟环境的 site-packages 中):

1. 修改 registry.py —— 让 disable() 失效

找到 comfy_kitchen/registry.py,定位 BackendRegistry 类的 disable()is_available() 方法:

def disable(self, backend_name): 
    self._disabled.add(backend_name)

def is_available(self, backend_name):
    return backend_name in self._backends and backend_name not in self._disabled

修改后

def disable(self, backend_name): 
    pass  # 拦截禁用指令,直接空实现

def is_available(self, backend_name):
    return backend_name in self._backends  # 不再检查 _disabled 集合

同时在 list_backends() 中,将所有后端的 "disabled" 字段强制返回 False,确保日志打印状态正确。

2. 修改 backends/cuda/__init__.py —— 降低算力门槛并注入系统 DLL

找到 comfy_kitchen/backends/cuda/__init__.py,做两处改动:

  • 算力放行:将 min_compute_capability=(10, 0)(Blackwell 专属门槛)改为 (8, 6),让 RTX 30/40 系列通过检查。
  • DLL 注入(Windows 必需):在文件开头加入系统级 CUDA 13.x 的 bin 目录路径,确保跨版本调用时能找到驱动 DLL。
import os, sys
if sys.platform == "win32":
    os.add_dll_directory(r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\bin")

注:若系统未安装 CUDA 13.1 Toolkit,可跳过 DLL 注入,仅修改算力门槛与注册逻辑即可;若后续出现 DLL 缺失报错,再按需补充路径。

以上修改,可以使用我们准备的自动化补丁,只需修改补丁内的路径即可。

自动化补丁脚本 (apply_patch.py)

补丁详细脚本内容详见:
突破 ComfyUI 环境枷锁:RTX 3090 强行开启 comfy-kitchen 官方全后端加速库实战》中——第三步:自动化一键补丁

使用方式:放在你的 ComfyUI 目录下运行,它就会自动定位虚拟环境、备份原文件并应用我们之前的修改。

python apply_patch.py

在这里插入图片描述

3. (可选)编译专属 Wheel 以获得最佳兼容性

如果你希望获得完全匹配当前环境的二进制扩展(_C.abi3.pyd),可参考原文方法,使用系统级 CUDA 13.1 + VS2022 命令行编译专属 Wheel:

:: 在激活的虚拟环境中执行
git clone https://github.com/Comfy-Org/comfy-kitchen.git
cd comfy-kitchen
set TORCH_CUDA_ARCH_LIST=8.6
set FORCE_CUDA=1
set CMAKE_GENERATOR=Visual Studio 17 2022
pip wheel . --wheel-dir=./dist --no-deps --no-build-isolation
pip install ./dist/comfy_kitchen-*.whl --force-reinstall

四、效果验证

完成上述修改后,重启 ComfyUI,观察控制台日志。理想状态应如下所示:

[INFO] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8']}
[INFO] Found comfy_kitchen backend cuda: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'apply_rope_split_half', 'apply_rope_split_half1', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'gemv_awq_w4a16', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8']}
[INFO] Checkpoint files will always be loaded safely.

关键指标

  • WARNING: You need pytorch with cu130... 已消失
  • cudatriton 后端的 disabled 字段全部变为 False
  • 所有 capabilities(FP8/NVFP4/SVDQuant 等)均已列出,说明算子注册成功
    在这里插入图片描述

五、注意事项与局限性

  1. 硬件限制:RTX 3090 等 Ampere 显卡不支持 FP4(NVFP4) 硬件加速,因此涉及 FP4 的算子会回退到软件模拟。建议在 ComfyUI 工作流中使用 BF16FP8 精度,此时可真正享受到官方优化带来的推理提速。
  2. 更新覆盖:ComfyUI 本体更新或重装 comfy-kitchen 后,quant_ops.pyregistry.py 的修改会被覆盖。建议将修改内容保存为 .patch 补丁脚本或备份文件,以便一键恢复。
  3. 稳定性:跨版本强制启用 CUDA 后端属于"非官方支持"操作,若遇到 Kernel 报错或 CUDA Launch Timeout,可尝试仅保留 eager + triton 后端,将 cuda 后端重新禁用,以排除兼容性故障。

总结:通过修改 quant_ops.py 绕过版本警告,再配合 comfy-kitchen 内部注册逻辑与算力门槛的"解锁",即可在 CUDA 12.x + RTX 30/40 系的环境下,强行启用官方为新一代硬件设计的全后端加速库,获得免费的推理性能提升。

Logo

更多推荐