Guidance Scale
Guidance Scale(引导尺度)是扩散模型采样阶段的一个超参数,用来调节条件生成结果与给定条件(如文本提示)的贴合程度。在无分类器引导(Classifier-Free Guidance)中,它常记作 $w$,本质上是条件预测与无条件预测之差的放大系数;取值越大,生成内容越贴近提示,但图像质量与多样性往往随之下降。该参数已成为文生图等扩散模型中最常用、也最需要人工调校的采样控制项之一。
定义
Guidance Scale 是条件扩散模型采样时使用的一个实数超参数,用来控制模型对条件信息(文本提示、类别标签等)的服从强度。在采用无分类器引导的模型中,它通常以 $w$ 或 guidance_scale 的名称出现,被定义为一个大于 1 的放大系数,用于把条件噪声预测与无条件噪声预测的差值按倍数叠加到无条件预测上[1][2]。
当该值等于 1 时,引导不起作用,模型只按普通的条件采样运行;只有取值大于 1 时,引导机制才被启用[1][2]。因此它并不是模型权重的一部分,而是推理阶段由使用者设定的外部参数。
原理
引导的数学基础来自贝叶斯意义上的分数修正。条件得分可以拆成无条件得分与条件对数似然梯度之和,引入指数 $\gamma$ 后相当于对条件分布做锐化,即把 $p(y \mid x_t)$ 抬到 $\gamma$ 次方[3]。分类器引导(Dhariwal 等,2021 年)用额外训练的分类器提供这一梯度,而无分类器引导改用同一模型在有空条件与无条件两种输入下的预测之差近似该方向[4]。
工程实现上最常见的写法是 $\hat{\epsilon} = \epsilon_{\text{uncond}} + w \cdot (\epsilon_{\text{cond}} - \epsilon_{\text{uncond}})$,即先分别对空提示与真实提示做一次噪声预测,再把两者之差按 $w$ 倍加到无条件预测上[5][6]。由于每步都要多算一次无条件预测,启用引导会使单次采样所需的模型前向计算量接近翻倍[4]。
flowchart LR
A[空条件提示] --> B[无条件噪声预测]
C[文本提示] --> D[条件噪声预测]
B --> E[差值 条件减无条件]
D --> E
E --> F[乘以引导尺度 w]
B --> G[相加]
F --> G
G --> H[用于去噪采样步]
发展历程
2021 年,Dhariwal 与 Nichol 在扩散模型架构研究中提出分类器引导,用分类器梯度调节多样性与保真度的取舍,并以引导强度作为可调参数,在 ImageNet 128×128 上取得 2.97 的 FID[7]。这一方法需要额外训练一个能在噪声数据上工作的分类器,训练流程因此变复杂[4]。
2022 年 7 月 26 日,Jonathan Ho 与 Tim Salimans 提交《Classifier-Free Diffusion Guidance》,提出联合训练条件与无条件两个模型、在采样时混合两者的得分估计,从而不再依赖分类器,也能获得类似的保真度与多样性权衡[8][9]。此后主流扩散工具库把该混合权重统一命名为 guidance_scale,按 Imagen 论文中公式 2 的 $w$ 来定义,并把 7.5 一类的数值作为默认取值[1][2]。
引导尺度取值偏大时带来的过曝问题也推动了后续改进。Lin 等人在 2024 年的 WACV 论文中指出,终端信噪比不为零等设计缺陷会让较大的引导权重引起图像过曝,并提出对无分类器引导结果重新缩放,经验取值为 $w=7.5$、缩放系数 $\phi=0.7$[10][11]。
研究还尝试把固定常数改为随时间变化的调度。2025 年的一项工作提出退火式引导调度器,根据每步的条件噪声信号动态调整引导尺度,在不增加显存与激活开销的前提下替换常用的固定引导,以缓解其对参数取值敏感的问题[12]。此外还出现了多阶段应用引导、只用较差版本的自引导等变体[13]。
应用
引导尺度最典型的用途是文生图与条件图像生成。在 Stable Diffusion 一类潜空间扩散模型的推理接口中,guidance_scale 是常规参数,默认值常见为 7.5,调用者通过调整它来在提示贴合度与画面质量之间取舍[2]。不同模型的默认取值并不一致,例如 Chroma 管线的默认值为 5.0[1]。
该参数也用于图像编辑与超分等条件任务,例如图像到图像的变换、修复与超分辨率管线同样以引导尺度控制对条件输入的跟随程度[14][15]。在一些实现中,负提示需要配合大于 1 的引导系数才会真正触发无分类器引导计算,因此该参数也起到了开关作用[16]。
围绕该参数还衍生出辅助工具,例如对引导系数施加归一化与余弦调度等变换,或在扩散时间步上按计划调整其数值,以便在采样过程中平滑地改变引导强度[6]。对引导进行逐层控制、跳过部分层的引导等方法,也把单一标量扩展成了按层分配的多组尺度[5]。
局限
引导尺度的调节本质上是保真度与多样性之间的取舍。公开文档明确指出,提高引导尺度会让生成图像与文本提示联系更紧密,但通常以画面质量下降为代价,因此并不存在对所有提示都最优的取值[1][2]。
取值过大还会引起画面过曝、像素饱和等具体失真。Imagen 采用动态阈值处理来抑制大引导权重下的饱和像素,后续工作则发现终端信噪比接近零时引导对参数异常敏感,并用重新缩放来缓解过曝[17][10]。
从计算角度看,无分类器引导需要额外的无条件前向计算,采样成本高于不启用引导的情形[4]。同时,同一数值在不同模型、不同采样器与不同噪声调度下的效果并不一致,这也是出现逐时间步调度、逐层引导等改进方案的原因[12][5]。
参见
参考资料
- chroma [引用日期2026-10-29]
- pcl.ac.cn 上的网页 [引用日期2026-10-29]
- Lecture12 [引用日期2026-10-29]
- Classifier-Free Diffusion Guidance [引用日期2026-10-29]
- width (`int`, *optional*, defaults to self [引用日期2026-10-29]
- cf-guidance [引用日期2026-10-29]
- Diffusion Models Beat GANs on Image Synthesis [引用日期2026-10-29]
- Classifier-Free Diffusion Guidance [引用日期2026-10-29]
- dblp.org 上的网页 [引用日期2026-10-29]
- thecvf.com 上的网页 [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- siggraph.org 上的网页 [引用日期2026-10-29]
- pipeline_if_inpainting [引用日期2026-10-29]
- pipeline_if_img2img_superresolution [引用日期2026-10-29]
- qwenimage [引用日期2026-10-29]
- pcl.ac.cn 上的网页 [引用日期2026-10-29]