首页 > 教程攻略 > ai资讯 >Stable Diffusion中CFG有啥用?

Stable Diffusion中CFG有啥用?

来源:互联网 时间:2026-08-16 14:19:16

在玩转Stable Diffusion这类AI绘画工具时,你肯定对一个叫**Classifier-Free Guidance (CFG) Scale**(无分类器引导尺度)的滑杆不陌生。它几乎存在于所有相关的图像生成界面中,专门用来控制AI对你所写提示词的“听话”程度。调高调低,出来的画面可能天差地别。今天,我们就来彻底搞懂这个关键参数背后的原理和用法。

1. CFG到底起什么作用?

光说理论太抽象,我们直接用一组实验来看效果。使用下面这段详细的提示词:

breathtaking, cans, geometric patterns, dynamic pose, Eclectic, colorful, and outfit, full body portrait, portrait, close up of a Nerdy Cleopatra, she is embarrassed, surreal, Bokeh, Proud, Bardcore, Lens Flare, painting, pa vel, sokov
(令人叹为观止、罐头、几何图案、动感姿态、折衷风格、多彩、服装、全身肖像、肖像画、书呆子气质的克利奥帕特拉特写、感到尴尬、超现实、焦外成像效果、自豪、民谣复兴风、镜头光晕、绘画风格)

然后,我们只改变CFG值,看看会发生什么。

结果一目了然:

  • CFG值极低时(比如设为1)

    :AI几乎把提示词当成了“耳边风”,生成的内容非常随机,与文本描述关联甚微。
  • CFG值适中提高到3时

    :提示词中描述的风格和元素开始清晰地显现出来。
  • CFG值达到7或更高时

    :图像内容会高度遵循提示词,但继续提高会导致色彩过度饱和,画面变得刺眼。因此,一个广泛使用的经验区间是

    7到10

    。这个范围通常能在“听话”和“画面自然”之间取得不错的平衡。

2. “CFG=7-10”并非金科玉律

值得注意的是,上面提到的7-10这个“舒适区”主要针对标准扩散模型。当你使用一些为了速度而优化的模型时,规则就变了。

例如,在使用

LCM LoRA

SDXL Turbo

这类快速采样模型时,所需的CFG值要低得多,通常设置在

1到2

之间就能获得很好效果。如果硬套用高CFG,反而可能导致图像质量下降。所以,记住:

看模型下菜碟

3. 什么是“无分类器引导”?

要理解“无分类器引导”(Classifier-Free Guidance),我们得先看看它要解决的问题,以及它的前身——

“分类器引导”

(Classifier Guidance)。

4. 分类器引导:给扩散过程一个“方向”

简单来说,分类器引导是一种技术,它通过给扩散模型输入一个图像标签(比如“猫”),来引导整个生成过程朝着这个标签的方向进行。

那么,这个“引导”的力度如何控制呢?这就引入了

分类器引导尺度

这个参数。我们可以打个比方:

假设模型学过的数据包含“猫”、“狗”、“人”三类图片。如果没有任何引导(尺度为0),模型就会从所有数据中随机采样,可能生成一个模糊的、介于类别之间的东西,比如“一个男孩在摸狗”。

当你施加引导并调高尺度值:

  • 引导尺度较小时

    :生成结果会略微偏向“猫”,但可能还掺杂其他特征。
  • 引导尺度很大时

    :模型会生成一个非常明确、典型的“猫”,排除其他任何可能的解释。

技术上,这个尺度值相当于一个乘数,放大了模型朝着特定标签数据分布的“偏移力”。

5. 无分类器引导:化繁为简的进化

分类器引导效果拔群,但它有个麻烦:需要额外训练一个分类器模型来提供引导,增加了训练的复杂度和成本。

于是,“无分类器引导”被提出来了。正如其名,它

不需要那个单独的分类器

。研究者想到了一个巧妙的办法:他们直接用图像对应的文字描述(也就是我们写的提示词)作为条件,来训练扩散模型本身。

具体操作是,在训练时,模型的噪声预测网络(U-Net)同时接收带噪声的图片和文本条件。而实现“引导”的秘诀在于,他们让同一个模型也学会在

没有文本条件

(即空白提示)时该如何预测噪声。这样,在生成时,通过对比“有条件预测”和“无条件预测”的差异,并利用一个尺度因子(就是CFG值)来放大这种差异,就实现了强有力的引导。这也就是我们现在文生图(Text-to-Image)功能的核心基础。

6. 无分类器引导尺度:掌控提示词权重的旋钮

现在,我们有了这个以提示词为条件的生成过程,该如何控制AI到底该多“听”提示词的话呢?

答案就是

CFG值

。我们回到“猫、狗、人”的例子,如果你输入的提示词是“一只猫”:

  • 如果CFG值设为0或很低

    :提示词基本被忽略,生成猫、狗、人的概率差不多。
  • 如果CFG值设为适中的7-10

    :提示词被严格遵循,你几乎总能得到一只猫。
  • 如果你把CFG值调得极高

    :你会得到一张特征极其鲜明、毫无歧义的“标准猫”照片,但同时多样性会丧失,色彩可能失真。

7. 无分类器引导是如何训练的?

从原理上讲,要实现引导,我们需要模型既会“有条件地”预测噪声(根据文本),也会“无条件地”预测噪声(不根据文本)。难道要训练两个模型吗?

实际上有个更聪明的做法:

只训练一个模型

。在训练过程中,随机将一部分样本的文本条件替换成空白标记(空字符串)。这样,这个“单簧管”模型就同时学会了两种技能:在有提示时如何工作,以及在没提示时如何工作。生成时的引导效果,就来自于这两种工作模式的差值。

8. 最佳CFG值存在吗?

了解了这么多,最实际的问题来了:有没有一个放之四海而皆准的“最佳”CFG值?

答案是:

没有唯一的最佳值,只有合理的范围

(比如之前提到的7-10),而具体多少,取决于你的需求。

CFG值本质上是在

准确度

多样性

之间做权衡:

  • CFG值越高

    :图像越贴合你的提示词,但多样性降低,风格和构图容易僵化,且易出现饱和、伪影。
  • CFG值越低

    :AI发挥空间更大,图像更丰富、更自然,但也更容易“跑题”。

所以,下次再调节CFG时,不妨把它看作一个创意旋钮。想要精准实现脑洞,就往高了调;想要收获一些意外之喜,不妨降低一点,给AI多一点自由。