Stable Diffusion Web UI底子入门之常用参数

打印 上一主题 下一主题

主题 1706|帖子 1706|积分 5118



在之前的文章中我们介绍了,Stable Diffusion的底子知识和利用工具———Stable Diffusion AI入门介绍。这篇文档带各人了解一下Stable Diffusion Web UI的常用参数,在一样平常绘图中如何利用。
我们知道在Stable Diffusion Web UI(文中Web UI取代)中绘图,基本的利用方法很简单,只需选择符合的模子,然后输入正向提示词、反向提示词即可。不外,如果要得到更细致的结果,就必要对各个参数的设置都有所了解。下面我们就来介绍一下常用的参数,如下图Web UI中的配置:

Sampling Method(采样方法)

为了生成图像,Stable Diffusion会先在潜空间中生成一张随机的噪声图,然后再对这张图片多次去噪,最后得到一张正常的图片,如下图所示。这个去噪的过程被称为采样(sampling),而采样方法(sampler/sampling method)则是这个过程中利用的方法。

可选的参数有很多种,

经典的ODE求解器(Old-School ODE solvers)

常微分方程的全称是Ordinary Differential Equation,‌简记为ODE。
Euler:欧拉采样方法。
Henu:改进的或修改过的欧拉方法(即,显式的梯形规则)。
LMS:线性多步法,与欧拉采样器速率相仿,但是更正确。
Euler、Henu、LMS采样方法比力简单,是经典的常微分方程(ODE)求解器。其中Euler是最简单的求解器,Henu比Euler更正确但是也更慢,LMS(Linear Multi-Step method,线性多步法)速率与Euler雷同,但LMS号称更正确。
先人采样方法(Ancestral samplers)

有一些取样器的名字中带有一个字母“a”​,这表明它们是先人采样方法(ancestral sampler)。
先人采样方法属于随机采样方法,它们会在每个采样步骤中添加随机噪声,使结果具有一定的随机性,从而探索差别的可能性。
必要阐明的是,还有一些其他方法也是随机采样,尽管它们的名字中没有“a”​。
利用先人采样方法可以通过较少的步骤产生多样化的结果,但缺点是图像不会收敛,随着迭代步数的增长,图像将不停变化,生成的图像可能更嘈杂且不真实。而如果利用Euler等收敛采样方法,一定步数之后图像的变化会逐渐变小,直到趋于稳固。
相关的采样方法如下:
● Euler a。
● DPM2 a。
● DPM++ 2S a。
● DPM++ 2S a Karra。
Karras版本方法

带有“Karras”字样的采样方法利用了泰罗·卡拉斯(Tero Karras)等人的论文中保举的噪声规则,与默认的规则相比,Karras的规则在开始时噪声较多,在后期噪声较少,据他们研究,如许的规则可以进步图像质量。

相关的采样方法如下:
● LMS Karras。
● DPM2 Karras。
● DPM2 a Karras。
● DPM++ 2S a Karras。
● DPM++ 2M Karras。
● DPM++ SDE Karras
DDIM和PLMS

DDIM和PLMSDDIM(Denoising Diffusion Implicit Model,去噪扩散隐式模子)和PLMS(Pseudo Linear Multi-Stepmethod,伪线性多步法)是第一版Stable Diffusion中就附带的采样方法,其中DDIM是最早为扩散模子设计的采样方法之一,PLMS则比DDIM更新、更快。
当前这两种采样方法都不再广泛利用。
DPM系列

DPM(Diffusion Probabilistic Model solver,扩散概率模子求解器)和DPM++是为2022年发布的扩散模子设计的新采样器,它们代表了一系列具有相似架构的求解器。
DPM2与DPM相似,只是它是二阶的,更正确但是也更慢。
DPM++是对DPM的改进,它利用快速求解器来加速引导采样。与Euler、LMS、PLMS和DDIM等其他采样器相比,DPM++速率更快,可以用更少的步骤实现雷同的效果。
DPM++ 2S a是一种二阶单步求解器,其中“2S”代表“Second-order Single-step”​(二阶单步)​,​“a”表示它利用了先人采样方法。
DPM++ 2M是一种二阶多步求解器,其中“2M”代表“Second-order Multi-step”​(二阶多步)​,结果与Euler相似,它在速率和质量方面有很好的均衡,采样时会参考更多步而不是仅当前步,以是质量更好,但实现起来也更复杂。
DPM fast是DPM的一种快速实现版本,比其他方法收敛更快,但牺牲了一些质量。DPM fast通常用于对速率有较高要求的批量处置惩罚使命,但可能不适用于对图像质量要求较高的使命。
DPM adaptive方法可以根据输入图像自顺应实现一定程度的去噪所需的步数,但它可能会很慢,得当必要较多处置惩罚时间的大图像使命。
DPM++ SDE和DPM++ SDE Karras利用随机微分方程(SDE)求解器求解扩散过程,它们与先人采样方法一样不收敛,随着步数的变化,图像会出现显着的颠簸。
UniPC

UniPC(Unified Predictor-Corrector)是2023年发布的新采样方法,是如今最快最新的采样方法,可以在5~10步内实现高质量的图像生成。
k-diffusion

k-diffusion,它是指凯瑟琳·克劳森(Katherine Crowson)的k-diffusion的GitHub库实现和与之相关的采样方法,即前面提到的泰罗·卡拉斯(Tero Karras)等人论文中研究的采样方法。
基本上Web UI中,除了DDIM、PLMS和UniPC之外的所有采样方法都源自k-diffusion。
采样器速率对比:
在利用差别的采样器生成雷同的图像,最多采样 40 步,同时以利用Euler(欧拉)方法作为参考,时间结果如下:

具体分为如下:

排除DPM adaptive,别的的渲染时间分为两组,第一组耗费的时间约莫雷同(约 1 倍),另一组耗费的时间约莫是两倍(约 2 倍)。这反映了求解器的次序。二阶求解器虽然更正确,但必要对去噪 U-Net 进行两次评估。以是它们慢了 2 倍。
建议:
大要上来说,以上所介绍的采样方法各有特点,主要差别是在速率、质量、收敛性上有所差别。
在速率以及收敛性上,各采样方法的评判尺度是确定的,但对于图片渲染的质量则没有统一的尺度。
有人以为带有“Karras”的方法比不带这个标签的同名方法更好,但也有人以为二者并没有显着的差别。
同时,一些采样方法在照片等真实风格的图像上体现较好,另一些则在卡通漫画等风格的图像上更具上风。可以在具体实践中分别尝试比力,以找到最符合的采样方法。
如果要提供一些经验上的建议,通常以为DPM++系列采样方法是大多数情况下较好的选择。
以下是一些更具体的建议,仅供参考。
如果时间有限,不想尝试太多方案,可以选择Euler或者DPM++ 2M。
如果希望生成速率快且质量不错,可以选择DPM++ 2M Karras或者UniPC。
如果希望得到高质量的图像,且不关心收敛性,可以选择DPM++ SDE Karras。

Schedule type(调理范例)


Web UI的1.9版本中包罗的一项变化就是,把采样器和调理器(Schedule type)分开了,之前是合并在一起来选择的。
如果是选择了Automatic,那么会根据采样器自动调取最符合的调理器。一般情况选择“Automatic”就好了。
在Stable Diffusion模子中,采样器(Sampler)和调理器(Scheduler)是生成图像过程中的关键组件,它们共同决定了生成图像的质量和速率,那么这俩概念到底意味着什么呢?
采样器(Sampler):在Stable Diffusion的上下文中,采样器是指用于从噪声图像生成清晰图像的算法。这个过程被称为采样,因为它在每一步中生成一张新的图像样本。采样器通过在一系列步骤中逐渐减少噪声来生成图像,每一步都会根据预定的噪声筹划(Noise Schedule)来减少噪声,并生成新的图像样本。差别的采样器有差别的算法和特性,影响着图像生成的速率和质量。
调理器(Scheduler):调理器通常与采样器的概念紧密相关,它负责控制采样过程中每一步的噪声水平,也就是所谓的噪声筹划(Noise Schedule)。调理器决定了在生成图像的每一步中减少多少噪声,从而影响采样过程的速率和最终图像的清晰度。在某些文献中,调理器和采样器这两个术语有时被瓜代利用,因为它们都涉及到控制生成过程中的噪声减少。
就算是概念解释部分,这两个词也简直很难分开,或者可以简单的理解为:采样器是图像生成过程中的降噪算法,而调理器则控制这个过程中每一步的噪声水平,两者共同作用,决定了生成图像的质量和所需时间。固然了,这两者原来就是搭配利用的,以是强行分开解释貌似也意义不大。
对于SDXL-Lightning模子时,利用SGM Uniform的调理器会比其他调理器更得当lightning范例的模子。
   大多数情况下调理器选择Automaitc就好了,除非利用了lightning范例的模子,那就手动改一下为SGM Uniform, 固然,就算是忘记修改了,题目也不大。
  Sampling Steps(迭代步数)


迭代步数是指在生成图片时进行多少次扩散计算,每次迭代相当于对图像进行一次去噪。迭代的步数越多,耗费的时间也越长。
迭代步数并不是越多越好,具体数字的选择和采样方法、参数设置等因素有关,一般在20~50次即可,太少可能会生成尚未完成的模糊的图像,太多则是一种浪费。
团结前面的采样方法,如果想要速率快、收敛性好、质量也不错,且想试试新东西的话,最好选择:


  • DPM++ 2M Karras:20-30 步
  • UniPC:20-30 步
如果想要比力好的质量,同时不在意是否收敛的话,可以选择:


  • DPM++ SDE Karras:10-15 步 (注意该采样器比力慢)
  • DDIM:10-15 步
Hires. fix(高分辨率修复)


“高分辨率修复”功能可用于将生成的图片放大为分辨率更高的高清图片。
Stable Diffusion的原始分辨率是512像素或768像素,这个尺寸对大部分实际应用场景来说都太小了,虽然可以在下方的宽度和高度参数中直接设置更大的尺寸,但那样也可能带来新的题目,因为偏离原始分辨率可能会影响构图并生成错误的内容,例如生成的人物有两个头等。这时,就可以先生成较小的正常尺寸的图片,再利用“高分辨率修复”(Hires.fix)功能来放大图片的尺寸。
勾选“高分辨率修复”复选框,界面上会显示更详细的设置项,如上图所示。
Upscaler(放大算法)


其中Lanczos、Nearest算法是较为传统的算法,仅根据图像的像素值进行数学运算来扩大画面并添补新像素,效果一般,尤其当生成的图像本身就比力模糊时,这些算法无法正确地添补缺失的信息。
ESRGAN 4x算法倾向于保存精细的细节并产生清晰锐利的图像。
LDSR(Latent Diffusion Super Resolution)是一种潜在扩散模子,质量好但速率非常慢,一般不保举。
R-ESRGAN 4x+是对ESRGAN 4x的增强,在处置惩罚传神的照片类图像时体现最佳,如果要放大风格较为真实的图像,保举利用这个算法。R-ESRGAN 4x+ Anime6B则是专为二次元图像优化过的算法,处置惩罚二次元图像时效果较好。
固然,也可以直接利用默认的Latent算法开始,多数情况下它的体现已经足够好。如果对效果不太满意,可再依次尝试其他算法,选择更佳的方案。
Hires steps(迭代步数)

“高分迭代步数”(Hires steps)是指放大图像时的采样步数。默以为0,表示与生成图片时的步数雷同,也可以修改为其他值。
该值对最终图像的影响很大,如果步数过多,可能会生成一些希奇的效果,可以根据具体场景尝试差别的值
Denoising strength(去噪强度)

“重绘幅度”(Denoising strength)也叫去噪强度,控制在实行放大采样之前添加的噪声强度。
对Latent系列的放大器来说,这个值在0.5~0.8效果较好,低于0.5可能会得到模糊的图像,数值太高则会使图像细节发生很大的变化。
Upscale by(放大倍数)

“放大倍数”参数非常直观,就是控制具体要将原图放大多少倍。如果原图尺寸是512×512,将放大倍数设为2时,将得到1024×1024的新图。
尺寸调解

Resize height to(调解高度) 和 Resize width to(调解宽度)是在放大倍数参数背面是设置宽度和高度的值,也可以调解这两个值,直接指定新图的尺寸。如果设置了具体的宽度和高度值,那么放大倍数参数将失效。
Refiner(图片精修)

这个功能主要是针对SDXL及其衍生模子。
SDXL 采用了一种两步走的生图方式,先用1个底子模子生成一张看起来差不多的图片,然后再利用一个精修模子把它打磨的更漂亮。表示图如下:

Refiner配置中,我们可以看到两个选项:

CheckPoint(大模子)



  • 前边是要利用的精修大模子,此处可以选择任何一个SD大模子,不仅仅是SDXL模子,SD1.5模子同样可以干这件事。
Switch at(切换点)



  • 后边是精修开始的步数百分比,上边采样步数填写的是20,精修模子就从 20*0.8=16 之后,也就是第17步,开始到场绘制图片。
Width&Height(宽度和高度)

可以指定生成图片的宽度和高度,如下图所示:

默认值都是512,范围为64~2048,可以输入范围内的恣意值,但必要是8的倍数。图片宽度和高度的数值越大,生成时所必要的时间和资源也越多。
另外,Stable Diffusion最初是基于256×256大小的数据集训练的,后来的潜在扩散模子(Laten diffusion model)利用了512×512的数据集训练,2.0之后的版本则利用768×768的数据集训练。因此,Stable Diffusion在生成512×512大小的图片时效果更好,2.0之后的版本中将宽或者高至少一项设为768时效果更好。
如果希望生成分辨率较高的图,除了调解宽度和高度,也可以先生成一个尺寸较小的图,然后利用“高分辨率修复(Hires.fix)”等设置项或其他工具来放大图片,以减少资源消耗。
批量生成

主要两个参数,
Batch count(总批次数):一共实行多少次生成使命,默认值为1,最大值为100。
Batch size(单批数量):每次使命生成多少张图片,默认值为1,最大值为8。

其中生成图片的总数为两者相乘,即如果总批次数为2,单批数量为3,那么总共生成的图片数将是2×3=6张。
如果必要批量生成4张图片,设置“总批次数为4、单批数量为1”和设置“总批次数为1,单批数量为4”效果是一样的,但后者会更快一些,同时后者也必要更大的显存支持。
批量生成时,随机数种子参数(Seed)的值会不停递增,即第二张图的种子值是第一张图的种子值+1,第三张图的种子值是第二张图的种子值+1,以此类推。这个特性可以包管批量生成的图片产生变化,但又不至于变化太大。
CFG Scale

CFG Scale(Classifier Free Guidance scale)参数指定提示词的权重影响,默认值为7,如图7-25所示。
理论上,CFG值越高,AI就会越严格地按照提示词进行创作,CFG值越低,AI会越倾向于自由发挥。
如果CFG值为1,AI会几乎完全自由地创作,而值高于15时,AI的自由度将非常有限。
在Web UI中,CFG值的范围为1~30,可以满意绝大部分应用场景,不外如果通过终端利用Stable Diffusion,则最高可以将CFG设为999,还可以设为负值。当CFG的值为负数时,Stable Diffusion将生成与提示词相反的内容,类似利用反向提示词。
当CFG值设置得较高时,输出图像可能会变得模糊,细节丢失,此时,可以通过增长采样迭代步数或者更改采样方法来修复题目。
CFG值以及影响的参考如下:
● 1:基本上忽略提示词。
● 3:参考提示词,但更有创意。
● 7:在遵循提示词和自由发挥之间的良好均衡。
● 15:更遵守提示词。
● 30:严格按照提示词操作。
多数情况下,CFG的数值为7~10是一个较为符合的选择。
Seed(随机数种子)

种子(Seed)在Stable Diffusion中是一个非常重要的概念,可以大抵理解为图片的特性码,如果想重复生成某张图片,除了利用雷同的提示词、采样方法、迭代步数等参数,种子也必须要保持一致。
配置图如下:

默认情况下,随机数种子显示为-1,表示每次都利用一个新的随机数。控件旁边的骰子按钮表示种子利用随机值,单击之后随机数种子输入框会显示-1。绿色循环箭头按钮则表示利用上一次生成图像的种子值,可用于重现结果。
在查看生成的图片时,可以发现图片的文件名可能类似“00044-247521062.png”​,其中前面的“00044”表示这是今天生成的第44张图片(编号从0开始,第一张图片是“00000”​,第二张图片是“00001”​)​,背面的“247521062”即是这张图片的种子值。
可以在随机数种子输入框中输入具体的种子值,例如“247521062”​,以便重新生成指定的图片。
勾选随机数种子设置项最右侧的复选框,可以打开扩展栏,如下图所示:

其中变异随机种子(Variation seed)和变异强度(Variation strength)两个值必要共同调解,调解这两个值,可以生成介于两张图片(两个随机种子)中心的图。其中变异强度的值范围为0~1,0表示完全稳固异,1表示完全变异。
从宽度/高度中调解种子是另一个实用功能。有时可能想调解一张图片的尺寸,即使已经输入了固定的种子值,但在Stable Diffusion中,调解尺寸也会让图片内容发生较大变化,这时,就可以利用从宽度/高度中调解种子的功能。
如许能保存原图的很多特性,甚至可以得到更好的效果。
Script(脚本)

最后介绍一下Script利用,比如有时间我们在测试生成图片效果时,在提示词保持稳固的情况下,可能会在我们利用的模子,采样方法,采样迭代步数等参数上面进行调优。通过比力看看效果,再选择一张自己最满意的图片。
找到Script选项,选中X/Y/Z plot。

可以看到脚本选项"X/Y/Z plot"就是提供X轴,Y轴,Z轴范例选择和范例对应的值的参数设置。
同时X轴,Y轴,Z轴范例的提供的选择项都是一样的。
以下是主要项目的含义:


  • X/Y/Z轴的范例: 根据每个轴来确定要比力的要素。如下所述,您可以指定各种要素。
  • X/Y/Z轴的值: 每个轴的设定值。如后文所述,填写时必要遵循规定的格式。
  • 显示范例和值: 是否绘制表格标题。
  • 宫格图边框间距: 表格图像之间的间隔。如果设置为大于0的值,将会产生间隙。
比如这里配置了Steps和Sampler,如下:

相关利用阐明:


  • 我们在脚本中定义的X轴或者Y轴范例参数,优先级高于在参数面板中对应的参数设置。例如,X轴我们定义了采样迭代步数,在参数面板内里的采样迭代步数参数设置就没有作用了。
  • 如果利用不到Z轴,不用设置Z轴,设置反而影响出图的服从。
最终结果如下:


今天的文章介绍到此为止,接待各人关注微信公众号"壁虎说技能",更多AI新技能,新点子在公众号第一时间更新。



参考

stable-diffusion-xl-base-1.0
商用级AIGC绘画创作与本领(Midjourney+Stable Diffusion)
Stable Diffusion Samplers: A Comprehensive Guide

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表