导读:本期聚焦于Ada创作的《ComfyUI 如何加载模型?Checkpoint Loader (Simple) 与 Diffusers 格式支持详解》,敬请观看详情。ComfyUI 加载模型时到底该选哪个节点?为什么有的模型文件是单个 ckpt 大文件,有的却是一堆分散的文件夹?这篇文章围绕 Checkpoint Loader (Simple) 节点的工作机制展开,讲解它如何读取完整的 Stable Diffusion 模型,模型路径应放在哪个目录下,权重文件、yaml 配置之间的关系。同时介绍 Diffusers 格式在 ComfyUI 中的支持情况,两种格式的差异、转换思路以及常见的加载报错排查方法,帮助你在工作流搭建时少走弯路。

刚接触 ComfyUI 的用户通常都会从最基础的文生图工作流开始,而这个工作流的起点几乎都是 Checkpoint Loader (Simple) 节点。它看起来简单,只输出 MODEL、CLIP 和 VAE 三条连线,但背后涉及模型文件的组织结构、目录约定以及格式兼容性等问题。不少人下载了新模型却发现下拉列表里找不到,或者加载 Diffusers 格式的模型时直接报错,这些问题的根源大多在于对模型加载机制理解不够。本文将系统梳理 Checkpoint Loader (Simple) 的使用细节,并分析 ComfyUI 对 Diffusers 格式的支持现状。

ComfyUI 如何加载模型?Checkpoint Loader (Simple) 与 Diffusers 格式支持详解

Checkpoint Loader (Simple) 节点的工作机制

Checkpoint Loader (Simple) 是 ComfyUI 中最常用的模型加载节点,它的职责是读取一个完整的 Stable Diffusion checkpoint 文件,并将其拆解成三个核心组件:负责去噪预测的 UNet(即 MODEL 输出)、负责文本理解的 CLIP 编码器,以及负责潜空间与像素空间转换的 VAE。这种一条连线一个组件的设计,让后续的 LoRA 挂载、CLIP Set Last Layer 等操作都有明确的接入点。

该节点提供的下拉列表会扫描 ComfyUI 安装目录下的 models/checkpoints 文件夹,支持 .ckpt、.pt、.safetensors 等常见扩展名。如果把模型放在了错误的目录,比如放到了 models/unet 或者自定义的子目录之外的位置,节点就不会显示它。值得一提的是,ComfyUI 支持在 checkpoints 目录下建立多级子文件夹,下拉列表会以相对路径的形式展示,例如 sd15/realisticVision.safetensors,这对于管理大量模型的用户来说非常实用。

默认情况下,这个节点加载的是 fp32 或模型文件原本的精度。如果显存吃紧,可以配合系统设置中的权重精度选项切换到 fp16,或者改用带有选择器的其他加载节点。此外,有些模型发布时附带同名的 yaml 配置文件(例如 v1-inference.yaml 或模型同名配置),ComfyUI 会自动读取它来获取额外的采样配置信息,正常使用时一般不需要手动干预。

单文件格式与 Diffusers 格式的差异

Hugging Face 生态中的模型通常以两种形态存在。一种是单文件格式(single file),也就是我们熟悉的 .ckpt 或 .safetensors 大文件,所有权重被打包在一起;另一种是 Diffusers 格式,它把模型拆分成多个子目录,典型结构包括 text_encoder、unet、vae、tokenizer 和 scheduler 等,每个目录里存放对应的权重和配置,通常还有一个 model_index.json 来描述整体结构。

这两种格式各有优势。单文件便于分享和下载,一个文件就能完整描述模型,也是 Civitai 等社区的主流分发方式。Diffusers 格式则更模块化,加载时按需读取组件,方便替换其中某个部分,例如只替换 VAE 或者换一个文本编码器,同时也更适合程序化的 pipeline 调用。对 ComfyUI 而言,原生工作流主要围绕单文件格式设计,这也解释了为什么直接把 Diffusers 文件夹丢进 checkpoints 目录是行不通的。

ComfyUI 中的 Diffusers 格式加载方案

ComfyUI 核心并没有直接提供一个名为 Diffusers Loader 的官方节点,对 Diffusers 格式的支持主要依赖自定义节点扩展。社区中较常见的做法是安装专门的加载节点,将 Diffusers 目录中的 unet、text_encoder、vae 分别映射为 MODEL、CLIP、VAE 输出,从而无缝接入现有工作流。安装这类扩展后,在节点管理器中搜索 diffusers 相关关键词即可找到对应节点。

另一种思路是格式转换。如果想继续使用原生的 Checkpoint Loader (Simple),可以把 Diffusers 格式的模型合并导出为单个 safetensors 文件。转换可以借助 diffusers 库完成,核心代码大致如下:

from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("本地Diffusers模型目录")

# 将各组件合并并保存为单文件
pipe.save_pretrained("输出目录", safe_serialization=True)

# 也可以借助转换脚本把 unet、vae、text_encoder 权重
# 拼接成 ComfyUI 可识别的 checkpoint 结构

转换完成后,将生成的 safetensors 文件放入 models/checkpoints,即可通过原生节点加载。需要注意的是,Stable Diffusion XL 系列模型涉及两个文本编码器,转换时要确保 CLIP 的两个组件都被正确合并,否则出图时提示词的理解会出现偏差。

常见加载问题与排查思路

模型不显示在下拉列表里,是最高频的问题。排查顺序建议是:先确认文件扩展名是否被支持,再检查路径是否在 models/checkpoints 之内,最后重启 ComfyUI 让目录重新扫描。如果是通过符号链接挂载的外部模型库,要确保链接指向的目标对 ComfyUI 进程有读取权限,Windows 下尤其要注意符号链接的创建方式。

加载时报错提示权重缺失或 key 不匹配,多半是模型文件下载不完整或格式不兼容。safetensors 文件下载中断后体积不足,加载时会直接抛出异常,建议下载后比对文件大小或哈希值。遇到显示 NO VAE 之类的字样时,说明模型内置 VAE 有问题,可以在工作流中显式挂一个 VAE Loader,用独立的 VAE 文件替换,这是 SD1.5 系列模型很常见的处理手段。

最后建议合理规划模型目录:checkpoint、LoRA、VAE、放大模型分别放在 models 下对应的子目录,配合 ComfyUI 的多级子目录支持做分类管理。这样无论模型规模如何增长,都能在加载节点的下拉列表中快速定位,避免在一个扁平目录里翻找几十个文件的尴尬局面。

ComfyUICheckpoint LoaderDiffusers修改时间:2026-09-03 12:12:53

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260903/49551.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。