跳转至

05-模型加载与使用

⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。

ComfyUI模型加载与使用示意图

🎯 学习目标

  • 了解 Stable Diffusion 模型家族及各代特点
  • 掌握 Checkpoint、LoRA、ControlNet、IP-Adapter 等模型的加载与使用
  • 理解模型文件格式与安全性差异
  • 学会多模型组合与权重调节
  • 了解模型下载的常用资源站

5.1 Stable Diffusion 模型家族

5.1.1 模型代际概览

模型 发布时间 基础分辨率 参数量 架构特点 推荐显存
SD 1.5 2022.10 512×512 ~983M 经典 UNet + CLIP 4GB+
SD 2.1 2022.12 512/768 865M OpenCLIP 编码器 6GB+
SDXL 2023.07 1024×1024 ~6.6B(3.5B Base + 3.1B Refiner) 双编码器+Refiner 8GB+
SD3 2024.06 1024×1024 2B/8B MMDiT 架构、三编码器 8GB+
Flux.1 2024.08 1024×1024 12B DiT 架构、超强文字理解 12GB+

5.1.2 SD 1.5

经典入门模型。生态最成熟,拥有最丰富的 LoRA、ControlNet 和衍生模型(如 RealisticVision、DreamShaper)。

优点: - 显存要求低,4GB 即可运行 - 模型生态丰富(数万个 LoRA 和衍生 Checkpoint) - 速度快,适合快速迭代

局限: - 原生分辨率 512×512,高分辨率需要 Hires Fix - 对复杂提示词理解能力有限 - 人体解剖学偶尔出错

5.1.3 SDXL

高分辨率主力模型。原生 1024×1024,画质大幅提升。

特点: - 双 CLIP 编码器(CLIP-ViT-L + OpenCLIP-ViT-G) - 可选 Refiner 模型进行精修 - 更好的构图和细节表现

ComfyUI 中的 SDXL 节点

Text Only
CheckpointLoaderSimple (加载 SDXL Base)
    ├── MODEL
    ├── CLIP (双编码器融合)
    └── VAE

CLIPTextEncodeSDXL (SDXL 专用编码器)
    ├── text_g (对应 OpenCLIP-ViT-G)
    ├── text_l (对应 CLIP-ViT-L)
    ├── width, height (目标尺寸)
    └── crop_w, crop_h (裁剪偏移)

💡 提示:大多数情况下可以直接用普通的 CLIPTextEncode 节点配合 SDXL 模型,它会自动处理双编码器。使用 CLIPTextEncodeSDXL 可以获得更精细的控制。

5.1.4 SD3 / SD3.5

新一代架构(MMDiT — Multimodal Diffusion Transformer):

  • 使用 Transformer 替代传统 UNet
  • 三个文本编码器(CLIP-L + CLIP-G + T5-XXL)
  • 改进的文本理解能力
  • 更好的构图和手部表现

5.1.5 Flux.1

当前最强开源模型之一(由 Black Forest Labs 开发):

版本 许可 特点 推荐步数
Flux.1 Dev 开源(非商用) 高质量,支持 Guidance 20-30
Flux.1 Schnell Apache 2.0 4步快速生成 4
Flux.1 Pro 商用API 最高质量 -

Flux 在 ComfyUI 中的加载

Text Only
方式一:合并 Checkpoint(推荐,简单)
  CheckpointLoaderSimple → 加载 flux1-dev-fp8.safetensors
  直接使用 KSampler,设置 cfg: 3.5(dev)或 cfg: 1.0(schnell)

方式二:分体加载(灵活,可单独替换组件)
  UNETLoader     → 加载 Flux UNet 模型
  DualCLIPLoader → 加载 clip_l + t5xxl 双编码器
  VAELoader      → 加载 Flux VAE (ae.safetensors)

⚠️ 注意:Flux 使用 Rectified Flow 而非传统 Classifier-Free Guidance,CFG 值通常设置得较低(dev: 3-5,schnell: 1.0)。负向提示词对 Flux 效果有限,建议专注于优化正向提示词。


5.2 模型文件格式

5.2.1 .safetensors vs .ckpt

特性 .safetensors .ckpt
安全性 ✅ 安全(仅包含张量数据) ⚠️ 可能包含恶意代码(使用 pickle)
加载速度 更快(零拷贝反序列化) 较慢
文件大小 相同或略小 相同或略大
兼容性 现代标准 传统格式
推荐度 ⭐⭐⭐⭐⭐ 强烈推荐 ⭐⭐ 尽量避免

⚠️ 注意永远优先使用 .safetensors 格式。.ckpt 文件可能包含恶意 Python 代码,加载时可能执行任意代码。避免从不可信来源下载 .ckpt 文件。

5.2.2 其他格式

  • .bin:PyTorch 原生格式,较少使用
  • .gguf:量化格式,用于降低模型大小和显存需求
  • .pt:PyTorch 模型格式

5.3 Checkpoint 模型加载与切换

5.3.1 基本加载

将模型文件放入 ComfyUI/models/checkpoints/ 目录,然后在 CheckpointLoaderSimple 节点的下拉菜单中选择:

Text Only
CheckpointLoaderSimple
├── ckpt_name: [选择模型文件]
├── 输出 MODEL  ● ─→ 连接到采样器
├── 输出 CLIP   ● ─→ 连接到文本编码器
└── 输出 VAE    ● ─→ 连接到 VAE 解码器

5.3.2 模型切换技巧

  • 目录组织:将不同类别的模型放入子目录以便管理
Text Only
  checkpoints/
  ├── sd15/
  │   ├── v1-5-pruned-emaonly.safetensors
  │   └── realisticVision_v51.safetensors
  ├── sdxl/
  │   ├── sd_xl_base_1.0.safetensors
  │   └── juggernautXL_v9.safetensors
  └── flux/
      └── flux1-dev.safetensors
  ```

- **外部路径链接**:在 `extra_model_paths.yaml` 中配置外部模型目录,避免重复存储

  ```yaml
  # ComfyUI/extra_model_paths.yaml
  other_ui:
      base_path: D:/AI-Models/
      checkpoints: checkpoints/
      loras: loras/
      vae: vae/
      controlnet: controlnet/
  ```

> 💡 **提示**:配置 `extra_model_paths.yaml` 可以让 ComfyUI 和其他 SD 前端共享同一份模型文件,节省磁盘空间。

---

## 5.4 LoRA 模型

### 5.4.1 什么是 LoRA

**LoRA(Low-Rank Adaptation,低秩适配)** 是一种高效的模型微调技术。它不修改原始模型权重,而是训练一组小的适配层(通常只有几十 MB),在推理时与基础模型动态合并。

```text
┌─────────────────────────────────────────┐
│  原始模型权重(冻结,不修改)                │
│  ┌──────────────────────────────┐        │
│  │  原始权重矩阵 W (d×d)         │        │
│  │         │                    │        │
│  │    ┌────┴────┐               │        │
│  │    │ LoRA    │               │        │
│  │    │ A (d×r) × B (r×d)      │        │
│  │    │ r << d (低秩)           │        │
│  │    └─────────┘               │        │
│  │                              │        │
│  │  最终权重 = W + α × A × B    │        │
│  └──────────────────────────────┘        │
└─────────────────────────────────────────┘

优势: - 文件小(通常 10-200MB) - 可叠加多个 LoRA - 可调节强度 - 种类丰富(风格、角色、概念、姿势等)

5.4.2 如何下载和使用 LoRA

下载源: - Civitai:最大的 LoRA 社区 - LiblibAI:国内模型社区 - Hugging Face:开源模型平台

安装:将 .safetensors 文件放入 ComfyUI/models/loras/ 目录。

使用节点

Text Only
CheckpointLoaderSimple
    ├── MODEL ──→ LoraLoader.model
    └── CLIP ───→ LoraLoader.clip

LoraLoader
    ├── lora_name: [选择 LoRA 文件]
    ├── strength_model: 0.8    (模型权重)
    ├── strength_clip: 0.8     (CLIP 权重)
    ├── 输出 MODEL ──→ KSampler.model
    └── 输出 CLIP ───→ CLIPTextEncode.clip

5.4.3 LoRA 权重调节

strength_model 效果
0.0 完全不应用 LoRA
0.3-0.5 微弱影响,适合风格微调
0.6-0.8 中等影响,推荐起始值
0.9-1.0 强烈影响,完全应用
1.0+ 过度应用,可能导致过拟合/失真

💡 提示strength_modelstrength_clip 可以设置为不同的值。通常建议两者保持一致,但某些 LoRA 可能需要分别调节。

5.4.4 多 LoRA 叠加使用

通过串联多个 LoRALoader 节点实现叠加:

Text Only
CheckpointLoader
    ├── MODEL ──→ LoraLoader_1.model ──→ LoraLoader_2.model ──→ KSampler
    └── CLIP ───→ LoraLoader_1.clip  ──→ LoraLoader_2.clip  ──→ CLIPTextEncode

LoraLoader_1: style_lora.safetensors (strength: 0.7)
LoraLoader_2: character_lora.safetensors (strength: 0.6)

叠加注意事项: - 多个 LoRA 叠加时,建议适当降低每个 LoRA 的权重 - 同类 LoRA(如两个风格 LoRA)叠加可能冲突 - 互补型 LoRA(风格 + 角色)叠加效果通常较好 - 建议不超过 3-4 个 LoRA 同时使用


5.5 ControlNet

5.5.1 ControlNet 原理简介

ControlNet 是一种条件控制技术,通过额外的输入图像(如边缘图、深度图、姿态图)来引导图像生成的构图和结构。

Text Only
┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│  输入图像     │────▶│  预处理器      │────▶│ 控制图像     │
│ (参考照片)    │     │ (Canny/Depth) │     │ (边缘/深度)  │
└─────────────┘     └──────────────┘     └──────┬──────┘
                    ┌──────────────┐             │
                    │ ControlNet   │◀────────────┘
                    │ 模型          │
                    │              │──── 条件控制 ──→ KSampler
                    └──────────────┘

5.5.2 预处理器类型

预处理器 检测内容 适用场景 控制效果
Canny 边缘轮廓 精确轮廓控制 保持物体边缘形状
Depth 深度信息 空间层次控制 保持远近关系和构图
OpenPose 人体骨架 人物姿态控制 保持人物动作姿态
Scribble 手绘草图 草图创意转化 将涂鸦转为成品图
LineArt 线稿轮廓 线稿上色 保持精细线稿结构
SoftEdge 柔和边缘 柔和形状控制 比 Canny 更自然
NormalMap 法线方向 光影结构控制 保持3D光照关系
Segmentation 语义分割 区域语义控制 控制图像各区域含义
Tile 原始细节 高分辨率修复 保留并增强细节
IP2P 指令编辑 指令式图像编辑 通过指令修改图像

5.5.3 ControlNet 节点配置

Text Only
ControlNetLoader
    └── control_net: [选择 ControlNet 模型]

预处理器节点 (如 CannyEdgePreprocessor)
    ├── image: [LoadImage 输出]
    └── IMAGE: 预处理后的控制图

ControlNetApply / ControlNetApplyAdvanced
    ├── conditioning: [CLIPTextEncode 输出]
    ├── control_net: [ControlNetLoader 输出]
    ├── image: [预处理器输出的控制图]
    ├── strength: 0.8 (控制强度)
    └── CONDITIONING → KSampler.positive

关键参数

参数 说明 推荐值
strength 控制强度 0.5-1.0
start_percent 开始生效的步数比例 0.0
end_percent 结束生效的步数比例 1.0

5.5.4 多 ControlNet 组合

可以串联多个 ControlNet 实现复合控制:

Text Only
CLIPTextEncode.CONDITIONING
    → ControlNetApply (Depth, strength=0.6)
        → ControlNetApply (OpenPose, strength=0.8)
            → KSampler.positive

⚠️ 注意:多 ControlNet 叠加时注意控制总强度,过多的控制可能导致模型"困惑",生成质量下降。


5.6 IP-Adapter

5.6.1 风格迁移与图像参考

IP-Adapter 允许你使用参考图像来引导生成图像的风格、构图或主题:

  • 风格参考:让生成图像模仿参考图的美术风格
  • 内容参考:让生成图像包含参考图中的元素
  • 面部参考:让生成图像的人脸与参考人脸相似

5.6.2 配置与使用方法

所需文件: - IP-Adapter 模型文件 → models/ipadapter/ - CLIP Vision 模型 → models/clip_vision/

节点配置

Text Only
CLIPVisionLoader
    └── clip_name: [CLIP Vision 模型]

CLIPVisionEncode
    ├── clip_vision: [CLIPVisionLoader 输出]
    ├── image: [参考图像]
    └── CLIP_VISION_OUTPUT

IPAdapterApply
    ├── model: [CheckpointLoader 的 MODEL]
    ├── ipadapter: [IPAdapterModelLoader 输出]
    ├── image: [参考图像]
    ├── weight: 0.8 (影响强度)
    ├── weight_type: standard
    └── MODEL → KSampler.model

weight 参数调节

weight 效果
0.3-0.5 轻微参考,保持创意空间
0.6-0.8 中等参考,平衡创意与忠实度
0.9-1.0 强参考,高度忠实于参考图
1.0+ 过度参考,可能丢失文本控制

5.7 VAE 选择与配置

5.7.1 什么是 VAE

VAE(Variational Autoencoder,变分自编码器) 负责在像素空间和潜空间之间转换:

  • 编码(Encode):将像素图像压缩为潜空间表示(用于img2img输入)
  • 解码(Decode):将潜空间表示还原为像素图像(最终输出)

5.7.2 常用 VAE

VAE 适用模型 特点
vae-ft-mse-840000 SD 1.5 经典 VAE,色彩准确
sdxl_vae SDXL SDXL 专用 VAE
Checkpoint 自带 通用 多数 Checkpoint 已内置 VAE
ae.safetensors Flux Flux 专用 VAE

5.7.3 何时需要单独加载 VAE

  • Checkpoint 自带 VAE 效果不理想(色彩偏灰、细节丢失)
  • 特定模型推荐使用外部 VAE
  • 需要测试不同 VAE 对输出的影响
Text Only
# 单独加载 VAE
VAELoader
    └── vae_name: vae-ft-mse-840000.safetensors

# 将其输出连接到 VAEDecode(替代 CheckpointLoader 自带的 VAE)
VAELoader.VAE → VAEDecode.vae

5.8 模型资源网站

网站 地址 特点
Civitai https://civitai.com/ 最大的 SD 模型社区,模型种类丰富
Hugging Face https://huggingface.co/ 开源模型平台,官方模型发布地
LiblibAI https://www.liblib.art/ 国内模型社区,中文友好
Tensor.Art https://tensor.art/ 在线生成平台兼模型社区
OpenArt https://openart.ai/ ComfyUI 工作流分享平台

💡 提示:从社区下载模型时,注意查看模型的许可证条款(尤其是商用限制)。推荐关注模型的下载量和社区评价来判断质量。


练习

  1. 下载并加载一个 SD 1.5 Checkpoint 和一个 SDXL Checkpoint,对比同一提示词的生成效果
  2. 下载两个不同风格的 LoRA,分别测试单独使用和叠加使用的效果
  3. 使用 ControlNet Canny 和 Depth 分别控制同一张参考图的生成
  4. 配置 extra_model_paths.yaml,添加一个外部模型目录
  5. 尝试使用 IP-Adapter 进行风格迁移

延伸阅读


📌 下一章06-高级工作流 —— 学习 Hires Fix、放大、视频生成等高级工作流


最后更新日期:2026-02-12 适用版本:ComfyUI实战教程 v2026