之前讲过prompt的基本使用,比如()以及[]的作用.现在讲一讲脚本的使用,对于prompt的理解和使用有很大帮助.主要来源是stable diffusion webui的库介绍.
首先回顾一下prompt权重的更改,一般利用()以及[]
•a (word) – increase attention to word by a factor of 1.1•a ((word))– increase attention toword by a factor of 1.21 (= 1.1 * 1.1)•a [word] – decrease attention to word by a factor of 1.1•a (word:1.5) – increase attention to word by a factor of 1.5•a (word:0.25) – decrease attention to wordby a factor of 4 (= 1 / 0.25)•a (word) – use literal () characters in prompt
而()可以指定权重,格式类似(word:1.5),[]代表 0.952倍权重,[]不能指定权重
注意
生成的图像大小默认是512*512,因为训练时的图像大多也是这个大小,所以如果更改生成图的大小,画面可能出现多个人物或者一些奇怪的东西.
安装stable diffusion的web ui后点击文生图,下面有脚本选择
使用x/y/z图表
创建具有不同参数的多个图像网格。X和Y被用作行和列,而Z网格被用作批处理尺寸。
通过X类型、Y类型和Z类型字段选择哪些参数应该由行、列和批共享,并将这些参数用逗号隔开输入X/Y/Z值字段。对于整数和浮点数,以及范围都支持。
•范围:•1-5 = 1, 2, 3, 4, 5•范围以及增长的值:•1-5 (+2)= 1, 3, 5•10-5 (-3) = 10, 7•1-3 (+0.5) = 1, 1.5, 2, 2.5, 3•范围以及在这之中要选择几个数:•1-10 [5] = 1, 3, 5, 7, 10•0.0-1.0 [6] = 0.0, 0.2, 0.4, 0.6, 0.8, 1.0
下图就是一个X轴利用Prompt S/R,Y轴是跌打步数的图
上图只用了X和Y轴,还可以再加上Z轴
Prompt S/R
S/R提示是X/Y图的一种较难理解的操作模式。S/R是搜索/替换的意思,这就是它的作用–你输入一个单词或短语的列表,它从列表中选取第一个并将其作为关键词,然后用列表中的其他条目替换该关键词的所有实例。
举例如下
这里将prompt S/R作为X轴,迭代步数作为Y轴.
prompt是
a girl,suspender skirt,high quality, masterpiece,
所以会选取其中的suspender skirt,替换为其他单词再跑一遍.
如果想一次替换多个单词,
参考上图,可以使用双引号括住一个表示一次S/R替换.
此外X/Y/Z图表中还有很多其他可选参数,可以自己多尝试
Prompt matrix
使用|字符分隔多个提示,系统将为它们的每个组合产生一个图像。例如,如果你使用a busy city street in a modern city|illustration|cinematic lighting提示,有四种可能的组合(提示的第一部分总是被保留):
•a busy city street in a modern city•a busy city street in a modern city, illustration•a busy city street in a modern city, cinematic lighting•a busy city street in a modern city, illustration, cinematic lighting
拿官网的例子说明,在上面写的prompt中,本身是a busy city street in a modern city,然后使用了matrix语法,首先会有原本的prompt,然后加上第一个illustration,然后是cinematic lighting,最后是这两个都加上.所以会生成四张图.
Prompts from file or textbox
这个功能比较实用,我们可以把常用的prompt存到本地或者从本地再拿出来用.
可以自己输入,也可以拖入文本文件.
最后快速介绍一下模型融合,或者叫模型合并
模型合并
当我们想使用多个模型中每个模型的一些样式风格时,可以考虑使用模型合并,这跟之前讲过的Lora多个模型不同,之前是Lora多个人物,现在是多个模型生成一个新的模型.
当然也可以使用这个功能将.ckpt格式的模型与.safetensor的模型相互转换
主要参数如下
主要考虑
1.要使用哪种插值方法2.将乘数设置为多少3.要使用哪些主模型、副模型和(如果需要)第三模型4.一个文件名以给出合并后的模型
本身并没有太多的技巧
推荐可以看看其他大佬们融合模型的方法,比如/hdg/ Stable Diffusion Models Cookbook (rentry.org)[1]
比如这里通过多次融合最终得到了一个berrymix的模型
首先使用NovelAI和stable diffusion 1.4采用权重和得到Novel AI Fix,再用得到的模型跟其他模型不断融合,因为大模型的训练对于个人比较麻烦,但是通过这种方法得到新的模型还是不错的.此外在放一个优秀的融合模型列表STABLE DIFFUSION MIXING EMPORIUM (rentry.co)[2]
参考资料
1.Stable Diffusion-⑤如何有效书写提示词_哔哩哔哩_bilibili[3]2.stable-diffusion-webui prompt语法详解 – 知乎 (zhihu.com)[4]3.stable diffusion Rentries + Simple Installation Tutorial! (rentry.org)[5]4.Features · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com)[6]官方文档 推荐查看
References
[1] /hdg/ Stable Diffusion Models Cookbook (rentry.org):
https://rentry.org/hdgrecipes#model-merging-crash-course
[2] STABLE DIFFUSION MIXING EMPORIUM (rentry.co):
https://rentry.co/lftbl
[3] Stable Diffusion-⑤如何有效书写提示词_哔哩哔哩_bilibili:
[4] stable-diffusion-webui prompt语法详解 – 知乎 (zhihu.com):
https://zhuanlan.zhihu.com/p/600821549
[5] Stable Diffusion Rentries + Simple Installation Tutorial! (rentry.org):
https://rentry.org/stablediffusion
[6] Features · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com): https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#attentionemphasis