ComfyUI 报错:AttributeError: ‘NoneType’ object has no attribute ‘Params’ 终极解决指南

17次阅读
没有评论

近期使用 ComfyUI 0.27.1 版本加载量化 CLIP、GGUF 多模态模型时,很多人会遇到一个经典报错:AttributeError: ‘NoneType’ object has no attribute ‘Params’,报错定位在 comfy/ops.py 量化模块,看似是代码空值异常,实则是版本兼容、参数冲突、模型混用导致的综合问题。

本文结合完整报错日志、llama.cpp 官方已知问题、插件版本适配规则,整理出根因分析+从零到一完整修复方案+永久避坑技巧,一次性彻底解决该问题。

一、报错完整现象

1. 核心报错信息

AttributeError: 'NoneType' object has no attribute 'Params'
File "ComfyUI/comfy/ops.py", line 1108, in _load_quantized_module
params = layout_cls.Params(**scales, orig_dtype=compute_dtype, orig_shape=module._orig_shape)

2. 触发场景特征

  • ComfyUI 版本:0.27.1(新版核心)
  • 运行环境:Windows 独立便携包、RTX4090 CUDA 加速
  • 启动参数开启:--force-fp16 强制半精度
  • 加载模型:Qwen 系列 VLM 量化模型(GGUF 格式 mmproj 编码器)
  • 插件状态:comfy-kitchen、comfy-aimdo 等核心插件版本过低
  • 节点报错位置:CLIPLoader 节点(Node9)加载文本编码器失败

1. 核心元凶:comfy-kitchen 版本严重滞后

ComfyUI 0.27.1 新版重构了量化权重加载逻辑,依赖 comfy-kitchen 0.2.16+ 提供的量化布局解析类。

而默认安装的 0.2.10 旧版本,缺失 TensorWiseINT8Layout 等关键类,导致量化布局变量 layout_cls = None,最终调用 .Params 属性时报空指针错误。

日志明确预警:comfy-kitchen version: 0.2.10 is lower than the recommended version 0.2.16

2. 参数冲突:–force-fp16 与量化模型不兼容

全局强制 FP16 精度参数,会破坏 GGUF 量化 CLIP(mmproj)的混合精度加载逻辑,导致量化层参数解析失效,直接触发空值异常。

3. 高频人为失误:模型节点混用

原生 CLIPLoader 不支持 GGUF 格式编码器

很多用户将 Qwen-VL 的 GGUF mmproj 量化文件,直接放入官方原生 CLIP 加载节点,新版量化校验机制会直接报错,旧版本则会隐性异常、推理精度崩坏。

同时匹配 llama.cpp 官方已知问题:QwenVL 系列模型需要专属图像像素预处理逻辑,普通加载方式会导致权重加载异常。

三、分步修复方案(从快到慢,优先最简方案)

按以下顺序操作,99% 场景可彻底解决问题,无需重装环境。

方案一:临时移除冲突启动参数(10秒快速验证)

找到 ComfyUI 启动脚本,删除启动参数中的:--force-fp16

重启 ComfyUI 测试运行,该参数是绝大多数量化模型加载报错的直接诱因。

方案二:升级核心依赖 comfy-kitchen(根本修复,必做)

这是解决 layout_cls None 报错的核心步骤,直接升级适配新版 ComfyUI 的量化依赖:

# 进入便携包内置 Python 环境执行
C:\Work\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\python_embeded\python.exe -m pip install -U comfy-kitchen

升级后版本 ≥0.2.16,重启 ComfyUI,修复量化布局类缺失问题。

方案三:修正模型节点混用错误(关键避坑)

  • ❌ 错误用法:原生 CLIPLoader 加载 GGUF 格式 mmproj/CLIP 文件
  • ✅ 正确用法:GGUF 量化模型必须使用 ComfyUI-GGUF 专属加载节点

替换工作流中 Node9 节点,删除原生 CLIPLoader,更换为 GGUF 专用 CLIP 加载节点,重新选择模型文件。

方案四:全局更新 ComfyUI 及依赖(兜底修复)

修复插件版本碎片化问题,统一环境依赖:

  1. 运行内置更新脚本:update\update_comfyui.bat
  2. 更新全部依赖库:
python.exe -s -m pip install -r ComfyUI/requirements.txt

方案五:禁用动态量化(终极兜底)

若以上方案仍报错,在启动参数中添加禁用动态量化参数,规避算子兼容问题:

新增启动参数:--disable-dynamic-quant

四、日志无关报错说明(无需处理)

很多用户会被日志冗余警告干扰,以下问题不影响本次报错,无需修复

  • ModuleNotFoundError: No module named 'comfy_angle':GLSL 扩展插件依赖缺失,与模型加载无关
  • WinError 121 信号灯超时时间已到:内网环境 GitHub 网络超时,仅影响插件市场,不影响推理
  • llama-cpp token slot 日志:VLM 图像推理正常输出日志,非报错

五、永久避坑总结

  1. 版本配对:ComfyUI 0.27+ 必须搭配 comfy-kitchen 0.2.16+,禁止旧版插件运行新版核心
  2. 模型分区:GGUF 量化模型一律用 GGUF 专属节点,原生节点不兼容量化权重
  3. 参数克制:加载 VLM、量化模型时,尽量关闭 --force-fp16 强制精度参数
  4. 官方适配:QwenVL 系列视觉模型需遵循官方图像预处理规则,避免尺寸、token 参数异常

六、快速修复复盘

该报错的本质就是:新版UI + 旧版量化插件 + 错误节点混用 + 精度参数冲突 四重问题叠加。优先升级 comfy-kitchen、移除 force-fp16、更换 GGUF 节点,即可 100% 解决。

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码