无分类器引导(Classifier‑Free Guidance,简称 CFG)概述
1. 什么是 CFG
CFG 是一种在 条件扩散模型(如 Stable Diffusion、GLIDE、Midjourney 等)采样阶段使用的技术,旨在 在不额外训练分类器的前提下,提升生成样本对条件(文本、标签、图像等)的匹配度,同时保持较高的图像质量。其核心思想是 将同一网络在有条件和无条件两种情形下的噪声预测进行线性组合,通过一个可调的 “引导尺度” 来控制条件信息的强化程度。
2. 为什么需要 CFG
- 传统分类器引导(Classifier Guidance)需要额外训练一个独立的分类器,并在采样时把分类器的梯度加入噪声预测中,计算成本高且可能出现梯度冲突。
- CFG 通过条件 dropout(在训练时随机丢弃条件信息)让同一模型同时学习 条件 与 无条件 的预测,从而在推理时无需额外模型即可实现引导。
3. 训练方式
- 条件 dropout:在每个训练步骤,以一定概率(常见 10%‑20%)把条件 替换为 “空” 。
- 共享网络:同一 U‑Net 同时输出有条件和无条件的噪声预测,参数完全共享。
- 损失函数:对两种情形分别计算均方误差并加权求和,整体仍保持原始扩散模型的训练目标。
4. CFG 的优势
| 方面 | 说明 |
|---|---|
| 无需额外分类器 | 训练、部署成本大幅降低 |
| 可调节性强 | 通过 灵活平衡 保真度 与 多样性 |
| 兼容性好 | 适用于 DDPM、DDIM、Euler、LMS 等多种采样器 |
| 提升条件匹配 | 在文本‑图像、图像‑到‑图像、3D 生成等任务中显著提升提示遵循度 |
5. 常见的改进与变体
| 变体 | 关键思路 | 参考 |
|---|---|---|
| 自适应 CFG(Adaptive CFG) | 根据不同视角或阶段动态调整 ,在保持几何形状的同时提升纹理细节 | |
| 残差无分类器引导(RCFG) | 用“残差噪声”近似负条件,仅在采样初期计算一次,显著降低计算开销 | |
| CFG++ / Manifold‑constrained CFG | 在采样过程中加入流形约束,缓解高 导致的模式崩溃与伪影 | |
| 内部 CFG(ICFG) | 将无条件预测替换为基模型的噪声输出,提升条件生成质量 | |
| 预测‑校正视角(Predictor‑Corrector) | 将 CFG 解释为一次去噪预测加一次 Langevin 校正,提供理论解释并指导新采样器设计 |
6. 应用场景
- 文本‑到‑图像:Stable Diffusion、DALL·E‑2 等均默认使用 CFG,用户通过调节
guidance_scale控制图像与提示的契合度。 - 图像‑到‑图像编辑:如 Inpainting、Img2Img,CFG 能在保持原始结构的同时强化编辑指令。
- 3D/多视图生成:在多视角合成中,适当的 CFG 能平衡细节与几何一致性。
- 视频扩散:对每帧使用相同的 CFG 参数,可保持时序一致性。
- 语言模型采样:近期研究将 CFG 思路迁移到大语言模型的条件生成(如指令微调)。
8. 使用注意事项
- 引导尺度选择:
- 小 (≈1‑3) → 多样性好,提示遵循度一般。
- 中等 (≈5‑10) → 常用范围,兼顾质量与多样性。
- 大 (>15) → 生成更贴合提示,但易出现 伪影、模式崩溃,需配合 CFG++ 或 RCFG 等技巧缓解。
- 显存消耗:每一步需要两次模型前向,显存使用约翻倍;在显存受限的环境下可适当降低分辨率或关闭 CFG。
- 噪声尺度:在高分辨率或细节丰富的任务中,建议使用 自适应 或 残差 方案,以降低高 带来的噪声放大问题。
9. 小结
无分类器引导(CFG)是 条件扩散模型 中最核心的采样技巧之一。它通过 共享网络 + 条件 dropout 的训练方式,使模型在同一次前向传播中即可得到有条件与无条件的噪声预测;在推理时通过 线性组合 与 可调引导尺度,在不增加额外模型的前提下显著提升生成内容对条件的匹配度。随着 自适应、残差、CFG++ 等变体的出现,CFG 已经从最初的“提升质量”演进为一个 可调、可扩展、理论可解释 的框架,广泛服务于文本‑图像、图像‑编辑、3D/视频生成等多模态生成任务。
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!