Skip to content

分类器自由引导 CFG

引导(Guidance)是扩散模型在采样时提升生成结果与输入条件(文本、类别、图像)对齐程度的核心技巧。其中 Classifier-Free Guidance(CFG,分类器自由引导)几乎是当今所有文生图、文生视频模型的标配——从 Stable Diffusion、FLUX 到 Sora、HunyuanVideo,无一例外。本页梳理从 Classifier Guidance 到 Classifier-Free Guidance 的演进,2024-2026 年出现的 CFG++、Autoguidance、Guidance Distillation 等重要改进,以及 guidance scale 调参的实践经验。前置阅读:扩散模型、采样器详解。

术语速览:扩散模型(Diffusion Model)是一类通过「逐步加噪—逐步去噪」来学习数据分布的生成模型;去噪(Denoising)即从带噪声的图像中预测并减去噪声;潜空间(Latent Space)是把高分辨率图像压缩到低维表示的空间,Stable Diffusion 等在潜空间而非像素空间做扩散以节省算力;CLIP 是 OpenAI 提出的图文对齐模型,把图像和文本编码到同一向量空间,是文生图的「语义桥梁」。

想象一位画家接到一份订单:「画一只赛博朋克猫,霓虹灯,高细节」。画家有两种工作方式:

  • 自由发挥版:不参考任何要求,凭直觉画一张猫——构图自然、风格多样,但可能完全不符合「赛博朋克」的要求。
  • 严格遵循版:对照订单的每一个词,逐条落实。

画家的秘诀是:同时画两张草稿,一张自由版,一张遵循版,然后找出两张的差异——这个差异就是「文字要求带来的影响」。把差异放大叠加到遵循版上,文字要求的影响力就被加强了。

  • Classifier Guidance(分类器引导)= 画家旁边请了一位「审查员」(分类器,Classifier,即能判断输入属于哪个类别的神经网络),每画一笔,审查员都拿放大镜检查「这看起来像赛博朋克猫吗」,然后用检查结果指挥画笔方向。审查员必须能在模糊的草稿上工作(对噪声鲁棒),而且要单独花钱请(额外训练)。
  • Classifier-Free Guidance(分类器自由引导,CFG)= 画家自己就同时会画「有要求的版本」和「没要求的自由版本」,不用请审查员。把两个版本的差异放大叠加——这就是当今所有主流生成模型的做法。

核心公式一句话概括:最终噪声预测 = 无条件预测 + 引导强度 ×(条件预测 − 无条件预测)。引导强度越大,文字要求的影响越强。

为什么「差值」有效? 从信息论角度看,ϵcond−ϵuncond\epsilon_{\text{cond}} - \epsilon_{\text{uncond}} 可以理解为条件 c 对噪声场贡献的「纯净信号」——条件预测里既包含图像本身的结构信息(无论什么提示词,猫的基本形态都得对),也包含提示词特有的语义信息;无条件预测只包含前者。两者相减,剩下的就是「提示词独有的那部分指向力」。乘以 s 后放大,等于人为增强了信噪比。

扩散模型(详见扩散模型)本身可以训练成条件模型——给定文本提示 c,模型预测噪声 ϵ(x(t),t,c)\epsilon(x(t), t, c)(其中 x(t)x(t) 是第 t 步的带噪潜变量,t 是扩散时间步,c 通常由 CLIP/T5 等文本编码器编码成的条件向量)。但实验发现,直接用条件模型采样,生成结果对提示的遵循度往往不够:模型会生成「大致相关但细节跑偏」的图像。

这背后有一个深层原因:训练时,条件信号 c 只是与 x(t)x(t) 一起作为输入送入网络,模型学到的条件分布 p(x∣c)p(x \mid c) 是「在所有可能的 c 上的平均行为」。当 c 是一个长而具体的提示词时,模型并没有动力去严格区分「赛博朋克猫」和「水彩猫」——只要输出的整体统计上符合「猫」即可。引导技术通过在采样时人为放大条件信号的影响,让结果更忠实地贴合输入。

数学视角:引导本质上是修改了采样所依据的分布。原始条件采样从 p(x∣c)p(x \mid c) 抽样;CFG 实际上是从一个被「锐化」的分布 p(x∣c)s⋅p(x)1−sp(x \mid c)^s \cdot p(x)^{1-s}(近似,s≥1s \geq 1)抽样。当 s>1s > 1 时,p(x∣c)p(x \mid c) 的高概率区域被放大、低概率区域被抑制,效果类似于把分布的峰值「削尖」,让样本更集中在与 c 最相关的区域——代价是牺牲多样性(峰值变窄)。

Classifier Guidance:用分类器梯度引导

Section titled “Classifier Guidance:用分类器梯度引导”

Dhariwal 和 Nichol 在 2021 年的论文「Diffusion Models Beat GANs on Image Synthesis」中提出 Classifier Guidance。这也是首次证明扩散模型在图像生成质量上全面超越 GAN(生成对抗网络)的里程碑工作。核心思路:额外训练一个图像分类器,该分类器能在带噪声的中间状态 x(t) 上识别图像内容;采样时,用分类器对 x(t) 的梯度来修正去噪方向,让生成图像朝着「更符合条件 c」的方向走。

数学上,利用 Bayes 公式 log⁡p(x∣c)=log⁡p(c∣x)+log⁡p(x)−log⁡p(c)\log p(x \mid c) = \log p(c \mid x) + \log p(x) - \log p(c),条件去噪的得分函数(Score Function,即 ∇xlog⁡p(x)\nabla_x \log p(x),指向数据密度增长最快的方向)可以分解为:

∇xlog⁡p(x∣c)=∇xlog⁡p(x)+∇xlog⁡p(c∣x)\nabla_x \log p(x \mid c) = \nabla_x \log p(x) + \nabla_x \log p(c \mid x)

第一项由无条件扩散模型给出,第二项正是分类器 p(c | x) 对 x 的梯度。因此每一步去噪时,对均值做如下修正:

μguided=μ+s⋅gradclassifier\mu_{\text{guided}} = \mu + s \cdot \text{grad}_{\text{classifier}}

其中 mean 是扩散模型原本预测的去噪均值,gradclassifier=∇x(t)log⁡p(c∣x(t))\text{grad}_{\text{classifier}} = \nabla_{x(t)} \log p(c \mid x(t)) 是分类器 log 概率对输入的梯度(指向「让分类器更确信这是类别 c」的方向),s 是引导强度(guidance scale)。

缺点:

  • 需要额外训练分类器:扩散模型本身已经很大(数十亿参数),再训练一个分类器增加工程成本,且分类器需要和扩散模型同步迭代。
  • 分类器必须对噪声鲁棒:因为采样过程中输入是带噪声的 x(t)(t 大时几乎全是噪声),普通分类器(在干净图像上训练的)完全无法工作——它的梯度几乎是随机方向。需要专门在「各种噪声级别」的加噪数据上训练分类器,复杂度高。
  • 梯度可能不稳定:高噪声阶段分类器几乎无法识别内容,梯度噪声大,容易导致伪影(Artifact,即图像中不自然、不合理的人工痕迹)。
  • 对多模态条件(如自由文本)支持差:分类器天然适合处理离散类别(如「猫 / 狗 / 鸟」),但很难定义一个能判断「这张图是否精确符合一段自由文本」的分类器。这是 Classifier Guidance 在文生图领域被淘汰的关键原因。

Classifier-Free Guidance:无需分类器的引导

Section titled “Classifier-Free Guidance:无需分类器的引导”

Ho 和 Salimans 在 2022 年的论文「Classifier-Free Diffusion Guidance」中提出了更优雅的方案——Classifier-Free Guidance(CFG)。核心思想:不训练额外分类器,而是让同一个扩散模型同时学习条件和无条件两种噪声预测。作者敏锐地观察到:分类器梯度 ∇_x log p(c | x) 所提供的「条件修正信息」,其实可以用「条件预测与无条件预测之差」来近似——只要模型自己同时具备这两种预测能力。

训练时,以一定概率(通常 10%-20%,实践中 SD 系列 p_uncond ≈ 0.1-0.15,Imagen 等用 0.1)把条件 c 替换为空(即 dropout 掉条件,Condition Dropout,训练时随机把条件输入置为空向量 / 可学习占位符 <null>),让模型同时学会:

  • ϵcond=ϵ(x(t),t,c)\epsilon_{\text{cond}} = \epsilon(x(t), t, c):有条件时的噪声预测
  • ϵuncond=ϵ(x(t),t,null)\epsilon_{\text{uncond}} = \epsilon(x(t), t, \text{null}):无条件时的噪声预测

由于是同一个网络的两条前向通路,它们共享全部权重,只是条件输入不同。代价仅仅是训练时每个 batch 里有少量样本被「丢弃条件」——几乎不增加训练成本,推理时也只需多做一次前向传播。

推理时,用如下组合公式得到最终噪声预测:

ϵfinal=ϵuncond+s⋅(ϵcond−ϵuncond)\epsilon_{\text{final}} = \epsilon_{\text{uncond}} + s \cdot (\epsilon_{\text{cond}} - \epsilon_{\text{uncond}})

其中 s 是 guidance scale。可以把公式改写为:

展开形式(注意第一项系数为 1−s1-s,即无条件预测的权重):

ϵfinal=(1−s)⋅ϵuncond+s⋅ϵcond\epsilon_{\text{final}} = (1 - s) \cdot \epsilon_{\text{uncond}} + s \cdot \epsilon_{\text{cond}}

即 wuncond=1−1/sw_{\text{uncond}} = 1 - 1/s、wcond=1/sw_{\text{cond}} = 1/s,整体乘以 ss(等价于上式)。

也可以写成「外推」(Extrapolation)形式——当 s>1s > 1 时,ϵfinal\epsilon_{\text{final}} 实际上是沿着「从无条件指向条件」的方向越过 ϵcond\epsilon_{\text{cond}} 继续延伸,这就是「引导」一词的几何含义。

直观理解:(ϵcond−ϵuncond)(\epsilon_{\text{cond}} - \epsilon_{\text{uncond}}) 是「有条件比无条件多出来的那部分信息」——也就是条件 c 的纯影响。把这个差异乘以 s 后叠加回去,就放大了条件的作用。

为什么比 Classifier Guidance 更好:

  • 无需训练额外分类器,工程成本几乎为零(只需在训练时随机丢弃条件,p_uncond 是唯一新增超参数)。
  • 不依赖噪声分类器的鲁棒性,稳定性更高。
  • 天然支持任意条件类型:文本、类别、图像、深度图、骨架图都可以,只要条件能被编码成向量喂给模型——这是 CFG 统治文生图领域的根本原因。
  • 已成为 Stable Diffusion、DALL-E、Midjourney、Sora、FLUX 等几乎所有主流生成模型的标准配置。

推理成本提示:CFG 要求每步做两次前向传播(条件 + 无条件),显存和算力翻倍。后续的 Guidance Distillation(见下文)正是为了消除这一开销而提出的。

guidance scale(s,也称 CFG scale)是 CFG 中最关键的超参数,直接决定生成结果的风格与质量:

  • s = 1:等价于 eps_final = eps_cond,即纯条件模型,没有任何引导放大。生成结果多样性高,但对提示的遵循度一般。适合需要创意发散的场景。
  • s = 7 ~ 8:文生图的黄金区间。文本对齐度和图像多样性达到良好平衡,是 Stable Diffusion、Midjourney 等的默认值。
  • s 大于 15:文本遵循度极高,但图像开始出现过饱和色彩、模式坍缩(Mode Collapse,即生成结果趋同、丧失多样性,所有图像长得越来越像,细节僵硬、出现伪影)。极高 s(大于 20)会生成近乎单色的怪异图像。

不同模型的最优区间不同,这取决于模型训练时见过的 CFG 强度分布:

模型族推荐 guidance scale备注
SD 1.5 / SD 2.17 ~ 9经典 U-Net 架构,7.5 是社区默认
SDXL3 ~ 7训练时使用了较低 CFG 蒸馏,官方推荐 5 左右
SD3 / FLUX.11 ~ 4(guidance distillation 后可省略 CFG)Rectified Flow 训练,对高 CFG 更敏感
Imagen 系列7 ~ 10谷歌内部默认较高
视频模型(HunyuanVideo / CogVideoX / Wan 2.1)5 ~ 7帧间一致性要求高,过高会闪烁

2025 提示:FLUX.1 和 SD3 由于采用了 Guidance Distillation(见下文),很多情况下可以完全关闭 CFG(s = 1,只跑一次前向),速度翻倍而质量损失很小。这是 2024-2025 年的一个重要趋势。

引导强度本质上是在文本遵循度(Prompt Adherence)和样本多样性(Sample Diversity)之间做权衡:

  • 高 guidance:每张图都精确反映提示词,但所有图趋同——多样性下降,覆盖不了提示词没说到的细节空间。图像色彩趋于饱和、对比度过高。极端情况下还会出现「光晕」「边缘锐化过度」等伪影。
  • 低 guidance:生成结果更自然、多样,但可能偏离提示词,出现「答非所问」的情况。

这也是为什么 s = 7 ~ 8 成为经验上的最优区间——在这个区间内,文本对齐度足够好,同时保留了合理的多样性与自然感。

深层原因——off-manifold 问题:CFG++(见下文)的作者指出,高 CFG 的种种毛病(过饱和、模式坍缩、DDIM 不可逆)并非扩散模型固有的缺陷,而是传统 CFG 在噪声空间做外推,会把样本推到数据流形(Data Manifold,即真实图像所在的低维曲面)之外——off-manifold 的样本既不像真实图像,也难以被后续步骤拉回来。这是理解 2024 年以后 CFG 改进的关键线索。

传统 CFG 自 2022 年沿用至今,虽然简单有效,但「高 CFG 导致过饱和、双倍推理开销、DDIM 不可逆」等问题长期困扰社区。2024-2026 年涌现了一批重要改进,正在重塑引导技术栈。

CFG++:在数据空间而非噪声空间做引导

Section titled “CFG++:在数据空间而非噪声空间做引导”

CFG++(Chung et al., NeurIPS 2024)提出了一个「surprisingly simple fix」(令人惊讶地简单的修正)。

核心洞察:传统 CFG 的外推发生在 噪声预测空间(epsilon-space),而 eps_cond − eps_uncond 在 epsilon 空间的差值并不天然落在数据流形上——s 越大,偏离越严重。CFG++ 改为在 数据预测空间(x0-space) 做引导:

传统 CFG(epsilon 空间):

ϵfinal=ϵuncond+s⋅(ϵcond−ϵuncond)\epsilon_{\text{final}} = \epsilon_{\text{uncond}} + s \cdot (\epsilon_{\text{cond}} - \epsilon_{\text{uncond}})

CFG++(x0x_0 空间,对预测的干净图像 x0x_0 做组合,再换算回噪声),其中 s′s' 通常 1∼21 \sim 2:

x0,final=x0,uncond+s′⋅(x0,cond−x0,uncond)x_{0,\text{final}} = x_{0,\text{uncond}} + s' \cdot (x_{0,\text{cond}} - x_{0,\text{uncond}})

其中 x0_cond / x0_uncond 是模型从带噪 x(t) 直接预测出的「去噪后的干净图像」(很多 flow-matching / rectified-flow 模型如 SD3、FLUX 默认就是 x0 预测)。

带来的改进:

  • 更低的 guidance scale:CFG++ 的等效 s’ 通常只需 1 ~ 2(而非 7 ~ 8),就能达到甚至超过传统 CFG s=7 的文本遵循度。
  • 显著减少过饱和与模式坍缩:因为组合发生在数据流形附近,样本不容易被推到流形之外。
  • DDIM 逆变换重新可用:传统 CFG 下高 scale 会导致 DDIM inversion 失败(图像编辑的痛点),CFG++ 恢复了可逆性,对图像编辑工作流意义重大。
  • 可与高阶求解器无缝结合:CFG++ 的条件-无条件插值在低 scale 下平滑,DPM-Solver、UniPC 等高阶采样器表现更稳定。

CFG++ 已被多个开源项目(ComfyUI 节点、Diffusers 实验 API)集成,是 2024 年最具影响力的 CFG 变体之一。论文:arXiv:2406.08070。

Autoguidance:用「弱化版自己」做无条件预测

Section titled “Autoguidance:用「弱化版自己」做无条件预测”

Autoguidance(Karras 等,EDM 作者团队,ICLR 2025)从另一个角度反思 CFG:传统 CFG 用「条件 dropout 训练出的无条件分支」作为基线,但这个基线和条件分支共享同一个模型容量,两者预测的差异可能不够「纯粹」地反映条件影响。

Autoguidance 的思路:用同一个模型的弱化版本(如更小的网络、更低分辨率、或量化后的版本)作为无条件预测器。因为弱化版和完整版来自同一模型族、共享同一训练分布,两者的差异更准确地隔离了「条件 c 的纯效应」。

ϵfinal=ϵweak+s⋅(ϵfull−ϵweak)\epsilon_{\text{final}} = \epsilon_{\text{weak}} + s \cdot (\epsilon_{\text{full}} - \epsilon_{\text{weak}})

惊人效果:Autoguidance 允许使用极高的 guidance scale(100 以上)而不出现传统 CFG 的过饱和——因为弱化版到完整版的差异方向天然更贴近数据流形。这意味着文本遵循度可以推到传统 CFG 无法企及的程度。

代价是需要维护一个弱化版模型(多占一份权重,但比独立分类器轻得多)。论文:arXiv:2407.06313。

Guidance Distillation:把引导「蒸馏」进模型,推理零开销

Section titled “Guidance Distillation:把引导「蒸馏」进模型,推理零开销”

Guidance Distillation(Meng 等,2023;Imagen 团队;SD3 / FLUX 普遍采用)解决 CFG 的另一个痛点——推理时双倍前向开销。

思路:把 guidance scale 当作模型的一个额外输入条件,训练时让模型直接学习「给定 scale = s 时的等效噪声预测」,而非要求推理时显式做 eps_uncond + s*(eps_cond − eps_uncond) 的两次前向。

训练流程简述:

  1. 用普通 CFG 训练好的 teacher 模型,在大量 (x(t), t, c, s) 组合上生成 teacher 的 CFG 输出 eps_teacher。
  2. 训练一个 student 模型,输入 (x(t), t, c, s),目标是最小化 ||eps_student − eps_teacher||²。
  3. student 学会了「内化」CFG,推理时只需一次前向传播,s 直接作为参数传入。

实际影响:

  • FLUX.1、SD3 默认训练时含 guidance distillation,社区实践中 s = 1(关闭传统 CFG)也能获得良好结果,推理速度翻倍。
  • SDXL Turbo / Lightning、DMD2 等一步 / 少步蒸馏模型进一步把 CFG 和步数蒸馏结合,实现单步生成。
  • 代价:student 模型对训练时未覆盖的 s 值泛化较弱,灵活性略低于原生 CFG。

Preference Alignment:用偏好对齐减少对高 CFG 的依赖

Section titled “Preference Alignment:用偏好对齐减少对高 CFG 的依赖”

Diffusion-DPO(Wallace 等,2024)及后续的 CFG-DPO、ReFL、DragDiff 等方法借鉴大语言模型的 RLHF(人类反馈强化学习)思路,用人类偏好数据直接微调扩散模型。效果是:模型在低 CFG 下也能严格遵循提示词,从而规避高 CFG 的副作用。

这一方向在 2025 年快速演进,与 CFG++、Autoguidance 形成「降低 CFG 依赖」的共同趋势。详见扩散模型 DPO。

Guidance Scale 影响曲线(传统 CFG)

Section titled “Guidance Scale 影响曲线(传统 CFG)”
import torch
from diffusers import StableDiffusionPipeline
# 加载 Stable Diffusion 1.5,半精度节省显存
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16
).to("cuda")
prompt = "a cyberpunk cat, neon lights, highly detailed"
# 对比三种 guidance scale 的效果
for scale in [1.0, 7.5, 18.0]:
generator = torch.Generator("cuda").manual_seed(42) # 固定种子
image = pipe(
prompt,
num_inference_steps=20,
guidance_scale=scale, # 关键参数:CFG 强度
generator=generator,
).images[0]
image.save(f"cfg_{scale}.png")
print(f"scale={scale}: 已保存")
# scale=1.0 画面发散、不太贴合提示词
# scale=7.5 文本对齐与画质最佳(推荐默认值)
# scale=18.0 色彩过饱和、细节僵硬、出现伪影

关闭 CFG 的单次前向(FLUX / SD3 风格)

Section titled “关闭 CFG 的单次前向(FLUX / SD3 风格)”

经过 guidance distillation 的模型可以省略双倍前向,速度直接翻倍:

from diffusers import FluxPipeline
import torch
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-schnell", torch_dtype=torch.bfloat16
).to("cuda")
# FLUX.1-schnell 已蒸馏,guidance_scale=1(无 CFG)+ 少步即可
image = pipe(
"a cyberpunk cat, neon lights, highly detailed",
num_inference_steps=4, # 蒸馏后只需 4 步
guidance_scale=0.0, # 关闭 CFG,单次前向
generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("flux_no_cfg.png")
# 由于 guidance distillation,4 步 + 无 CFG 仍保持高文本遵循度
  • 默认从 s = 7 ~ 8 开始:这是绝大多数文生图模型的最佳区间,先在这个值下调整 prompt 和采样器,效果不满意再调 CFG。
  • s = 1 适合创意发散:当你想要模型自由发挥、生成多样结果时(如头脑风暴阶段),降低 CFG 到 1 ~ 3。
  • 高 CFG 需搭配足够步数:s 大于 10 时,建议把采样步数提高到 30 步以上,否则伪影会更明显——高引导放大了每步的修正量,需要更细的去噪粒度来配合。
  • 高 CFG 容易过饱和:如果发现色彩过于浓艳、对比度失真,优先降低 CFG 而非调其他参数。也可在 ComfyUI 中接入色彩校正节点补救——详见ComfyUI 与节点式生成。
  • 负向提示词依赖 CFG:负向提示词(Negative Prompt)本质上是把无条件预测替换为「负条件预测」,配合 CFG 公式实现「远离不想要的内容」:eps_final = eps_neg + s*(eps_cond − eps_neg)。没有 CFG 就没有负向提示词机制。
  • 视频生成对 CFG 更敏感:帧间一致性(Temporal Consistency,即相邻帧在视觉上连贯不闪烁)要求高,过高的 CFG 会导致每帧过拟合提示词而帧间闪烁——详见视频生成。2025 年的开源视频模型(HunyuanVideo、CogVideoX、Wan 2.1)普遍使用 5 ~ 7 的 CFG,部分还采用「双 CFG」(文本条件和其他条件分别引导)来精细控制。
  • SDXL 推荐更低 CFG:SDXL 训练时默认 CFG 较低,官方推荐 s = 2 ~ 5 区间即可获得良好效果,高 CFG 反而过拟合。
  • FLUX / SD3 可尝试关闭 CFG:得益于 guidance distillation,这些模型在 s = 0/1(单次前向)下质量已足够,速度翻倍。需要精细控制时再开启传统 CFG。
  • 优先尝试 CFG++ / Autoguidance:如果你的工作流支持,用 CFG++(x0 空间组合)可以在更低等效 scale 下获得更干净的高遵循度结果,尤其适合图像编辑等需要 DDIM 可逆性的场景。
  • Stable Diffusion 系列:所有 SD 模型(SD 1.5、SDXL、SD3)的 UI 都有 guidance_scale 滑块,默认 7.5(SDXL 默认 5)。详见主流图像生成模型对比。
  • FLUX.1(2024,Black Forest Labs):采用 Rectified Flow + Guidance Distillation,schnell 版本可在 s=0、4 步下生成高质量图像,是 2024-2025 年开源图像生成的标杆。
  • Stable Diffusion 3(2024):MMDiT(Multimodal Diffusion Transformer)架构,使用三个文本编码器(CLIP-L、CLIP-G、T5-XXL),训练时嵌入 guidance scale,推理可省略 CFG。
  • Midjourney:通过 prompt 后缀参数(如 --stylize、--chaos)间接控制引导强度,底层原理与 CFG 一致。
  • DALL-E 3 / Sora / GPT-Image(OpenAI,2024-2025):使用 CFG 并结合 RLHF 进一步优化文本遵循——详见语言模型演进。
  • ControlNet / IP-Adapter:这些可控生成方法在 CFG 框架下工作,额外的条件信号(深度图、姿态、风格图像)通过引导叠加进来——详见ControlNet 与可控生成。
  • 文生视频(AnimateDiff / SVD / HunyuanVideo / CogVideoX / Wan 2.1):CFG 控制动画对文本提示的遵循,需在帧间稳定性与文本对齐间权衡——详见AnimateDiff 与 AI 动画。2025 年的 HunyuanVideo(腾讯开源,13B)和 Wan 2.1(阿里开源)均使用 CFG,并探索了「流匹配 + CFG」的视频生成范式。
  • 扩散模型 DPO / Preference Alignment 训练:Diffusion-DPO 及其 2025 后续(CFG-DPO、ReFL 等)通过偏好对齐减少对高 CFG 的依赖,让低 CFG 下也有良好的文本遵循——详见扩散模型 DPO。
类库语言说明
diffusersPythonHuggingFace 扩散模型库,guidance_scale 参数直接传入 pipeline;支持 FLUX / SD3 / CFG 实验
ComfyUIPython节点式工作流,CFG 通过 KSampler 节点的 cfg 参数控制;社区已有 CFG++ / Autoguidance 自定义节点
AUTOMATIC1111 WebUIPythonStable Diffusion 主流前端,UI 提供 CFG Scale 滑块
stable-diffusion (Stability AI)Python官方实现,含 Classifier Guidance 与 CFG 两种引导模式
k-diffusionPythonKohya 采样器库,底层支持 CFG 噪声预测组合
ComfyUI-Advanced-guidancePython社区插件,提供 CFG++、Autoguidance、动态 CFG 等高级引导选项
术语英文解释
引导Guidance采样时放大条件信号影响的技术,提升生成结果与输入条件的对齐度
分类器引导Classifier Guidance用额外训练的噪声分类器梯度修正去噪方向的引导方法
分类器自由引导Classifier-Free Guidance (CFG)无需额外分类器,同模型学习条件和无条件预测并组合的引导方法
引导强度Guidance Scale / s控制条件影响放大倍数的超参数,典型值 7 ~ 8(传统 CFG)
条件预测Conditional Prediction给定条件 c 时模型预测的噪声 eps(x(t), t, c)
无条件预测Unconditional Prediction条件为空时模型预测的噪声 eps(x(t), t, null)
条件 dropoutCondition Dropout训练时随机丢弃条件(通常 10%-20%),使模型同时学会无条件预测
模式坍缩Mode Collapse生成结果趋同、丧失多样性的现象,高 guidance 时容易出现
负向提示词Negative Prompt通过 CFG 公式让模型「远离」指定内容,依赖引导机制工作
文本遵循度Prompt Adherence生成结果与输入提示词的匹配程度,随 guidance 升高而提升
得分函数Score Function∇_x log p(x),对数概率密度的梯度,指向数据密度增长最快的方向
数据流形Data Manifold真实数据(如图像)在高维空间中聚集的低维曲面
CFG++CFG++在 x0(数据预测)空间而非 epsilon(噪声预测)空间做引导的改进方法,降低等效 scale,恢复可逆性
AutoguidanceAutoguidance用同一模型的弱化版(小模型 / 量化版)作为无条件基线的引导方法,允许极高 scale
引导蒸馏Guidance Distillation把 guidance scale 作为模型输入条件训练,推理时单次前向,省去双倍开销
帧间一致性Temporal Consistency视频生成中相邻帧在视觉上连贯不闪烁的程度
  • Dhariwal & Nichol,「Diffusion Models Beat GANs on Image Synthesis」(ICML 2021):首次证明扩散模型在图像生成上超越 GAN,并提出 Classifier Guidance,用分类器梯度引导采样方向。
  • Ho & Salimans,「Classifier-Free Diffusion Guidance」(NeurIPS 2021 Workshop):提出 Classifier-Free Guidance,无需额外分类器,训练时随机丢弃条件即可,成为当今生成模型的标准方案。
  • Ho et al.,「Denoising Diffusion Probabilistic Models」(NeurIPS 2020):DDPM 原始论文,奠定了扩散模型的条件生成框架,是引导技术的基础——详见扩散模型。
  • Rombach et al.,「High-Resolution Image Synthesis with Latent Diffusion Models」(CVPR 2022):Stable Diffusion 论文,采用 CFG 作为默认引导方案,让 CFG 成为业界事实标准。
  • Karras et al.,「Elucidating the Design Space of Diffusion-Based Generative Models」(NeurIPS 2022):EDM 论文,系统分析了引导强度对生成质量的影响,提出更稳定的采样框架——Autoguidance 正是同一作者的后续工作。
  • Podell et al.,「SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis」(ICLR 2024):SDXL 论文,讨论了在大模型上使用更低 CFG 的训练与推理策略。
  • Chung et al.,「CFG++: Manifold-constrained Classifier Free Guidance for Diffusion Models」(NeurIPS 2024):提出在 x0 空间做引导的 CFG++,显著降低等效 guidance scale、减少过饱和、恢复 DDIM 可逆性。arXiv:2406.08070。
  • Karras et al.,「Autoguidance: Accelerated Sampling of Diffusion Models with a Variable Number of Guidance Terms」(ICLR 2025):用模型自身弱化版做无条件基线,允许极高 guidance scale 而不饱和,是 EDM 团队对引导技术的最新贡献。
  • Meng et al.,「On Lightweight Diffusion Training with Distilled Guidance」(2023):Guidance Distillation,把引导蒸馏进模型,FLUX / SD3 等广泛采用,使推理可省略双倍前向。
  • Wallace et al.,「Diffusion Model Alignment Using Direct Preference Optimization」(2024):Diffusion-DPO,用偏好对齐减少对高 CFG 的依赖——详见扩散模型 DPO。
  • Esser et al.,「Scaling Rectified Flow Transformers for High-Resolution Image Synthesis」(SD3 / MMDiT, 2024):SD3 论文,Rectified Flow + Guidance Distillation 的代表作,奠定了 2024-2025 年「低 CFG / 无 CFG」趋势。