Classifier-Free Guidance (CFG) Scale in Stable Diffusion

1.Classifier-Free Guidance Scale in Stable Diffusion

笔记来源:
1.How does Stable Diffusion work?
2.Classifier-Free Diffusion Guidance
3.Guide to Stable Diffusion CFG scale (guidance scale) parameter

1.1 Classifier Guidance Scale

分类器引导是一种将图像标签合并到扩散模型中的方法。您可以使用标签(label)来指导扩散过程。例如,标签“猫”引导反向扩散过程来生成猫的照片
分类器指导尺度 (CG Scale) 是控制扩散过程有多大程度遵循标签引导的参数

下面是论文Classifier-Free Diffusion Guidance中的一个例子
假设有 3 组图像(下图中的三个分布代表),标签为“猫”、“狗”和“人”
如果扩散是无引导的(如最左侧)模型抽取的样本有时它可能会抽取适合两个标签的图像,例如一个男孩在抚摸一只狗
如果扩散是有引导的(如右侧三个)模型抽取的样本可能只会含有一个标签的图像,例如一只狗
在高分类器指导下,扩散模型生成的图像将偏向极端或明确的图像。如果你要求模型生成一只猫,它只会返回一张明确是猫的图像,除此之外别无其他

尽管分类器指导取得了破纪录的性能,但它需要一个额外的模型来提供该指导,这给训练带来了一些困难,我们需要同时训练两个模型(Unet + Classifier)代价较大

1.2 Classifier-Free Guidance Scale

无分类器指导是实现“没有分类器的分类器指导”的一种方法。他们没有使用类标签和单独的模型进行指导,而是建议使用图像标题(caption)并训练条件扩散模型,就像我们在文本到图像中讨论的模型一样。
他们将分类器部分作为噪声预测器 U-Net 的条件,实现了图像生成中所谓的“无分类器”(即没有单独的图像分类器)指导。也就是文本提示提供了文本到图像的指导

将Classifier用文本替代后,加入Cross Attention使得文本与图像融合,从而我们只需训练一个模型(Unet)

无分类器引导尺度(CFG Scale)是控制扩散过程有多大程度遵循文本引导的参数
当 CFG 比例设置为 0 时,图像生成是无条件的(即忽略提示)
当 CFG 比例设置过高时,文本会引导扩散朝向,图像越贴近给定文本,但这并不意味着该值应始终设置为最大值,因为更多的指导意味着更少的多样性和质量

text (caption) = “panda playing guitar”

CFG=1
CFG=2
CFG=7
CFG=10
CFG=15
CFG=20

注意它在极端情况下的表现:
当CFG设置为1时,文本提示将被忽略。
当CFG设置为最大20时,但图像质量较差。
最具“创意”和“艺术性”的结果通常在 7-12 的指导范围内生成。但使用高达 15 的比例仍然会产生几乎没有伪影的结果。

上一篇:CV11_模型部署pytorch转ONNX


下一篇:Python小工具—txt转excel和word