这个数到底在控制什么
扩散模型在每一个去噪步骤里其实做了两次预测:一次带着你的提示词,一次什么条件都不给。无分类器引导取这两者之差,然后放大它。CFG scale 就是那个放大倍数。设成 1,你拿到的是原样的条件预测;设成 7,提示词方向被夸大了七倍,画面就更用力地往「符合你这句话」的方向倒。
这个视角能解释本页后面所有内容:这个设置不增加信息,它只是把模型已经算出来的一个方向夸大,而夸大到某个程度就会变成变形。
各家的可用区间
| 模型家族 | 常用值 | 备注 |
|---|---|---|
| SD 1.5 | 6 到 9 | 能扛高值,但很依赖反向提示词 |
| SDXL | 5 到 8 | 7 是安全默认 |
| Flux dev 一类 | 2.5 到 4 | 蒸馏引导,含义已不同 |
| turbo / lightning | 1 到 2 | 基本是定值,别往上调 |
| 视频模型 | 4 到 7 | 高值会放大运动瑕疵 |
这些是起点,不是设定值。唯一靠得住的办法是锁定种子、只改引导这一项,在同一条提示词上跑一个小阶梯,比如 3、5、7、9,然后自己看。
看图反推数值
给低了的样子是「不敢下笔」:颜色发灰、边缘发软、构图只对了一半、背景往抽象漂。多数人会把这误判成提示词太弱,于是开始加词,结果更糟。
给高了的样子是「烧焦」:饱和度溢出、高光死白、主体周围一圈暗描边、皮肤塑料、手指变形。视频上表现为抖动和跳变,因为引导是在一帧一帧上各自被夸大的,而这些帧本来需要彼此自洽。
两个极端单看都不好判断,并排看就一目了然,这也是「每个模型跑一次阶梯并记住结论」值得做的原因。
什么时候它帮不上忙
三种情况下调这个旋钮纯属浪费。一是知识缺失:权重没学过某个概念,放大多少倍也变不出来。二是从句被丢:一条塞了六个互相竞争指令的提示词,总会有几条在注意力稀释里消失,而引导只会放大活下来的那个方向,不会把丢掉的找回来。三是蒸馏模型,那里的值在训练时就定了,字段只是装饰。
值得养成的习惯是:把 CFG scale 当成「每个模型找一次就固定下来」的常量。真正需要逐次改的是提示词内容、种子和步数。同一个模型上几乎没人需要动它第二次,而把它当成创作旋钮来玩,正是一个下午跑出四十张同款烧焦图的原因。