ComfyUI 第 {LESSON_NUM} 课:{TITLE}
{DATE} 更新
由 AI智能库 编写
一、Checkpoint 大模型是什么
1.1 一句话定义
Checkpoint 是 Stable Diffusion / FLUX 等生成式模型的完整权重快照,决定了一幅画能被画成什么样。
如果把 AI 绘画比作做菜,Checkpoint 就是厨房里最基础的调味料组合。它决定了这道菜是川菜、粤菜还是西餐——也就是决定了画面的整体风格、人物结构、光影习惯和质感倾向。
在 ComfyUI 里,Checkpoint 通常被称为「大模型」或「底模」,文件后缀多为 .safetensors(新版推荐)或 .ckpt(旧版)。
1.2 常见 Checkpoint 分类
| 模型系列 | 特点 | 典型用途 | 推荐显存 |
|---|---|---|---|
| SD 1.5 | 生态最成熟,LoRA 最多 | 二次元、写实入门 | 4GB+ |
| SDXL 1.0 | 原生 1024px,画质更好 | 商业摄影、海报 | 8GB+ |
| SDXL Turbo / Lightning | 4-8 步快速出图 | 快速迭代、实时预览 | 8GB+ |
| FLUX.1 [dev/schnell] | 提示词理解强、真实感突出 | 写实人像、商业广告 | 12GB+ |
| Pony Diffusion | 人物表现优秀 | 角色插画、二次元 | 8GB+ |
- 新手练手:SD 1.5 或 SDXL,模型多、教程多
- 商业摄影/写实:SDXL / FLUX.1 dev
- 低显存设备:SD 1.5 + –lowvram 启动参数
1.3 Checkpoint 的存放位置
ComfyUI 对模型目录有严格约定:
ComfyUI/
├── models/
│ ├── checkpoints/ ← 大模型放这里
│ ├── loras/ ← LoRA 放这里
│ ├── vae/ ← VAE 放这里
│ ├── controlnet/ ← ControlNet 放这里
│ └── upscale_models/ ← 放大模型放这里
把下载好的 .safetensors 文件放进 models/checkpoints/ 后,需要刷新或重启 ComfyUI,文件才会出现在 Load Checkpoint 节点的下拉列表中。
二、LoRA 微调模型是什么
2.1 一句话定义
LoRA(Low-Rank Adaptation)是一种轻量级微调技术,它像一层「贴片」一样叠加在大模型上,让大模型获得特定的风格、角色或概念能力。
LoRA 文件通常只有几十 MB 到几百 MB,远比 Checkpoint(几个 GB)小得多。它不能独立生成图片,必须依托一个 Checkpoint 才能工作。
2.2 常见 LoRA 类型
| 类型 | 作用 | 典型触发词 | 推荐权重 |
|---|---|---|---|
| 角色 LoRA | 固定某个人物形象 | 角色名、特征词 | 0.7–1.0 |
| 画风 LoRA | 模拟特定艺术风格 | 风格关键词 | 0.5–0.8 |
| 概念/物体 LoRA | 让模型认识新事物 | 物体名 | 0.6–0.9 |
| 服装/道具 LoRA | 生成特定服饰道具 | 服装名 | 0.5–0.8 |
| 光影 LoRA | 强化特定光照效果 | 光影描述词 | 0.3–0.6 |
不用重新训练大模型,只需加载一个小文件,就能让 SDXL 画出某个动漫角色、让 FLUX 生成某种电影感光影、让画面统一为水彩画风。这就是 LoRA 的革命性之处。
2.3 Checkpoint 与 LoRA 的核心区别
| 对比项 | Checkpoint 大模型 | LoRA 微调模型 |
|---|---|---|
| 文件大小 | 2–8 GB | 10 MB–500 MB |
| 能否独立出图 | 可以 | 不可以,必须依附 Checkpoint |
| 作用层级 | 决定整体能力和风格 | 注入特定角色/风格/细节 |
| 数量限制 | 一次只能用一个 | 可多个叠加 |
| 训练成本 | 极高,需要大量算力 | 低,普通显卡可训练 |
| 常用格式 | .safetensors / .ckpt | .safetensors |
三、模型目录规范与文件格式
3.1 推荐目录结构
当模型数量变多后,合理的目录结构能救命。推荐按模型架构分子文件夹:
ComfyUI/models/
├── checkpoints/
│ ├── SD1.5/
│ │ ├── realisticVision.safetensors
│ │ └── dreamshaper_8.safetensors
│ ├── SDXL/
│ │ ├── juggernautXL.safetensors
│ │ └── realisticVisXL.safetensors
│ └── FLUX/
│ └── flux1-dev.safetensors
├── loras/
│ ├── SD1.5/
│ │ ├── character/
│ │ └── style/
│ ├── SDXL/
│ │ ├── character/
│ │ └── style/
│ └── FLUX/
│ ├── character/
│ └── style/
└── vae/
└── sdxl_vae.safetensors
- 只使用英文、数字、下划线、连字符,不要出现中文、空格或特殊符号
- 长文件名可以缩短,保持可读性即可
- 同名不同架构的 LoRA 一定要分目录存放,避免选错
3.2 .safetensors 与 .ckpt 怎么选
现在主流都推荐 .safetensors:
- 安全性:
.ckpt是 PyTorch 原生格式,可能被注入恶意代码;.safetensors只包含张量数据,更安全 - 加载速度:
.safetensors加载更快,内存映射更高效 - 兼容性:ComfyUI、WebUI、Civitai 都优先支持
.safetensors
结论:能下 .safetensors 就下 .safetensors, legacy 的 .ckpt 只在没替代源时才考虑。
四、Load Checkpoint 节点详解
Load Checkpoint 是绝大多数 ComfyUI 工作流的第一个节点,它负责把大模型从硬盘加载到显存,并拆成三路输出。
4.1 节点参数
| 参数 | 含义 | 说明 |
|---|---|---|
| ckpt_name | 选择大模型文件 | 下拉列表来自 models/checkpoints/ 目录 |
| config_name | 模型配置文件 | 通常保持默认(自动匹配) |
4.2 三路输出
| 输出端口 | 类型 | 接往哪里 | 作用 |
|---|---|---|---|
| MODEL | MODEL | KSampler / Load LoRA | 扩散模型权重,负责真正生成图像 |
| CLIP | CLIP | CLIP Text Encode / Load LoRA | 文本编码器,把提示词转成模型能理解的语言 |
| VAE | VAE | VAE Decode / VAE Encode | 图像与潜空间之间的编解码器 |
把 Load Checkpoint 的 MODEL 直接连到 KSampler,却把 CLIP 接到了别的地方,导致正向提示词用的是另一个模型的 CLIP。这样会出现「提示词不听使唤」的现象。记住:一个 Checkpoint 的三路输出要尽量一起用,保持来源一致。
4.3 实际连接示例
Load Checkpoint
├── MODEL ──────→ KSampler.model
├── CLIP ────────→ CLIP Text Encode.clip
└── VAE ─────────→ VAE Decode.vae
这是最小文生图工作流中 Checkpoint 的标准去向。任何 LoRA 都要先插在 MODEL 和 CLIP 这两路上,再进入后续节点。
五、Load LoRA 节点详解
5.1 节点位置与作用
Load LoRA 节点的作用是:把 LoRA 权重叠加到已经加载的 Checkpoint 上,输出「被修改过的 MODEL 和 CLIP」。
5.2 节点参数
| 参数 | 含义 | 常用范围 | 建议 |
|---|---|---|---|
| lora_name | 选择 LoRA 文件 | — | 确认与 Checkpoint 架构匹配 |
| strength_model | 对生成模型的影响强度 | -1.0 ~ 1.0 | 日常 0.6–1.0 |
| strength_clip | 对文本编码器的影响强度 | -1.0 ~ 1.0 | 通常与 model 相同或略低 |
5.3 strength_model 与 strength_clip 的区别
这两个参数是 Load LoRA 最容易被忽视、也最重要的细节:
- strength_model:控制 LoRA 对图像生成模型(UNet/Transformer)的影响。它决定了画面中是否出现该 LoRA 学的特征,比如角色的脸、画风笔触、服装样式。
- strength_clip:控制 LoRA 对CLIP 文本编码器的影响。它决定了模型对你 prompt 里触发词、角色名、风格词的理解程度。
简单记忆:
strength_model → 决定画面长什么样
strength_clip → 决定模型听不听懂你的触发词
5.4 连接方式
一个 LoRA 的标准接法是:把 Checkpoint 的 MODEL 和 CLIP 输出,接到 Load LoRA 的 model 和 clip 输入;再把 Load LoRA 的 MODEL 和 CLIP 输出,分别接到 KSampler 和 CLIP Text Encode。
Load Checkpoint
├── MODEL ──→ Load LoRA.model
└── CLIP ───→ Load LoRA.clip
Load LoRA
├── MODEL ──→ KSampler.model
└── CLIP ───→ CLIP Text Encode.clip
如果只接 MODEL 而没接 CLIP,LoRA 的触发词响应会大幅削弱,画面效果会明显变弱甚至失效。这是新手最容易犯的错误之一。
六、多 LoRA 串联实战
6.1 为什么要叠加多个 LoRA
实际创作中,经常需要同时满足多个需求:
- 角色 LoRA:让画面中的人物是某个特定角色
- 画风 LoRA:让画面变成油画/水彩/像素风
- 光影 LoRA:强化某种灯光氛围
- 服装 LoRA:让角色穿上指定服饰
这些需求无法靠一个 LoRA 解决,需要把多个 LoRA 串联起来。
6.2 串联方式
把多个 Load LoRA 节点首尾相接:
Load Checkpoint
├── MODEL ──→ Load LoRA 1.model
└── CLIP ───→ Load LoRA 1.clip
Load LoRA 1
├── MODEL ──→ Load LoRA 2.model
└── CLIP ───→ Load LoRA 2.clip
Load LoRA 2
├── MODEL ──→ Load LoRA 3.model
└── CLIP ───→ Load LoRA 3.clip
Load LoRA 3
├── MODEL ──→ KSampler.model
└── CLIP ───→ CLIP Text Encode.clip
串联顺序理论上对结果有影响,但通常权重分配比顺序更重要。建议先固定种子测试不同顺序,再决定最终链路。
6.3 权重分配策略
| 场景 | LoRA 1 | LoRA 2 | LoRA 3 | 总强度 |
|---|---|---|---|---|
| 角色 + 画风 | 角色 0.8 | 画风 0.5 | — | 1.3 |
| 角色 + 光影 + 服装 | 角色 0.9 | 服装 0.5 | 光影 0.4 | 1.8 |
| 双角色融合 | 角色 A 0.6 | 角色 B 0.6 | — | 1.2 |
| 纯风格融合 | 风格 A 0.5 | 风格 B 0.5 | — | 1.0 |
总强度 = 各 LoRA strength_model 之和。日常建议控制在 1.5 以内;超过 2.0 极易出现画风撕裂、人体崩坏或色彩溢出。
6.4 触发词管理
每个 LoRA 作者在训练时都可能指定了触发词(Trigger Words)。使用时需要注意:
- 把触发词放在 prompt 的前部或对应描述附近
- 不同 LoRA 的触发词用逗号分隔
- 不要把画风 LoRA 的触发词和角色 LoRA 的触发词混在一起
- 如果模型卡写 “no trigger words required”,则不需要专门写
character_name, 1girl, long hair, blue eyes,
white dress, soft lighting, watercolor painting style,
outdoor garden, masterpiece, best quality
其中 character_name 是角色 LoRA 触发词,watercolor painting style 是画风 LoRA 触发词。
七、权重调参与常见问题
7.1 扫权重法:找到最佳区间
不要盲目用 1.0。推荐用固定种子扫权重:
- 固定 prompt、seed、CFG、steps、尺寸
- 设置 strength_model = 0.6,生成第一张图
- 改为 0.8,生成第二张图
- 改为 1.0,生成第三张图
- 改为 1.2,生成第四张图
- 对比四张图,选择效果明显且不炸图的区间
找到合适的 model 权重后,再微调 clip 权重,观察触发词响应和 prompt 理解度。
7.2 常见问题排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| LoRA 完全没效果 | 底模架构不匹配 / 没写触发词 / CLIP 没接 | 检查架构、触发词、连线 |
| 画面炸裂、色彩溢出 | 权重过高 / 多个 LoRA 冲突 | 降低 strength_model,减少 LoRA 数量 |
| 人物崩坏、五官错位 | 角色 LoRA 权重过高 / 与底模不兼容 | 降到 0.7–0.8,换匹配底模 |
| 触发词没反应 | strength_clip 太低 / 触发词写错位置 | 提高 clip 权重,把触发词放前面 |
| 多个 LoRA 画风打架 | 总强度过高 / 风格冲突 | 主次分明,总强度控制在 1.5 以内 |
| 生成速度变慢 | LoRA 文件过大 / 显存不足 | 减少 LoRA 数量,或启用 –lowvram |
7.3 底模匹配检查清单
- SD 1.5 的 LoRA 不能用于 SDXL/FLUX
- SDXL 的 LoRA 不能用于 SD 1.5/FLUX
- FLUX 的 LoRA 只能用于 FLUX 底模
- 下载前务必查看模型卡的 Base Model / 适用底模字段
LoRA 和 Checkpoint 的架构不匹配,是导致「LoRA 不生效」的头号原因。不是你连错了,而是文件本身就配不上。
八、关键术语速查
- Checkpoint
- 大模型文件,决定生成图像的基本风格和能力
- LoRA
- 轻量级微调模型,叠加在大模型上实现特定人物/风格
- safetensors
- 推荐模型格式,安全且加载快
- ckpt
- 旧版 PyTorch 模型格式,建议优先用 safetensors
- strength_model
- LoRA 对生成模型的影响强度
- strength_clip
- LoRA 对 CLIP 文本编码器的影响强度
- 触发词
- 训练时定义的关键词,用于激活 LoRA 特征
- 底模
- LoRA 所依附的 Checkpoint 大模型
- 模型架构
- SD1.5 / SDXL / FLUX 等不同模型体系
- 模型目录
- ComfyUI/models/ 下按类型分类的文件夹
本课小结
- Checkpoint 是 ComfyUI 工作流的起点,决定画面整体能力和风格
- LoRA 是轻量级「贴片」,依附于 Checkpoint,注入角色/风格/细节
- 模型按目录规范存放:
checkpoints/放大模型,loras/放 LoRA - Load Checkpoint 输出 MODEL / CLIP / VAE 三路,缺一路都不行
- Load LoRA 必须同时串联 model 和 clip,不能只接一路
- 多 LoRA 串联时,权重分配比顺序更重要,总强度建议 ≤ 1.5
- 调参用固定种子扫权重,先找 model 区间,再微调 clip
- 排查 LoRA 失效,首先检查底模架构匹配和触发词
课后任务
- 整理你的模型目录:把下载的 Checkpoint 和 LoRA 分别放进
models/checkpoints/和models/loras/,并用 SD1.5 / SDXL / FLUX 子文件夹分类 - 搭建单 LoRA 工作流:用 Load Checkpoint + Load LoRA + KSampler 完成一次文生图,尝试 0.6 / 0.8 / 1.0 三个 model 权重,观察画面差异
- 尝试双 LoRA 叠加:选择一个角色 LoRA 和一个画风 LoRA,分别设置 0.8 和 0.5,对比单用与叠加的效果
- 记录触发词:打开你常用的 LoRA 模型卡,复制触发词到一个文档,方便以后快速调用
第 07 课:本地模型上传到 RH 网的方式
下节课我们将学习如何把本地训练或下载好的模型上传到 RunningHub 云端,实现云端工作流调用本地模型资源。








