Stable Diffusion 中的CFG Scale是什么?

在使用Stable Diffusion web UI、ComfyUI等进行生图的时候提示词引导系数 (CFG Scale)是常用设置参数之一,那么你了解过CFG Scale是什么吗?今天就代大家了解一下CFG Scale,让大家以后在SD生图的时候更容易设置该参数。

提示词引导系数 (CFG Scale)有什么作用?

我们使用以下参数与提示词来进行生图,就能够看出不同提示词引导系数的差别:

软件:Stable Diffusion web UI

模型:Animagine XL V3

迭代步数 (Steps):28

采样方法 (Sampler):Euler a

提示词:masterpiece,best quality,4k,illustration,bright colors,detailed character,detailed environment,cute girl,summer dress,joyful smile,soft sandy beach,gentle waves,clear blue sky,fluffy clouds,

反向提示词:nsfw,logo,text,badhandv4,EasyNegative,ng_deepnegative_v1_75t,rev2-badprompt,verybadimagenegative_v1.3,negative_hand-neg,mutated hands and fingers,poorly drawn face,extra limb,missing limb,disconnected limbs,malformed hands,ugly,

图片尺寸:720x1080

随机数种子 (Seed):1547925316

在固定种子的情况下

  • 参数为小于3的情况下,虽然一定程度上遵循提示,但图片模糊无法使用
  • 参数在3-13的情况下,基本遵循提示,生成的图片质量最高
  • 参数大于13的情况下,颜色会越来越饱和,图片开始出现与提示词不相关元素
  • 当大于17的时候,图片色彩完全饱和,图片无法使用

我们在进行SD生图的时候,通常将提示词引导系数 (CFG Scale)设置为7 到 10 之间,这样出图的质量最高。不过此参数并不适合所有模型,在使用 LCM LoRA 和 SDXL Turbo 等模型的时候,CFG Scale就设置的比较低,通常设置为1-2

CFG是什么?

CFG是Classifier Free Guidance(无分类引导)的缩写,要理解CFG,那么你就需要了解它的前身classifier guidance(分类器引导)。

分类器引导 (Classifier Guidance)

分类器引导 (Classifier Guidance) 是一种用于指导扩散模型图像生成的文本提示方法。它使用单独的分类器模型来对图像进行分类,然后使用分类结果来指导扩散模型的生成过程。(参考论文

这里的分类器通常是一个已经训练好的神经网络,它能够识别和理解图像内容。使用这种技术的目的是为了让生成的图像更符合用户的期望和需求。

为了更通俗易懂地解释,我们可以用一个比喻:想象你正在画一幅画,但你不确定如何下笔。这时候,你有一个聪明的朋友(分类器),他能够告诉你哪些部分画得好,哪些部分需要改进。你根据他的建议进行调整,最终完成了一幅令人满意的画作。

在实际应用中,Classifier guidance的工作原理是这样的:

  • 用户给出生成图像的初始指令,比如“画一只猫”。
  • 图像生成模型开始创作,但它可能会创造出各种奇奇怪怪的猫,有些可能根本不像猫。
  • 这时候,分类器介入,它检查生成的图像,并判断图像中的内容是否符合“猫”的特征。
  • 分类器给出反馈,指导图像生成模型如何调整,比如“猫的耳朵太小了”或者“猫的颜色不太对”。
  • 图像生成模型根据分类器的反馈进行调整,生成更符合用户期望的猫的图像。

通过这种方式,Classifier guidance帮助图像生成模型更准确地理解用户的意图,并生成更高质量的图像。

无分类器引导(Classifier-free guidance)

无分类器引导 (Classifier Free Guidance,CFG) 是一种用于指导扩散模型图像生成的文本提示方法。它不需要单独的分类器模型,而是使用条件扩散模型来直接从文本提示中生成图像。(参考论文

为了用最通俗易懂的语言解释这个概念,我们可以用一个类比:想象你在烤蛋糕,但是没有食谱。你有一些基本的食材(比如面粉、糖、鸡蛋等),但是没有具体的指导告诉你如何混合它们。Classifier Free Guidance 就像是一个聪明的助手,它可以根据你想要的蛋糕口味(比如巧克力味或草莓味),帮助你调整食材的比例和烘焙时间,从而做出美味的蛋糕。

在实际的图像生成中,Classifier Free Guidance 的工作原理是这样的:

  • 用户告诉图像生成模型他们想要生成什么样的图像,比如“一个海滩上的日落”。
  • 图像生成模型开始创作,但是没有具体的指导告诉它如何生成日落或海滩。
  • Classifier Free Guidance 技术介入,它通过调整模型生成图像的方式,使得图像更接近用户的要求。比如,它可能会让模型在生成图像时更注重色彩的变化,以模拟日落时天空的颜色。
  • 模型根据这些调整生成图像,最终得到一个更符合用户期望的海滩日落图像。

通过这种方式,Classifier Free Guidance 能够帮助图像生成模型更好地理解用户的意图,并生成更加逼真和符合要求的图像,而不需要依赖于传统的分类器。

Classifier-free guidance scale(提示词引导系数)

Classifier-free guidance scale 是在图像生成过程中使用的一个参数,它决定了模型在生成图像时,多大程度上遵循用户的指导。

我们可以用一个类比:想象你在画一幅画,而你的朋友在一旁提建议。CFG Scale 就像是你决定是否听从你朋友的建议的尺度。

在实际的图像生成中,CFG Scale的工作原理是这样的:

  1. 用户告诉图像生成模型他们想要生成什么样的图像,比如“一个金发的女孩站在海边”。
  2. SD模型开始创作,但是它需要决定如何在遵循用户的指导(金发女孩、海边)和自由创作之间找到平衡。
  3. 设置参数。如果这个值适当,模型就会非常专注于确保图像中有一个金发的女孩站在海边。如果这个值过高或者过低,模型可能会在保持大致场景的同时,加入一些自己的创意,比如女孩可能穿着不同风格的衣服,或者海边的环境有一些独特的细节。
  4. 模型根据这个参数生成图像。

从上面的例子中大家已经可以看出,这个参数并不是越大越好,合理的值(7-10),但没有最佳值,当然还要根据模型的不同来设置不同的值。

本文只是最简单的解释,要想完全弄懂原理,可能还需要去看论文才行,不过知道基本原理大家就可以进行SD生图了。

0

评论0

没有账号?注册  忘记密码?