下载一个工作流,拖进去,几个节点变红。接着点运行,又弹出一长串英文。最难受的往往是:不知道该补模型、装插件,还是改连线。
先看它停在哪一步,再看错误里点名了谁。 刚打开就找不到节点,和开始采样后内存不足,排查方向完全不同。红色只是提醒;节点的背景颜色也可以人为修改,真正要读的是缺失列表、字段名和错误报告。
打开工作流时
Missing Node Types Image Select Color
当前环境没有识别出这个节点类型。
- 先看什么
- 先查节点属于哪个项目,以及它是否已经加载。
- 下一步
- 抄下完整节点名,核对工作流说明与 Manager 的缺失节点列表;如果显示已安装,转去看启动日志。
01 / 先看阶段同样“跑不了”,可以停在三个地方
可以把一次任务理解成三个检查点:先把节点加载出来,再检查输入是否有效,最后才执行计算。刚导入就出现 Missing Node Types,优先查节点;点运行后出现 validation,往下面找具体字段;已经开始加载或采样再中断,就读执行错误。
界面有时也会提前提醒缺模型,因此阶段只是缩小范围,不能代替具体错误。看到一个泛泛的 Prompt execution failed,就打开报告继续读。能点开 Show report 时,把节点名和错误类型一起留下。错误报告的查看方法
缺失列表 / 启动日志
字段名 / 可选值 / 连线
错误报告 / 组件 / 内存
02 / 缺节点已经安装,为什么还说找不到节点
节点是程序,模型是它读取的文件。 导入 JSON 主要恢复节点、连线和参数,不能据此认为所需程序和权重都已经备齐。打开时提示找不到某个节点类型,就先复制它的完整名称。
拿一条绿幕抠图支路来说:Image Select Color 属于 WAS Node Suite,Mask Ops 属于 ComfyI2I,Cut By Mask 又来自另一个项目。画布上只是一串连线,安装时却涉及多个包。看到缺失名称后,应该核对它的归属,而不是只凭功能相近就装一个抠图插件。
在 Manager 的缺失节点入口检查候选项目,新版界面通常有 Missing 筛选,旧版可能叫 Install Missing Custom Nodes。名称和作者要与工作流说明对上。Manager 找不到,也可能是节点未登记、已改名或属于某个新版本;不能直接理解成“这个节点不存在”。 新版 Manager 安装入口面向 Registry 中的节点包;没有登记的项目需要回到发布说明核对。Manager 缺失节点入口
如果 Manager 已显示安装,但节点仍缺失,先确认它处于启用状态,再看启动日志。文件夹在 custom_nodes 里,只说明代码已经放在那里;代码可能在导入时因为依赖或版本问题中断,节点也就没有成功注册。Missing Node Types 和 IMPORT FAILED 有时说的是同一件事的前后两段。
例如日志写着 ModuleNotFoundError,先记下缺少的模块,并查这个插件自己的安装说明。导入名不一定等于安装包名,别把错误里的单词直接拼成安装命令。在系统 Python 里装好了,也不代表 ComfyUI 的环境里有。处理完后,重启对应实例并刷新界面,再确认节点是否出现。自定义节点安装说明
文件夹存在
启动没有对应异常
当前画布能识别类型
也别漏掉版本和实例:有的工作流用了较新的内置节点,有的插件装在另一份 ComfyUI 里。先核对工作流要求与当前启动的是哪一份,再决定更新哪个部分。
03 / 缺模型加载器还在,缺的可能只是它要读的文件
看下面这张界面:Checkpoint 加载器的名称、参数和输出口都在。这个例子缺少对应权重,不能靠再装一次“加载器节点”解决。要查的是模型文件有没有被当前实例找到。
常见提示是 Value not in list,后面跟着 ckpt_name。它的意思是,工作流保存的模型选择不在当前列表里。列表是空的,就查文件和路径;列表里已有别的模型,就继续核对原文件是否改名、放在子目录,或这份工作流要求的模型尚未准备。从下拉框重新选中正确文件,比把别的权重改成同名更可靠。
这里“正确”还包括模型类型和加载方式。一个用于分开加载扩散模型与编码器的工作流,不能因为文件后缀相同,就把权重随便塞进 Checkpoint 加载器。目录只是第一步,组件还要适配。
| 常见资源 | 通常从哪里查 | 同时核对 |
|---|---|---|
| Checkpoint | models/checkpoints | 是否是该加载器支持的整合权重 |
| 扩散模型 | models/diffusion_models | 是否需要分别加载编码器与 VAE |
| VAE | models/vae | 是否与当前模型家族匹配 |
| LoRA | models/loras | 是否适配所用基础模型 |
如果使用共享模型库或自定义路径,要看当前实例实际搜索的目录;自定义加载器也可能有自己的目录规定。文件放好后刷新模型列表或重启,再从下拉框确认能选中。模型路径与匹配检查
另外,Value not in list 也能发生在采样器或其他枚举选项上。只有看到后面的字段是 ckpt_name、vae_name 这类模型选项,才往模型文件方向查。
04 / 参数与连线validation 失败,先读下一行的字段名
Prompt outputs failed validation 是一条总提示,表示提交的任务没有通过运行前检查。真正能指导操作的是它下面的细项。在这一阶段就失败时,反复降低采样步数通常碰不到问题所在。任务提交与校验
Required input is missing 后面会点名缺少的输入。比如 VAE Decode 的 vae 没接,就回到这个输入口找上游;如果是像素输入 pixels 缺失,则查图像从哪里来。先对着字段看连线,不用把整个画布重新接一遍。
Return type mismatch 则表示连接的数据类型不符合要求。IMAGE、MASK、LATENT 是不同的数据,插口能放在一起看,并不表示可以互换。导入旧工作流后,节点接口有时已经变化,这时按当前节点文档核对,必要时重新放置并连接受影响的节点。
修好一个字段后,再次提交可能会出现下一项错误。这不一定是刚才白改了,而可能是检查走到了下一处。把错误按节点分开记录,依次消除。 输入校验实现
Required input is missing: vae查这个输入口,找到它应接的上游。
Return type mismatch between linked nodes查两端的数据类型和当前节点接口。
05 / 运行时报错已经开始执行,就看计算在哪一步停下
通过前面的检查,只说明任务具备提交条件,并不保证计算一定完成。模型开始加载、进度条已经移动,随后失败,就把注意力转到错误报告中的节点、异常类型和上游输入。
out of memory:先减少负载做一次对照
把 batch 降到1,或降低分辨率;视频任务还可以在模型允许范围内减少帧数或时长。一次只改一项,再看是否通过。Mac 的 MPS 和 NVIDIA 的 CUDA 是不同后端,别把另一种设备的驱动或安装命令套过来。仅减少采样步数通常不是降低峰值内存的首选。
shape / channels:先核对组件组合
尺寸或通道报错常见于组件不匹配,例如编码器、VAE、ControlNet 与基础模型不对应。但自定义节点改变形状也可能导致同类提示。先看在哪个节点失败,再把这一段与该模型的官方示例对照,不能仅凭“尺寸”两个字就只改画布宽高。
读取权重失败:检查下载到的文件
遇到反序列化或文件头错误,检查文件大小、下载是否完成,以及模型仓库提供的校验信息。坏文件和选错加载器是不同问题:前者要确认文件完整性,后者要改加载方式。
红框标记的节点通常是错误被发现的位置,原因也可能来自上游。比如解码时发现潜空间通道不符,应该追查送来的数据和 VAE 是否匹配,而不是先认定 VAE Decode 程序坏了。
06 / 缩小范围用一个小流程,判断问题跟谁走
排查前先另存工作流副本。用对应模型的官方模板、已经准备好的权重和最少输入做一轮对照。这个基线要尽量少依赖自定义节点,才能帮助区分主程序、模型和附加处理。
小流程能输出、复杂工作流失败,就逐段恢复额外节点,观察错误从哪一段开始出现。两边都失败,则比较是否是同一条异常,再查共同依赖的模型、设备或环境。“默认流程也失败”本身,还不能直接证明是 ComfyUI 的程序缺陷。
怀疑插件冲突时,可以在测试环境禁用自定义节点,再逐组恢复。但此时要用能独立运行的内置节点流程做对照;原工作流本来就依赖那些插件,禁用后当然还会缺节点,不能拿这个结果判断冲突是否消失。官方隔离排查方法
遇到更新后才出现的问题,留下原工作流和版本信息,先核对出错节点的变更,再做有针对性的调整。同时更新主程序、所有插件和依赖,会让这次排查很难说清是哪一个变化起了作用。
需要请别人帮查时,先记下这五项
写清具体错误和本轮改动,可以直接下载成一份 TXT 留存。
每轮记下一个改动,以及错误是否变化。
07 / 总结最后留下一个明确的检查位置
找不到节点,查来源与加载日志;模型选项无效,查字段、文件和路径;输入校验失败,查对应参数与连线;执行中断,查失败节点的组件、数据和内存。把报错出现的阶段与具体文字放在一起看,才能决定下一步操作。
每轮改动后,记录错误是否变化、哪一步已经通过。即使还没完全跑通,也应该能把“一片红”缩小为一个明确的问题,例如“Mask Ops 导入失败”或“这个加载器找不到指定权重”。接下来自己继续查,或请别人协助,都会有清楚的起点。