1/3
2/3
3/3
出精图必备!SD webui更多强大的功能!(Novel AI)
蒟蒻喵喵
2022年10月20日 19:29

原贴:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features

②、https://github.com/jquesnelle/txt2imghd

图片来自于上述帖中

原贴描述的大部分功能都是在旧版本基础上

本文在原贴基础进行修改以适应目前新版本

大部分都是依靠作者的理解,有错误的地方欢迎指出!


简单命名一下最基础的三个选项卡

1、 txt2img (text to image) 文本绘画

2、 img2img (image to image) 以画生画

3、 Extras 图像放大

以上三种具体功能应该都知晓了吧。

本文主要讲解的是以上各个选项卡底部的脚本(Script)功能和一些其他功能的扩展


一、扩展绘画(Outpainting):

功能

在原画的基础上扩展原画绘图

食用方法

位于 以画生画(image to image) 的脚本中

有两个,一个叫Poor man’s outpainting,另一个叫Outpainting mk2,具体差别在下面补充中提出

食用建议(recipe)

步数(Sampling steps)选择在50~100,抽样方法(Sampling method)使用Euler或者DPM2,噪点强度(Denoising strength)和CFG比例(CFG scale)拉到最大最佳。

 图可能看不准,展示的效果为第81步的效果远好于10、30甚至80

补充

选项栏翻译

Pixels to expand:扩展大小(像素为单位)

Mask blur:mask模糊,与原图边界的渐变模糊程度,实现图像衔接更自然

Outpainting direction:扩展的方向

上面为两个共有,下面为Outpainting mk2专属:

Fall-off exponent (lower = higher detail):衰减指数,越小细节越多

Color variation:颜色变化


二、图像修补(Inpainting)

介绍

对图像进行涂色(mask),并依据涂色的位置以及用户选择进行各种调整

Mask blu:同上述

mask的两种功能:

Draw mask:涂色的地方进行重新绘画

Upload mask:上传mask图片,涂色的地方与上传的图片衔接

(目前版本好像Upload mask有点问题)

涂色模式(masking mode)

Inpaint masked(默认):只重新绘画涂色的位置

Inpaint not masked:除了涂色的位置都重新绘画

涂色样式(Masked Content):

被涂色的位置在图片进行重新绘画前被输入的样子(如果去掉多余的胳膊可以尝试使用fill或者其他,如果使用original则会在原来的基础上重新绘画出新的胳膊)

具体如下图:

不改变原分辨率上图像修复(Inpaint at full resolution):

通常情况下,图像修复输出的整个图片会以你指定的(在UI输入)分辨率输出,勾选此选项后则只改变涂色位置的大小,修复后指定区域后直接粘贴到原图中。顾名思义,就是不会再改变你原图的分辨率。

Inpaint at full resolution padding, pixels填充像素,暂时不知道是干什么的,猜测是粘贴到原图后进行扩展的像素?

Alpha mask:好像现在版本已经删除了?


三、提示词矩阵图(Prompt matrix)

介绍

在不同的tag(prompt提示词,目前国内普遍使用tag来称呼,为了方便理解下文都使用tag称呼)之间用”|”分割,每个”|”后面跟一个tag,保留或删除每一个”|”后面的tag进行排列组合、使用同一个种子(seed)生成多张图。数量为n^2,n为”|”的数量。

例如 a busy city street in a modern city | illustration | cinematic lighting

“|”后面的tag有illustration和cinematic lighting,因此会生成2^2=4张图,分别是 删除illustration和删除cinematic lighting、保留illustration和删除cinematic lighting、删除illustration和保留cinematic lighting,保留illustration和保留cinematic lighting。具体如下图

食用方法

在文本绘画(txt2img)、以画生画(img2img)的选项卡里下方的脚本中选择 “prompt matrix”

原贴中给出的图二介绍是5个tag,其实是4个tag,因此才有16种可能


四、色彩草图(Color Sketch)

介绍

(机翻,感觉好像没啥用??)

可以在以画生画中提取颜色

具体如下图

食用方法

命令行参数添加 --gradio-img2img-tool color sketch

注意事项

只能用在以画生画,用以文绘画会导致浏览器严重卡顿


五、SD升档/高级扩大(Stable Diffusion upscale)

介绍

此处参考链接②(txt2imghd)

程序运行后的步骤基本如下:

①    先使用如图像放大(Extras)的方式放大两倍图像。(固定两倍,暂时不可修改)

②    以web中指定的宽度和高度(Width和Height)为基准将放大图像分为n个片段 (tiles)。

③    将每个片段放入以画生画(img2img)中改进。

④    最后将所有片段拼回合成输出图像,达到优化放大的功能。

 

由于每个片段之间会有重叠,所以片段的大小会非常重要。

官方给的样例:(大概是默认Tile overlap = 64的情况下)放大前512*512的图像(放大后为1024*1024)会有9个512*512个片段,但只会有4个640*640片段。

食用方法

在以画生画(img2img)的选项卡里下方的脚本中选择”SD upscale”。

调整栏

Tile overlap:片段重叠的大小,越大重叠越多

Upscaler:图像放大所使用的方法,同Extras

食用建议

①    采样方法(Sampling method)使用Euler a

②    噪点强度(Denoising strength)使用0.2,如果你够勇可以上0.4

不同扩大图片的对比图:


六、tag强调(Attention/emphasis)

这个功能很多人都搬运过了,这里就简单说一下

所有默认tag权值(也可以称为注意力,attention)为1,越大tag效果越强。

注意,webui中并不能使用{ }来强调语句,并且是1.1倍而不是1.05

小括号

两个功能:

① 修改权值:(tag:n),使tag的权值修改为n,如(cute:1.5),强调该tag为原来的1.5倍。

② 强调tag:(tag),使tag的权值扩大1.1倍,(tag) = (tag:1.1),可以叠加,效果相乘,如((tag)) = (tag:1.21) (1.1*1.1=1.21)

中括号

[tag]权值缩小至1/1.05≈0.952,[tag]=(tag:0.952),可以叠加,效果相乘,如 [[tag]]=(tag:0.907) (1/1.1/1.1≈0.826) 。

其他

如果你是单纯使用括号而不影响它的权值,可以使用’\’转移字符,如\(word\)。

但是一般国内都是直接用逗号隔开的单词来叠加tag,而国外会有人使用语句来生成图像,所以一般用不到。


七、循环出图(Loopback)

功能介绍

用以图生图(img2img)的输出的图片为以图生图新的输入。也就是以图生图生成的图片保存后,用该图片替换输入图片。

食用方法

在以画生画(img2img)的选项卡里下方的脚本中选择 “Loopback”

调整栏

Loops:循环次数

Denoising strength change factor:噪点强度变化系数,即每次循环的噪点强度为上一次的倍数,如设置为1.1,噪点为0.5,则第二次的输出噪点为0.5*1.1=0.55,第三次为0.55*1.1=0.605,以此类推。


八、※参数矩阵图 (X/Y plot)

介绍

筛选合适参数必会脚本!出精图必会脚本!

通过设置X、Y(列和行)对应的参数、值的变化来生成不同参数的图像矩阵。

在参数不使用种子(Seed)的情况下一般默认出的图为同一个种子

Batch count对应生成多少张不同种子的矩阵

Batch size则是每一个坐标有多少张图

参数类型

大括号内为对应的参数数值(Values)类型

·   Nothing:无,这一坐标轴不出图

·   Seed:种子 (一般使用此参数来达到一张图显示出多个种子下,某单个参数不同值的情况下对比,使得对比图比较美观,此时将Seed放在y轴中)  {整型}

·   Var. seed与Var.strength:变化(Variations)种子与强度,具体使用方法将在下面介绍。{整型、浮点型}

Var.seed {整型}

Var.strength {浮点型,范围0-1}

·   Steps:取样步数  {整型}

·   CFG Scale:关键词拟合度  {整型、浮点型}

·   Prompt S/R:关键词tag,与提示词矩阵不同的是,它是使用输入的tag中的一个来生成矩阵(而提示词矩阵是根据使用、不使用该提示词进行排列组合){字符串}

·   Prompt order:关键词顺序,暂时不知道怎么用的,待补充

·   Sampler:采样器  {特定字符串,具体见webui中Sampler method}

·   Checkpoint name:大炉模型  {字符串}

·   Hypernetwork:超网  {字符串}

·   Hypernetwork str.:超网强度,同settings里的Hypernetwork strength {浮点型,范围0-1}

·   Clip skip:Clip停止点,位于settings里,一般默认2是最好选择,如果你想测试也可以试试。

·   Denoising:噪点强度,在以图生图(img2img)中使用 {浮点型,范围0-1}

Eta、Sigma Churn、Sigma min、 Sigma max、 Sigma noise,为settings最右下角的地方,暂时不知道有什么用,待补充。

参数数值(Values)使用方法

  • 字符串

直接写名字,不同字符串之间用 分隔逗号”,” 隔开,如:

KFC, Thu, V wo, 50,共4个字符串

如果你想让一个字符串中包含”,”逗号,则应该把该逗号用双引号中,并且保证双引号与分隔逗号之间以及双引号内部没有空格,如:

V wo,“KFC,Thu”,50,共3个字符串,其中KFC, Thu属于同一个字符串内。

若有空格,则会把”KFC 与 Thu”视为两个不同的字符串。

  • 整型与浮点型

四种规则,除了和字符串一样的格式以外,还有以下三种额外的规则:

(以下运行几次的意思就是该坐标会出多少张图)

①    n-m

从n到m,步数为1,共运行(m-n+1)次,如:

1-5,则为1 2 3 4 5,共运行5次。

②    n-m(+/-i)

从n到m,步数为+/- i,共运行j = [|(m-n)|/i+1]次,如:

1-5(+2),则为1 3 5,共运行3次。

3-1(-0.5),则为 3 2.5 2 1.5 1共运行5次。

③    n-m[j]

从n到m,运行j次,则步数i = |(m-n)|/(j-1),如

1-3[5],则为1 1.5 2 2.5 5,运行五次,步数为(3-1)/(5-1)=0.5

设Batch size = NumBs,则一次坐标轴出图的总图数则为 j_x * j_y * NumBs

其他调整栏

Draw legend:显示注释,类似于上图的”CFG Scale:5.0”等。

Include Separate Images:在web中,除了矩阵图以外还会单独显示每一张图。上图是没有勾选该选项,只显示了矩阵图。(如果在settings里勾选过默认保存图片的话,即使没有勾选这个选项也会将每一张图都保存)

Keep -1 for seeds:每一张图都是随机种子(不勾选所有图都是同一个种子,除非你x、y中参数类型选择了seed)


九、变化(Variations)

介绍

图片种子(seed)改变的是图像的整体外观,变化种子(Var. seed)则是支持对图像的微变。用户可以通过改变微变种子(Var.seed)以及微变强度(Var.strength)来达到不同效果。

其中,如果Var.strength (范围为0~1)为0的话,则获得与原种子相同的图;如果处于最大值1的话,会获得与原图完全不同的效果。因此如果只是微调,建议设置在0-0.2之间

食用方法

在“seed”旁边的Extra”里


十、调整大小

介绍

在以图生图和放大中很常见的选项,这个内容比较简单,就只有以下三个:

Just resize:只调整图片大小,图片所有内容进行保留,如果输入与输出的长宽比例不同会采取拉伸

Crop and resize:裁剪与调整大小,如果输入与输出的长款比例不同,以图片中心向四周将比例外的部分进行裁剪

Resize and fill:调整大小与填充,如果输入与输出分辨率不同,则以图片中心向四周比例内多余的部分进行填充生成图片(类似于Outpainting)


十一、tag编辑(Prompt editing)

介绍

该功能可以让你在特定采样步数(Sampling steps)中取代、删除、添加tag。

改变越晚则使得取代前的tag对图片影响越大、取代后的tag对图片影响越小。(相当于间接改变权值)

食用方法

from和to是tag,表示取代前和取代后

when是数字,可以是0-1的浮点型或者大于0的整型

如果是0-1的浮点型,设总取样步数为n,则表示在第n*when步的时候from被取代为to。(即占总步数的比例)

如果是大于0的整型,则表示在第when步的时候from被取代为to。(即具体步数)

When越大,from的影响越大,to的影响越小。

在prompt中使用如以下的语法:

①    [from:to:when]

在when的时候使from被取代为to(to取代from)。

②    [from : : when]

在when的时候删除from

③    [to:when]

在when的时候添加to

例如,a [fantasy:cyberpunk:16] landscape,一个(科幻:赛博朋克:16)的风景画。在前16步,会先生成科幻风景画,在16步后,开始生成赛博朋克风景画。

下方x/y矩阵图为 “一位微笑的二战将军肖像,[男:女:x]” (x为x轴显示的比例)

(其中x=0.0的时候,表示从一开始就从女性生成)


额外内容:交替编辑(Alternating Words)

介绍

每一步的tag都进行轮回改变

食用方法

使用中括号”[ ]”写多个tag,并且tag之间用’|’隔开,从第一个取样步数开始每一步从左向右进行tag替换,直到最后一个tag结束后再从第一个重新开始。

例如:[cow|cow|horse|man|siberian tiger|ox|man] in a field  (中括号内有7个tag)

第一步使用cow in a filed,第二步使用cow in a filed,第三步使用 horse in a filed,以此类推,第七步到最后一个tag使用 man in a field,到第八步返回到第一个tag使用cow in a filed,依此类推、循环。

也许可以用来生成一些奇奇怪怪的古神图片


十二、高清修复(Highres.fix)

介绍

默认情况下,文本绘图(txt2img)使用高分辨率生成图片时可能会出现可怕的图像(尤其会出现多个相同的人脸情况),使用该功能会以较低分辨率部分渲染图像,然后将其放大,再以较高分辨率添加细节。

食用方法

在调整栏中勾选”Highres.fix”


十三、脸部修复(face restoration)

目前这个补充就是该功能一般用来修复真人脸,二次元不适合。


十四、Png信息(png info)

介绍

该功能可以显示使用SD生成的图片的信息,例如tag、CFG scale、种子等。非常方便!!!白嫖党福音!以后再也不用跟别人直接要tag了!

另外如果你想保密的tag建议用其他软件转化一下图片。

食用方法

与img2img同等的选项卡中选择Png Info


十五、以图生图转化测试(img2img alternative test)

介绍

该功能使用Euler扩散器分解输入的图像来创造输入tag的噪点图案(noise pattern)。

简单说的话,就是会尝试更改你输入的tag中的一个来微调图片(改变内容随机)

食用方法:

在以图生图(img2img)下方脚本中选择。

食用建议:(请勾选脚本调整栏的所有以override开头的选项)

1.      采样方法(Sampling method)必须使用Euler(因为该功能是基于Euler的)(在调整栏中选择”Override “Sampling method” to Euler”)

2.      输入你想改变的tag的类型在”Original prompt”

3.      解码步数(Decode steps)在50-60之间(这与脚本的解码步数相匹配)

4.      CFG scale低于或等于2(你可以在ui-config.json 中改变CFG Scale/step的.5为.1)

5.      Decode CFG scale低于1

6.      Denoising strength:很重要,请设置为1(如果已经勾选override,那么强制为1)

7.      长宽使用输入图像的长宽

可以尝试改变Original prompt来调整改变的详细特征。

图像样例中,Original prompt是” A smiling woman with blue hair.”,解码步数为50,CFG scale为1.8,Decode CFG scale为1。

图片删除了red hair以及改变woman的内容