ComfyUI 模型类型、目录与加载方式科普
把一个safetensors文件放进ComfyUI,节点下拉框里却找不到它——别急着怀疑模型坏了,问题多半出在类型、目录或加载节点没有对上。最实用的判断方法,是先分清它属于checkpoint、LoRA、ControlNet还是独立VAE,再核对存放目录和加载节点输出。文件名、文件夹名和Load节点三者一致,模型才真正进入工作流。
这篇文章的适用范围是已经能启动ComfyUI,需要在Windows、macOS或Linux上整理本地模型并完成首次加载的读者。这里讨论的是ComfyUI原生的常见模型;如果依赖社区自定义节点的GGUF、量化权重或新架构,它们可能采用不同的目录和加载器,应以对应项目的当前说明为准。
先把“模型”分成基础权重和辅助权重
ComfyUI里的模型是工作流实际调用的权重文件,应用本体默认不会附带这些大文件。Checkpoint通常承担基础生成能力;LoRA、ControlNet、独立VAE和放大模型则在特定位置补充风格、结构控制、图像编解码或分辨率处理。它们不是把文件都塞进同一个目录后自动生效,而是分别由对应节点读取。
下图是ComfyUI官方文档展示的辅助模型工作流。左上角checkpoint提供基础MODEL、CLIP和VAE,左下角ControlNet通过独立节点加载,再进入Apply ControlNet。观察连线就能看出:辅助模型要接到基础链路上,不能替代基础checkpoint。

Checkpoint:先建立能运行的基础模型链路
Checkpoint是最常见的起点,默认放在ComfyUI/models/checkpoints。官方的Load Checkpoint节点会从该目录和额外模型路径中读取文件,并拆出三类输出:
MODEL
CLIP
VAE
下图中ckpt_name已显示实际文件,右侧同时出现MODEL、CLIP、VAE。这张图只证明checkpoint的加载结果和三个输出,不代表该文件一定兼容任意工作流。

LoRA:在基础 MODEL 和 CLIP 上叠加变化
LoRA是体积较小的适配权重,常用于风格、角色或特定概念,默认目录为ComfyUI/models/loras。Load LoRA不能悬空使用:左侧的
model
clip
strength_model和strength_clip分别控制它对模型权重与文本编码的影响。
下图的lora_name仍显示undefined,正好说明成功标志是什么:真实使用时这里必须变成models/loras中的文件名,并且左右两组MODEL、CLIP端口都应连入工作流。

ControlNet:用边缘、深度或姿态约束构图
ControlNet提供额外条件控制,常见输入包括边缘图、深度图、姿态关键点和涂鸦图,默认放在ComfyUI/models/controlnet。Load ControlNet Model只负责读入权重并输出
CONTROL_NET
官方节点图中,control_net_name显示具体权重,右侧只有CONTROL_NET输出。它与checkpoint的三输出结构不同,选节点时不要只看文件扩展名。

VAE:负责潜空间和像素图像之间的转换
不少checkpoint已经包含可用VAE,Load Checkpoint会直接输出它;模型作者要求单独VAE时,再把文件放进ComfyUI/models/vae并使用Load VAE。VAE Decode接收采样器产生的
samples
IMAGE
下图只展示解码环节:红色
vae
samples

按五步让模型文件真正出现在节点里
- 模型下载页的文件说明、工作流模板提示或模型项目说明。
入口位置:
先确认文件类型和适用架构,再把checkpoint、LoRA、ControlNet、VAE分别放进主要动作:
models/checkpoints、models/loras、models/controlnet、models/vae。文件所在子目录与准备添加的加载节点类型一致。成功标志:
只知道扩展名时不要猜;多个类型都常用失败处理:
safetensors,应回到模型说明或工作流缺失提示核对。 - ComfyUI画布和当前模型加载节点。
入口位置:
文件复制完成后先按主要动作:
刷新节点定义;列表仍不更新时刷新浏览器界面或重启ComfyUI。r
对应Load节点的文件下拉框出现新文件名。成功标志:
重启后仍找不到时,确认正在运行的ComfyUI实例与放入文件的安装目录是同一份,避免把文件放到旧版本或另一份便携目录。失败处理:
- 画布空白处的节点搜索。
入口位置:
按模型类型添加Load Checkpoint、Load LoRA、Load ControlNet Model或Load VAE,并在下拉框选中目标文件。主要动作:
节点显示具体文件名,不再是成功标志:
null、undefined或空列表。文件出现但选择后报错时,先检查文件是否下载完整,再核对模型架构与当前工作流是否匹配;不是所有权重都由原生节点直接支持。失败处理:
- 加载节点左右两侧的彩色端口。
入口位置:
按数据类型把MODEL、CLIP、VAE或CONTROL_NET接到下游节点,LoRA要接在基础MODEL与CLIP链路中,ControlNet要继续进入应用节点。主要动作:
端口颜色和数据类型匹配,执行时没有缺少模型输入的红色提示。成功标志:
连不上或运行立即停止时,从报错节点向上游逐条检查;同名模型文件不代表输出类型相同。失败处理:
- 工作流顶部的
入口位置:
或Run
按钮。Queue
用最小工作流执行一次,观察模型加载阶段、采样阶段和VAE解码阶段。主要动作:
节点依次运行,VAE Decode输出IMAGE,末端预览或Sa ve Image出现结果。成功标志:
文件能选择但加载失败时,记录首个报错节点与错误文本,再排查架构、显存、缺少自定义节点或权重损坏,不要反复移动文件夹掩盖真正原因。失败处理:
多套 ComfyUI 共用模型时配置额外路径
模型占用空间较大,多份ComfyUI重复保存同一批权重并不划算。便携版或手动安装版可在ComfyUI根目录复制extra_model_paths.yaml.example并改名为extra_model_paths.yaml,用base_path配合checkpoints、loras、vae、controlnet等键声明共享目录。保存后要重启ComfyUI。
ComfyUI Desktop已提供菜单入口。下图从左上角菜单进入
Help
Open Folder
Open extra_model_paths.yaml

- Desktop的
入口位置:
菜单,或便携版、手动安装版的ComfyUI根目录。Help
打开额外模型路径配置,备份原文件后填写共享模型根目录和各类型子目录。主要动作:
保存并重启后,对应Load节点能列出共享目录中的模型,原有默认目录仍可使用。成功标志:
全部模型同时消失时立即恢复备份,重点检查缩进、路径拼写和失败处理:
base_path;只缺一类模型时检查该类型键名与子目录。
用六个结果确认分类与加载没有错位
- 四类常用文件已分别进入checkpoints、loras、controlnet、vae目录,或被额外路径明确映射。
- Checkpoint节点显示文件名,并输出MODEL、CLIP、VAE。
- LoRA节点接收基础MODEL与CLIP,文件名和两项强度都有有效值。
- ControlNet节点输出CONTROL_NET,后面还有应用节点和参考图条件。
- 独立VAE只在确有需要时加载,VAE Decode同时接收samples与vae。
- 刷新或重启后仍无法识别的文件,已转向检查架构支持、文件完整性和自定义节点依赖,而不是继续猜目录。
整理模型时,把“类型、目录、加载节点、输出端口”记成一组,比背文件名更可靠。新模型支持会随ComfyUI和社区节点变化,遇到模板提示缺少模型时,先确认它要求的是哪种加载器,再决定放置位置;这样既能少复制大文件,也能把大部分“模型不见了”的问题定位到具体一层。