模型与参数

CFG scale 怎么调:把提示词推多狠

又称 what is cfg scale, guidance scale, classifier free guidance, 提示词引导强度, cfg 值

CFG scale 是无分类器引导(classifier free guidance)的强度,它决定模型被朝着你的提示词推多远、离「不给提示词时它本来会画的东西」多远。数值低画面松软发灰,数值高画面死板高反差,而每个模型家族都有自己的合理区间。

这个数到底在控制什么

扩散模型在每一个去噪步骤里其实做了两次预测:一次带着你的提示词,一次什么条件都不给。无分类器引导取这两者之差,然后放大它。CFG scale 就是那个放大倍数。设成 1,你拿到的是原样的条件预测;设成 7,提示词方向被夸大了七倍,画面就更用力地往「符合你这句话」的方向倒。

这个视角能解释本页后面所有内容:这个设置不增加信息,它只是把模型已经算出来的一个方向夸大,而夸大到某个程度就会变成变形。

各家的可用区间

模型家族常用值备注
SD 1.56 到 9能扛高值,但很依赖反向提示词
SDXL5 到 87 是安全默认
Flux dev 一类2.5 到 4蒸馏引导,含义已不同
turbo / lightning1 到 2基本是定值,别往上调
视频模型4 到 7高值会放大运动瑕疵

这些是起点,不是设定值。唯一靠得住的办法是锁定种子、只改引导这一项,在同一条提示词上跑一个小阶梯,比如 3、5、7、9,然后自己看。

看图反推数值

给低了的样子是「不敢下笔」:颜色发灰、边缘发软、构图只对了一半、背景往抽象漂。多数人会把这误判成提示词太弱,于是开始加词,结果更糟。

给高了的样子是「烧焦」:饱和度溢出、高光死白、主体周围一圈暗描边、皮肤塑料、手指变形。视频上表现为抖动和跳变,因为引导是在一帧一帧上各自被夸大的,而这些帧本来需要彼此自洽。

两个极端单看都不好判断,并排看就一目了然,这也是「每个模型跑一次阶梯并记住结论」值得做的原因。

什么时候它帮不上忙

三种情况下调这个旋钮纯属浪费。一是知识缺失:权重没学过某个概念,放大多少倍也变不出来。二是从句被丢:一条塞了六个互相竞争指令的提示词,总会有几条在注意力稀释里消失,而引导只会放大活下来的那个方向,不会把丢掉的找回来。三是蒸馏模型,那里的值在训练时就定了,字段只是装饰。

值得养成的习惯是:把 CFG scale 当成「每个模型找一次就固定下来」的常量。真正需要逐次改的是提示词内容、种子和步数。同一个模型上几乎没人需要动它第二次,而把它当成创作旋钮来玩,正是一个下午跑出四十张同款烧焦图的原因。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

A brass diving helmet on a wooden workbench, single window light, dust in the air, muted colours, 35mm film

试一下:CFG Scale

打开生成器,参数已经预填好。

常见问题

CFG 设多少算合适?
没有通用数字,只有「每个模型家族一个数字」。SD 1.5 和 SDXL 大约 6 到 8;Flux 那类蒸馏引导 2.5 到 4;turbo / lightning 权重就是 1;多数视频模型 4 到 7。一次只改一个设置,并且固定种子来对比。
为什么我的图颜色发艳、高光烧掉了?
这是引导给太高的典型过冲:颜色溢出、高光烧白、主体边缘出现描边、皮肤发蜡。往下降 2,用同一个种子重跑。真需要高反差,就靠提示词里的光线描述去要,不要靠引导强度硬撑。
Flux 或 turbo 模型上调这个有用吗?
作用不一样。蒸馏模型在训练时就把引导烘进去了,所以它要么给你一个含义不同、区间低得多的旋钮,要么干脆不给。turbo 权重上超过 2 左右,通常是在毁画质,而不是让提示词更准。
CFG 和采样步数有什么关系?
高引导每一步朝提示词跳得更远,需要更多步数才稳得住。你把引导调高后画面变得又碎又噪,先加步数,再考虑是不是模型不行。低引导更宽容,用更少的步数就能收敛。
guidance scale 和 CFG scale 是同一个东西吗?
多数界面里是,同一个旋钮两个标签。例外是蒸馏模型:那里叫 guidance 的字段是一个训练学出来的嵌入值,不是真正的无分类器引导,所以熟悉的区间不能照搬。
调高它,模型就会更完整地照做提示词吗?
只在一定范围内。过了那个点,模型是更「字面地」执行,而不是更完整地执行:被丢掉的从句还是丢着,因为那是注意力分配的问题。某个从句一直不生效,该做的是把提示词写短,不是继续往上顶引导。

相关术语