论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
人工智能
›
人工智能
›
Stable Diffusion Web UI底子入门之常用参数
Stable Diffusion Web UI底子入门之常用参数
风雨同行
论坛元老
|
2024-11-24 21:30:48
|
显示全部楼层
|
阅读模式
楼主
主题
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 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
风雨同行
论坛元老
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
四、MySQL之数据查询语言(二) ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
超融合和传统 “VMware + FC SAN& ...
转载自ChatGPT:Python关键字 asynico ...
损失函数-pytorch
01.初识Python
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Java
前端开发
快速回复
返回顶部
返回列表