StableDiffusion_03_txt2img

本文介绍 stable-diffusion-webui 各个界面的功能

Settings

这里插队讲解一些设置里比较重要的选项

StableDiffusion Checkpoint

也就是我们的模型文件,需要提前放置到 models/Stable-diffusion

hypernet

这种技术被称为 Textual Inversion – wiki ,该 Wiki 下讲解了许多相关的功能,
另外,SD 的 Textual Inversion Embeddings 和 Novel AI 的 hypernet 技术是类似的、区别很小,参考 Hypernetworks

而这种技术允许你用少量(相对于 ckpt模型 来说)的图来训练一种“风格”,使得模型的神经网络局部替换,

而这种文件以 *.pt 或者 *.bin 为后缀, 你可以自己通过 WebUI 的 Textual Inversion 功能进行训练,训练的结果也是同样的文件类型。
不过,训练图片要求的显存很高,一般的低端显卡可能无法执行,

你可以在 网上下载 获得:

在使用时存在一些区别,如果你是要训练文件,则需要放到

  • 根目录下的 embeddings
  • 在训练时 选择改文件

而如果是使用,则:

  • *.pt 文件放到根目录下 models/hypernetworks
  • Setting/Stable Diffusion finetune hypernetwork 下拉栏里 选择对应的 pt 文件,应用,刷新配置(或者重启程序)

想了解更多信息可以参考:Hypernetwork training for dummies

txt2img

上方主界面区域

Generate

即为 “生产” 按钮,这里不赘述

prompt

Prompt: 描述词,指示 AI 如何生产你的图片
Negative Prompt: 负面描述词, 指示 AI 避开指定描述词

artist

右侧有一个画盘一样的UI,点击后会随机加入一个 艺术家 作为 prompt
这些艺术家在根目录的 artists.csv 文件中被声明,该文件中

  • 第一列是艺术家名字
  • 第二列是分值(大概是艺术家评分?)
  • 第三列是分类

分类可以在设置里进行过滤,这样在随机时只会随到指定分类的

解析prompt

之前的文章提到,prompt 可以包含配置选项,这里可以直接点击下方的 进行应用,
点击后将 prompt 中配置相关的描述 解析、应用 到具体位置,这么做也方便进行语法检查(不过正常来说,这种语法都是复制过来的,不会有什么问题)

style

Style 下拉栏 和 Apply style Create style,这几个按钮,允许你创建一种预设
当你创建第一个预设后, 在根目录下会出现 styles.csv, 目前删除 style 需要操作这个文件

而 style 可以单独对 正面 和 负面的描述进行设置,也就是说这主要用于一些模板描述。
style 并没有包含一些配置、设置相关的选项,在生产前需要注意

左下采样设置区域

sampling steps

采样的次数,或者说步数,
步数越高画面越清晰具体,但到了一定程度以后,再增加步数不会产生明显变化
通常会设20~35 之间的值,太小画面不全,太大浪费时间
建议在 txt2img 模式中,需要进一步细化图片时才调大这个值

sampling method

采样方法,也可以说是采样器,
不同的采样器,采样方式不同,得到的结果也有所不同。这种差异很难用简单的描述来阐释。

在经过多组对照试验后,能够得出的简单结论是:

Euler A 几乎自成一派

这些结果高度相似:  
Euler, LMS, Heun, DPM2 
DPM2 a, DPM adaptive   
LMS Karras, MPM2 Karras  
DDIM, PLMS (很接近)

而其他自成一类的情况(和其他不完全相似,或者存在不相似的部分):  
DPM2 a   
DPM fast  
Euler a,  
DPM a Karras

其中,大部分采样器对于 实验中两组 pt 的选择产生了相同的结果,
只有 Euler a 正确识别

而在于官网的测试结果中,
Euler A 自成一派
Euler, LMS, PLMS, DDIM, Heun, DPM2, 结果近似,且 PLMS 和 PMS 消耗步数较多(不推荐)
DPM2 a 自成一派

因此在对多种采样方法进行分支测试时,个人推荐:
Euler, Euler a, DPM2 a

从神经网络的角度上讲,他们最大的区别在于前期的选择阶段
其中效果相对最好的明显是 Euler_A
但在效果确定时,使用不同采样器进行分支选择、可能性探索,也是没什么问题的

width 和 height

宽高默认512,在 txt2img 的模式下,并不建议你修改这个值
太低或者太高的值会造成一些奇奇怪怪的问题
并且现阶段大部分模型都是喂的 512*512 的图,因此生产 512*512 尺寸的图效果也是最好的
如果需要调高尺寸应该使用 图片放大相关的技术(参考下文)

选项

restore faces

储存脸部,遇到比较喜欢的脸形时可以勾上,
在设置中 Face restoration model 可以选择具体的算法, 但需要低端显卡注意的是 GFPGAN 似乎会申请额外的 VRAM

tiling

让图片平铺

highres.fix

一种修复算法,用于图片尺寸放大的情况

Batch count

本次需要生产的图片批次,一个批次可能因为你的脚本设置生产 N 张图,那么
$$总生产数量 = N * M_{batch ~ count}$$

Batch size

一个批次生产多少张图,但注意这个会加大 VRAM 的申请数,一般中低端显卡,只需要保持 1

CFG Scale

Classifier Free Guidance Scale,图片应当遵守的语句描述的强度,强度越高越精确,但图片自由发挥的程度就越低
对于需要风格化的图片,应当适当降低、放开,
而对于需要精确表达的图片,应当提高值,越高的值使得它越接近参考的源内容(也就越能看出原图的痕迹)

Seed

也就是随机数种子, 保持相同的种子是复现一个画几乎必须的前提
而使用相同种子的前提下,出来的画作也并不一定结果相同

但由于采样过程的性质,同一个种子生产出的作品,往往在某些方面具有相似性
因此在探索 AI 的一些特质、或者对于一幅画进行打磨探索 时,建议使用相同的种子

另外,下拉栏里还有一些 Resize seed 之类的功能,目前需要等他文档完善

Script

该下拉栏允许你制定一些批量生产的内容,

Prompt Matrix

参考前面文章介绍的 prompt matrix
通过为 prompt 加入 | ,使得一个批次能够渲染多张 prompt 存在略微差异的图

X/Y Plot

即,允许你输入两个变量,每个变量可以指定一系列值(用逗号分隔的 prompt,或者用特殊语法指定的数字序列),
这两组值构成一个矩阵,根据他们的数量,每个批次会为你生产 X * Y 张图,每张图分别使用矩阵上对应的值作为参数输入

数字序列既可以用 , ,也可以用以下语法:

数字序列

使用变化的参数来创建图片阵列
这些参数在 X 和 Y 中声明,以逗号分隔,
在下拉栏里可以看到支持的参数类型,
例如 Seed 就是种子,

和一般的矩阵语法一样,也是会排列组合生成多种图

并且,对于数字和浮点,支持特殊方式声明一个区间(避免大量数字写在里面)

  • 1-5 表示 1~5的序列
  • 1-5(+2) 表示从1开始,以括号内的数值作为等差,而产生的序列
  • 1-5[5] 表示在1~5之间,生成指定数量的序列

举例

X: Steps  : 28, 35  
Y: Sampler: Euler, Euler a  

即会创建四张图,分别是:

Step=28, Sampler = Euler,
Step=28, Sampler = Euler a,
Step=35, Sampler = Euler,
Step=35, Sampler = Euler a,

Leave A Reply

Your email address will not be published. Required fields are marked *