Classifier-Free Guidance:让扩散模型更听话

它解决什么问题?

扩散模型从噪声逐步生成图像。仅靠无条件采样时,画面可能比较自由;加入文本条件后,我们希望它更遵循提示词,这就是 guidance 要解决的问题。

核心思路

训练时,模型有时接收文本条件,有时把条件置空。采样时同时得到两次预测:

  • 无条件预测:ε_uncond
  • 有条件预测:ε_cond

再用下面的公式把两者拉开:

ε = ε_uncond + s · (ε_cond - ε_uncond)

其中 s 是 guidance scale。它越大,结果通常越贴合提示词;但过大也可能导致画面过饱和、细节僵硬或失真。

怎么理解?

可以把无条件预测看成“模型本来想怎么画”,把有条件预测看成“看了提示词后想怎么画”。CFG 用两者的差值强化提示词方向。

一句话总结

CFG = 不使用额外分类器,通过“有条件预测 − 无条件预测”来增强文本控制力。实际使用时,guidance scale 需要在服从提示词和画面自然之间取平衡。