一、排查的核心思路
ComfyUI 报错信息往往分散在:
黄金法则:
1. 先读终端最后一屏报错
2. 再定位第一个变红的节点
3. 用最小工作流隔离问题
4. 最后才怀疑模型/硬件/环境
二、排查流程图(总纲)
Queue 失败 / 结果异常
│
▼
┌───────────────────┐
│ 画布有红节点? │
└─────────┬─────────┘
是 │ 否
▼
检查该节点: ┌──────────────────┐
· 缺连线? │ 读终端报错关键字 │
· 缺模型文件? └────────┬─────────┘
· 类型接错? │
│ ▼
│ OOM / CUDA / ImportError / FileNotFound
│ │
└──────────┬──────────┘
▼
按分类处理(见下文)
│
▼
仍失败 → 最小 t2i 工作流对比
│
▼
仍失败 → 禁用 Custom Nodes / 回滚版本
三、按现象分类
3.1 节点变红 / 无法 Queue
|
可能原因 |
检查方法 |
处理 |
|---|---|---|
|
必填输入未连线 |
看节点左侧空插槽 |
补连线 |
|
类型不匹配 |
对比插槽颜色/类型名 |
加转换节点(如 VAE Encode) |
|
模型下拉为空 |
|
下载并刷新 |
|
自定义节点未安装 |
节点显示 Unknown 或 Missing |
Manager 安装 |
|
widget 非法值 |
宽高为 0、负数 |
改合法参数 |
3.2 终端:FileNotFoundError / 模型找不到
例:FileNotFoundError: ... checkpoints/xxx.safetensors
处理:
-
确认文件是否在正确子目录(checkpoints / loras / controlnet / vae);
-
文件名是否与节点选择 完全一致(含大小写);
-
下载未完成或 0 字节 → 重新下载;
-
工作流来自他人 → 改选你本地有的模型。
3.3 终端:ImportError / ModuleNotFoundError
含义:某个 Custom Node 的 Python 依赖缺失。
处理:
-
Manager → 对该节点 Install dependencies;
-
手动
pip install 包名(在 ComfyUI 使用的 Python 环境中); -
仍失败 → 更新或禁用该节点(3-5)。
3.4 终端:CUDA out of memory(OOM)
含义:显存不足。
处理(由易到难):
|
手段 |
说明 |
|---|---|
|
降低分辨率 |
1024→768→512 |
|
降 batch_size |
保持为 1 |
|
关闭其他占 GPU 程序 |
浏览器硬解、游戏等 |
|
使用 FP8/GGUF 量化模型 |
第 5 章 |
|
|
查官方文档 |
|
换更大显存显卡 |
硬件上限 |
3.5 Queue 成功但图片全黑 / 全噪点
|
可能原因 |
处理 |
|---|---|
|
未接 VAE Decode |
接上 Checkpoint 的 VAE |
|
VAE 与模型不匹配 |
使用模型配套 VAE 或官方推荐 VAE |
|
denoise / 采样参数极端 |
恢复 steps=20–30, cfg=5–8 |
|
模型文件损坏 |
重新下载 Checkpoint |
3.6 生成结果与预期完全无关
不一定是报错,但属「逻辑问题」:
-
正负 Prompt 接反;
-
用了错误 Checkpoint(SD1.5 工作流加载 SDXL 模型);
-
ControlNet 权重为 0 或接错图;
-
seed 固定但 Prompt 空。
处理:对照 3-1 最小连线逐项核对。
3.7 工作流 JSON 导入后乱线 / 缺节点
|
原因 |
处理 |
|---|---|
|
缺 Custom Nodes |
Manager → Install Missing |
|
ComfyUI 版本过旧 |
升级本体(3-5) |
|
JSON 损坏 |
重新下载 |
四、三大排查工具
4.1 终端日志
怎么看:
-
从 最后一次 Queue 对应的堆栈往上读;
-
找 第一个 你看得懂的关键字:
Error、Exception、not found、CUDA。
技巧:复制完整报错到搜索引擎或 GitHub Issues,往往已有解决方案。
4.2 ComfyUI Manager
|
功能 |
排查用途 |
|---|---|
|
Install Missing Custom Nodes |
补全工作流依赖 |
|
Install dependencies |
补 Python 包 |
|
Disable custom nodes |
二分法定位冲突插件 |
|
Update |
修复已知 bug(谨慎) |
4.3 最小工作流隔离法
-
New 空白画布;
-
只搭 3-1 的 最小文生图(无插件);
-
若最小能跑 → 问题在 复杂节点或插件;
-
若最小不能跑 → 问题在 ComfyUI 本体 / 模型 / 环境。
逐步 加回 原工作流的模块(先加 LoRA,再加 ControlNet…),加到哪步崩就是哪步的问题。
五、自定义节点冲突排查(二分法)
启动失败或任意工作流都报错时:
-
退出 ComfyUI;
-
将
custom_nodes下文件夹 全部移出 到临时目录; -
只留 ComfyUI-Manager(可选)启动测试;
-
若正常, 每次移回 1 个插件文件夹,重启测试,直到找到肇事插件。
六、网络与权限类问题(易忽略)
|
场景 |
现象 |
处理 |
|---|---|---|
|
首次用 InsightFace / 自动下载模型 |
超时失败 |
手动下载放到指定目录;代理 |
|
PS 联动插件连不上 |
PS not connected |
防火墙、端口、127.0.0.1:8188 |
|
Manager git clone 失败 |
安装节点失败 |
网络、Git 配置 |
|
中文路径 |
部分节点读写失败 |
尽量英文路径安装 ComfyUI |
七、报错信息速查表
|
关键字 |
常见含义 |
|---|---|
|
|
缺连线 |
|
|
类型接错 |
|
|
显存不足 |
|
|
模型路径错误 |
|
|
缺 Python 依赖或节点损坏 |
|
|
节点版本与 ComfyUI 不兼容 |
|
|
widget 参数不合法 |
八、预防胜于排查
|
习惯 |
作用 |
|---|---|
|
工作流 Note 写依赖(3-2) |
他人/未来的你少踩坑 |
|
更新前备份(3-5) |
可回滚 |
|
一次只装一个插件(3-4) |
易定位冲突 |
|
固定「测试用」最小 t2i |
快速验证环境 |
|
终端窗口常开 |
报错不被忽略 |
九、何时该求助社区
以下情况可带 完整信息 提问(GitHub Issue / Discord / 论坛):
-
最小 t2i 仍失败 + 终端完整报错;
-
ComfyUI 版本、显卡型号、显存、系统;
-
已安装的 Custom Nodes 列表;
-
工作流 JSON(可脱敏);
-
已尝试的步骤。
少写「不能用」,多写「哪一步、什么报错、什么环境」。