天天看点

Stable diffusion AI画图辅助脚本 Script 的使用(一)

作者:技术宅老张

一、Script 脚本简单介绍

如果你在使用 Stable diffusion 进行画图时想要使用一些额外功能,但该功能目前又没有对应的扩展可以实现,这时脚本(Script)就派上用场了。

如果你正好熟悉 Python,就可以使用 Python 编写脚本来调用 Stable diffusion 提供的 API 以实现一些额外的扩展功能,当然如果你不会 Python 也没关系,可以直接使用别人做好的脚本。

Script 脚本选项在文生图或图生图的左下角可以找到,点开下拉列表可以看到当前已安装的脚本。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

脚本文件一般存放在 Stable diffusion 主目录下的 Scripts 文件夹里,如果是通过扩展安装的脚本,脚本文件则存放在主程序目录下 extensions 文件夹下对应的文件夹里,比如用于脸部修复的 Face editor 脚本。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

二、Script 脚本安装

脚本文件是 py 格式的 Python 文件,一般来说一个脚本对应一个文件,如果想要安装脚本,只需要把对应的 Python 文件放到 Scripts 文件夹里即可,安装非常简单,就下载、复制、粘贴 3 个步骤。

目前大部分的 Script 脚本都可以在 AUTOMATIC1111 主页的 Wiki 里找到。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

点开右侧 Custom Scripts 自定义脚本选项,在页面上找到需要的脚本点开链接,把 py 格式的 Python 文件下载下来放到 Scripts 文件夹里就可以使用,如果 Webui 正处于运行状态,要重启 UI 界面才能看到新增加的脚本。

三、几个实用 Script 脚本的介绍

现成的脚本有很多个,这里介绍几个比较实用的脚本,至于其他的脚本感兴趣的话可以到官网进行查看。

1、X/Y/Z plot

这应该是目前用得最多的一个脚本了,该脚本目前已经集成到 Stable diffusion Webui 里面,不需要手动下载安装就可以直接使用。

这个脚本的主要功能是使用控制变量法来控制出图的结果,直观对比不同参数下出图的效果,以获得最佳的参数设置。嗯……文字解释可能不太清楚,下面看一个直观的例子。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

这 3 张图片除了采样方法不同之外,其他的参数都是一样的。正向提示词只有一个 1girl,反向提示词也只有一个 nsfw,模型用的是 cityedgemix,其他参数全都默认。

正常情况下我们需要手动改变采样方法分 3 次来生成 3 张不同的图片进行对比,这样的操作非常繁琐,所以就有大神制作出 X/Y/Z plot 脚本来解决这个问题。

在 Script 下拉列表里选择 X/Y/Z plot,下方就会出现很多个输入框,大致可以分成两部分,上面一部分是用来控制出图的参数,下面一部分是用来设置图表的参数。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

X/Y/Z type 可以理解成三维坐标系,每一个坐标都可以设置不同的参数类型,比如前面的示例就是使用下面设置来控制出图的。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

设置好参数直接点击 Generate 生成按钮,脚本就会按照设置的参数来控制 Stable diffusion 的出图,并将生成的图片组合成一个图表的形式,方便对比观察。

至于 X/Y/Z type 都有哪些选项可以选择,大家可以自行点开查看,这里主要介绍一下 values 值的填写。

values 可填写的值大致可以分成三种类型:枚举类型(比如采样名称)、数值类型(比如采样步数)、文本类型(比如提示词)。

在旧版本里面,采样名称、模型名称也是属于文本类型的,需要手动填写,但版本更新了之后,这些可枚举的类型都改成了标签的形式,具体可以看上一篇新版本介绍的文章,这里就不再重复。

a、数值类型

在上面的基础上,增加 Y type,参数设置为 Steps 采样步数,values 填写想要的采样步数,如: 20,40,60,采样步数只能填写数字,不能填写其他类型,不然会出错。跟提示词一样,每个数字之间也用英文半角逗号隔开,如下图。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

设置好后直接点击 Generate 按钮出图,就可以得到如下具有横坐标以及纵坐标的二维对比图表,横坐标是采样方法,纵坐标是采样步数。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

以上采样步数的 values,除了可以填写指定的步数,还可以以区间的形式填写,如:20-25、20-40(+5)、20-40[5],第一个的意思是在这个区间内,每一步都会执行一次。后面加小括号意思是在这个区间内每隔 5 步执行一次,加中括号的意思是把这个区间内的步数平均分成 5 份来执行。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

还可以直接填写多种组合,只要使用英文半角逗号隔开就行,具体的效果这里就不再展示出来了,大家可以自己动手试一下,只有实际操作过才会印象深刻。

b、文本类型

文本类型就以提示词为例,给正向提示词加一个 black hair ,其他参数同样保持不变。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

Script 脚本同样使用上面的参数,在前面的基础上加上 Z type,参数设置为 Prompt S/R,这个参数可以用来替换提示词,以观察不同提示词下的出图效果,values 值则填写 black hair,yellow hair。

注意这里填写的提示词,第一个提示词在正向提示词里面必须存在,不然会匹配不到。第一个是用来匹配的,后面再跟其他提示词就可以,这里以黑色头发跟黄色头发为例。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

参数填写完成后,直接点击 Generate 按钮出图,就可以得到如下具有 3 个坐标轴的图表,看起来很直观,就不再解释了。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

再往下的选项就是关于图表的一些设置,Draw legend 可以设置最终的图表是否显示参数名称;Include Sub Images 是控制最终生成图表的时候是否把图表里面的图像单独生成;Grid margins(px) 是用来控制图表里面每张图片的边距;Keep -1 for seeds 意思是对于图表里的每一张图片是否都采用随机种子;Include Sub Grids 与 Include Sub Images 一样,是用来控制最终生成的图表时是否把图表里的图表单独生成,主要用在三维图表里面。

下图是部分设置以及效果。

Stable diffusion AI画图辅助脚本 Script 的使用(一)

最后面的三个按钮是用来交换坐标轴的,Swap X/Y axes 意思就是将图表的 XY 轴进行交换,很简单。

写到这里,发现因为图片太多的原因篇幅又太长了,所以还是分两部分吧,下一篇介绍 Prompt matrix 提示词矩阵以及 Ultimate SD Upscale 终极放大这两个脚本,同时再简单介绍一下如何编写自己的脚本。