ComfyUI 报 ControlNet model not found 通常是因为模型文件未放入正确的 models/controlnet 目录或 extra_model_paths.yaml 配置路径无效。优先检查默认文件夹是否存在对应 .safetensors 文件,再确认配置文件是否重启生效。
先说结论:路径配置错误或模型文件缺失是导致 ControlNet 模型加载失败的主要原因。
- 先确认:模型文件是否位于 ComfyUI/models/controlnet 目录。
- 先处理:检查 extra_model_paths.yaml 中的 controlnet 路径配置是否缩进正确。
- 再验证:重启 ComfyUI 后在控制台日志查看模型加载列表。
快速处理思路
将下载的 ControlNet 模型文件直接移动到 ComfyUI 根目录下的 models/controlnet 文件夹。如果使用了多路径配置,确保 extra_model_paths.yaml 文件中 controlnet 字段指向的绝对路径正确且包含该文件。不要依赖相对路径,建议使用绝对路径减少歧义。
为什么会这样
ComfyUI 启动时扫描特定目录构建模型列表,路径不对则索引不到。节点加载器仅在预定义的搜索路径中查找文件,不会递归扫描整个硬盘。如果模型放在未注册的文件夹,加载器无法识别文件位置,从而报 model not found。
分步处理
1. 检查默认路径:打开 ComfyUI 安装目录,进入 models/controlnet 文件夹,确认目标 .safetensors 文件是否存在。
2. 检查配置文件:打开 ComfyUI 根目录下的 extra_model_paths.yaml 文件,查找 controlnet 字段,确认路径指向正确且无拼写错误。
3. 检查文件完整性:确认模型文件未损坏,文件大小与下载源一致,避免下载中断导致文件不可读。
4. 重启服务:修改配置文件或移动文件后,必须完全关闭并重新启动 ComfyUI 进程以刷新模型索引。
怎么验证是否生效
启动 ComfyUI 后观察命令行控制台日志,搜索 controlnet 关键词。如果配置生效,日志会显示加载的模型名称列表。在工作流中加载 ControlNet Loader 节点,下拉菜单中应能看到新放入的模型名称。如果日志报错或菜单为空,说明路径仍未被识别。
常见坑
1. 符号链接权限:在 Linux 或 Mac 上使用软链接共享模型时,确保 ComfyUI 进程有权限读取链接目标文件夹。
2. 模型版本混用:SD1.5 的 ControlNet 模型不能用于 SDXL 底模,反之亦然,即使路径正确也会因结构不匹配报错。
3. 配置文件缩进:extra_model_paths.yaml 是 YAML 格式,缩进错误会导致配置不生效,建议使用在线 YAML 校验工具检查格式。
常见问题
可以和 Stable Diffusion WebUI 共用模型吗
可以,需要配置 extra_model_paths.yaml。在配置文件中添加 WebUI 的模型路径到 controlnet 列表,确保路径绝对地址正确。
修改配置后需要重启 ComfyUI 吗
需要,修改配置后必须重启。ComfyUI 仅在启动阶段读取模型路径配置,运行中修改不会自动刷新索引。
模型文件放在子文件夹可以吗
不建议,模型文件应直接放在 controlnet 目录下。部分加载器不支持递归扫描子文件夹,放在子目录可能导致无法识别。