在开始这篇文章之前,我想先给大家先容一下我个人学习深入 SD 的学习曲线。
先学最根本的,大概理解参数模型提示词的用场,先把 SD 的流程跑通,这一步大概可以做出来相对看得过去的图了然后再去研究模型和提示词的高等用法,比如,混用 lora 模型,提示词的分步和领悟写法,这个时候,一定会涉及到一些事理性的东西,就会理解为什么 AI 画不好手了。到这一步,可以对图进行针对性的优化了,比如说一个图怎么达不到提示词想要的效果,可以针对性地优化提示词。学习其他功能,图生图,Control net 插件,以及分层掌握 Lora 模型等进阶功能。演习自己的模型一、图片比拟1. XYZ 图表的利用
XYZ 三维图表是一种用于可视化三维数据的图表。它由三个坐标轴组成,分别代表三个变量。这个工具的浸染便是可以同时查看至多三个变量对付结果的影响。详细在 sd 中,xyz 图表可以帮助我们不雅观察到三个变量的变革对图像的影响,以便我们更好的调度参数,如此,我们便对各个参数的浸染更加理解,纵然往后 sd 更新了新参数,我们也可以在不须要教程的情形下知道该参数的含义。
这项功能可以在 文生图/图生图 界面的左下角中 “脚本” 一栏内选择 “X/Y/Z 图表” 以启用。
举个例子,我们想要测试采样器(Sampler),迭代步数(Steps)和根本底模型(Checkpoint name)三个变量对图片的影响,点开 X 类型,选择为采样器,Y 和 Z 依次设置为迭代步数和根本底模型。
在填各个轴数值的时候,将对应的参数以英文逗号隔开即可。以 X 轴的 sampler 为例,我们可以把要比拟的采样器的名称复制进去。其余,也可以点击右边的“book”图标,加载本地所有的采样器,然后删除掉不须要的即可。在填 Y 轴的迭代步数时,除了可以直接输入数值外,也可以采取其余两种办法来写。
出发点-终点(间距),例如:20-50(+10)就表示,从 20 到 50,每一步加 10。出发点-终点[步数],例如 20-50[4]就表示,从 20 到 50,一共四步。这两种办法的效果都与直接输入“20,30,40,50”等效。
终极我们会得到一个这样的网格图。
这里还有一个小技巧,如果我们以为图与图之间没有间隔,混在一起不好区分,可以调度这里的数值,来增加图与图的间隔。将这里的间隔调度为 12 后效果如下:
2. 提示词矩阵
①基本利用办法
在许多情形下,一大串从网络上抓取的提示词在某些模型中表现良好,但在改换模型后可能就无法利用。有时候,一些看似无用的提示词被移除后,画面的觉得会变得怪异,不清楚到底是哪里受到了影响。这时候,就可以利用 Prompt matrix 来深入探究缘故原由。与之前先容的 X/Y/Z plot 比较,Prompt matrix 的利用办法相似,都可以天生一组图表,但它们的设置办法有很大的差别。
我们举个例子来解释这个脚本的利用方法:
例如我们在别人的提示词中看到了这两个词:dutch angle,autumn lights,翻译过来是倾斜的角度,秋日光影,每个字都懂,但是我们还是无法知道这些词对图像的影响。
1)首先我们把选择提示词这个部分选中正面。(默认便是选中正面,不须要去变动)。其他参数我们保持默认即可。
2)接下来我们将两个词填入正向提示词中,这里的格式是“|测试提示词 1|测试提示词 2”。
在上面的这个图中,第一行的提示词会被用在每一张图上,第二、三行被“|”分割的提示词,会被当成矩阵提示词,交错添加在终极的图上。
3)然后,我们可以产出这么一张图。
左上角的第一张图,便是什么额外提示词都没加的状态,它第二列的图,则全都是添加了“dutch angle(倾斜角度)”这个提示词的效果。第二行则是都增加了“autumn lights(秋日光影)”提示词的效果。而最右下的,便是倾斜角度与秋日光影全部提示词都有的效果。 这样你就能很清楚地看到,各种提示词交互叠加起来的效果。
②进阶利用
提示词矩阵不止一次可以对单个词进行测试,还可以将一组词组合在一起进行测试。例如:
以此作为提示词产出的图如下:
二、图片微调
在完成终极的绘图后,有时我们可能会创造一些小问题,或者想要微调画面。这时,我们可以利用“变异随机种子”来实现。
以这样一张原图为例:
首先,我们先将随机种子确定,然后将这里勾选后,下面的子参数“变异随机种子”会被打开,变异幅度越大,终极的图与之前的图的差异越大。一样平常来说,我们会把这个值调度为 0.3,当然,这里也可以借助上面先容过的 xyz 图表进行考试测验,找到一个最得当的值。其余,我们可以把批次数提高,找到最得当的结果。
终极,我们可以得到这样的结果。
三、图片放大
由于显存大小的限定,常日我们只能在出图时天生 512512 大小的图像。然而,这个大小的图像常日不足清晰,纵然进行高清修复,也只能将分辨率提高到 10241024。如果我们强行将分辨率改变为 2000 以上,要么显存直接爆掉,无法天生图像,要么天生的图像会涌现各种奇怪的问题。
为理解决这个问题,我们可以利用“multi diffusion”插件来放大图像。这是目前图像放大的最佳办理方案,可以在放大图像的同时补充细节。
1. 插件的安装
一样平常来说,在秋叶的整合包中已经自带了这个插件。如果没有的话,点击扩展→从网址安装→重启UI即可。
网址:https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111
2. 插件的利用
①利用前的准备
去掉正向提示词中的有实际意义的部分,只留下例如"highres, masterpiece, best quality, ultra-detailed 8k wallpaper, extremely clear"的词汇。由于这个插件的事理是对大图进行分块绘制,如果在正向提示词中加入了详细工具,会使得这个工具遍布在图像的各个区域。「可选」把提示词勾引系数调大,例如调到 15 旁边,经由我的测试,效果是要好于 7 的,但是差别不大。3. 插件参数设置
我们首先将要天生的图发送到图生图下,将页面往下滚动,找到这两个标题,并点击右侧的箭头展开设置项。
①Tile Diffusion 参数设置
我们只须要调度以下五个参数即可,其他参数保持默认即可。
放大算法:真人图像用 4x+,二次元图像用 4x+anime。
放大倍数,即终极图像相对付原图的放大倍率。
renoise stength 推举“0.3-0.6”之间。
②Tiled VAE
首次利用时点击 reset,系统会自动打算出最适宜当前电脑配置的编码器区块大小和解码器区块大小。然后如果放大后的图颜色失落真,勾选压缩编码器颜色修复即可。
末了,我们点击天生即可。
从右下角的图片信息可以看到,我们已经得到了 2k 的图。
并且在原比例显示时,也是非常清晰的。
四、提示词进阶
在之前的文章中,我们先容了提示词的基本语法和撰写办法,在这里我们要先容一下更进阶的语法和利用办法。
1. 提示词的顺序
先说结论:越主要的提示词该当放到越靠前的位置。
这里做一个测试,1girl,1cat
可以看到,当 cat 这个提示词在前时,猫的细节明显多了很多,而且乃至 AI 将猫耳的元素加到了人物身上。
结论:Prompt 的顺序会影响画面的组织办法,越靠前的 Prompt 对构图的影响越大。虽然本次试验只涉及一个场景,但在更多的后续探究和繁芜场景构建中,这种影响的有效性已经得到证明。然而,它并非绝对有效,在某些情形下或者较为繁芜的场景中,这种规律可能会失落效,但总的来说,遵照这个规律写提示词更随意马虎得到自己想要的场景。
2. 分步描述
有时候,在特定的情形下,你可能希望一个提示词在打算过程中持续到达到 X%时停滞,或者在达到 X%时才加入,或者在开始时利用提示词 A,然后在达到 X%时切换到提示词 B。在这种情形下,SD 供应了这样子功能的语法:
[A:B:number] 表示:A 提示词跑到 number 之后换成 B 提示词
[A:number] 表示:A 提示词跑到 number 之后才开始加入
[A::number] 表示:A 提示词跑到 number 的时候停滞利用
我们来看一个例子:
假设你想画一位穿着白色毛衣和橘色皮衣的女孩,并测试不同比例的 Prompt 的效果,你可以考试测验以下办法:
[White sweater:orange Leather coat:0.2]
这意味着前 20%的图像利用“白色毛衣”提示词进行绘制,剩下的 80%则利用“橘色皮衣外套”提示词连续绘制。
同样,[White sweater:orange Leather coat:0.5]表示在绘制到一半时,提示词从“白色毛衣”转换为“橘色皮衣外套”,而 [White sweater:orange Leather coat:0.9] 则表示在绘制到 90%时才切换到“橘色皮衣外套”。以下是效果比拟:
3. 领悟描述
语法是:[提示词 A|提示词 B]。
这种用法非常罕见,基本上便是在每个回合中不断轮流利用提示词,效果会变得难以预测。例如,下图利用了这样的提示词,[black hat|red hat]是黑帽和红帽提示词交替利用,但实际上天生的帽子并没有真正变成红黑相间,而是黑底帽子带有了赤色装饰。
笔者建议,这种用法慎用,可控程度相称低,很随意马虎涌现奇奇怪怪的图。
4. 反向提示词的进阶用法
反向提示词的高等用法不仅仅是写一些低质量的提示词,还可以写一些与正向提示词干系但不须要的提示词。例如,在正向提示词中,上半身常日会默认绘制手,但是我们可以将手写入反向提示词中,从而达到更加自由的绘制效果。
5. 借助 ChatGPT 写提示词
在编写提示词时,我们可能会碰着不知道如何描述一个场景的情形。例如,我们想要绘制一张女孩在咖啡馆里看书的画面,但不知道如何描述这个场景。这时,我们可以借助 ChatGPT 来供应灵感,打开思路。
详细操作如下:首先给 ChatGPT 一个基本的提示,让它帮助我们产生画面描述。
我这里的基本提示如下:
假设你现在是一个创意插画师,接下来我会给你一些提示,你须要以这个提示为依据,去组合想象天生一副插画的措辞描述,请把稳,不许可用长句,尽可能用词汇,其次是短语。其余尽可能多地合理地去补充场景中对人或风景的细节和特色,不少于 5 处,例如主体的衣着,长相,姿势,背景的花草树木等,尽可能的帮我补充这些我没有提到的细节,整体内容丰富一点。
大家可以直接复制,也可以在此根本上加入一些其他细节。
之后,我们输入一个大略的场景描述,例如“女孩坐在咖啡馆”,ChatGPT 就会给出对应的画面描述,接下来,我们从中提取出主要的提示词即可。
其余,我们还可以将借助一些 ChatGPT 的软件或浏览器插件,将这个保存成一个模板,往后我们须要时直接输入我们的画面即可,不须要重复输入基本提示。
以 iOS 上一个叫“Chitchat”的软件为例:(chitchat 的事情职员看到后,请给我广告费)
在这部分的末了,额外补充一个知识点:ChatGPT 的提示语句式:
“假设你你现在是 XX 专家,须要做 XXX,请把稳:哀求 1,哀求 2”,利用这样的句式会让 ChatGPT 的效果大幅提升。这个不是本文重点,这里不展开详述。
5. 提示词管理
在开始之前,我想先说一下为什么推举这样做。虽然网上有很多所谓的提示词大全,但我不建议直接更换自己的提示词管理,缘故原由如下:
我们不须要那么多的风格,过多的提示词会增加利用本钱和管理难度。我们不知道未经利用的提示词具体会给图片带来什么变革。正是出于这样的考虑,我不想分享所谓的“海量优质提示词”,我认为这些东西的噱头代价大于实际意义,收藏后很可能就会被遗忘。授人以鱼不如授人以渔,我希望大家学会的是一种有效的提示词管理方法。
这里推举一个网站: https://moonvy.com/apps/ops/ ,我们可以在这里对我们的提示词进行管理。
利用方法可以参考这个视频: https://www.bilibili.com/video/BV15N411P7D3/?vd_source=bd8f1862d445f4e01d7c1f49857dd474
五、ControlNet插件现在的 AI 绘画技能紧张采取了一种名为扩散模型的方法,这种方法能够使天生的图片呈现出独特且富有意见意义性的效果。然而,这种方法也存在一个显著的问题,那便是天生的图片可控性非常差。在某些情形下,天生的图片可能会非常精美,而在其他时候,效果却可能不尽如人意。这使得设计师在利用此类工具时,很难确保能够知足客户的详细需求。
然而,随着一种名为 ControlNet 的新技能的涌现,这一局势得到了改进。ControlNet 能够帮助设计师更好地掌握 AI 绘画过程,从而使这个工具更加符合他们的实际事情需求。AI 绘画不再仅仅是一个供人们娱乐的小玩具,而是逐渐发展成为一种能够真正帮助设计师提高事情效率的实用工具。虽然目前 ControlNet 的可控性仍旧有待提高,但与之前的技能比较,它已经实现了质的飞跃。
Controlnet 插件的实质是利用图像作为输入信息的办法,以填补措辞在某些情形下的局限性。相对付措辞而言,图像更加直不雅观、简洁、易于理解,能够更加准确地传达信息。因此,Controlnet 利用图像作为输入办法,可以更好地帮助 AI 理解我们的需求,从而天生我们所须要的图片。
在图片中,包含了多种信息,例如线条轮廓、表面凹凸等。Controlnet 插件的事情事理是利用特定的模型提取出特定的图像信息,然后将其输入给 AI,勾引 AI 天生图片。
总的来说,我们可以将利用图片作为提示词视为补充措辞的办法。这里补充一下,在文生图和图生图中用 controlnet 插件的差异,一句话解释白,须要天生新的图片用文生图,在原有图片上优化利用图生图。
1. 插件安装与模型下载
①插件安装
一样平常来说,网上的整合包已经包含了 controlnet 插件,不须要额外安装。
安装办法:
选择到从网址安装: https://github.com/Mikubill/sd-webui-controlnet (推举)可以直接去这个链接这里下载 https://github.com/Mikubill/sd-webui-controlnet/archive/refs/heads/main.zip ,然后解压到 extension 文件夹②模型下载
我们可以直接去 https://huggingface.co/lllyasviel/ControlNet-v1-1下载对应的模型 ,把这些后缀为 safetensors 的文件下载下来,然后放到这个文件夹中即可。
2. 利用
①基本利用流程
这里以最常用的 canny 模型为例,模式选择文生图,canny 模型的浸染便是提取出图片的线条信息并输入给 AI。
在界面最下面找到 controlnet 的插件,点击右边箭头展开参数,将这四个选项全部启用。
然后将预处理器和模型全部选择为 canny,这里要把稳,前面的预处理器与后面的模型要对应。接下来点一下这个爆炸的 icon,在右边会显示所提取出的线条信息。
下面的那些参数我们先保持默认不变,接下来,修正采样器为 DPM++2M Karras,总批次数修正为 4,根本底模型改为“cetusMix_Coda2”,并且填入如下的提示词:
正向提示词:masterpiece, best quality, ultra detailed, A girl, cute, light smile, black hair, purple eyes, yellow clothes, standing, outdoor, long sleeves,
反向提示词:nsfw,(watermark),sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), horror, geometry, badpromptv2, (bad hands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), crown braid, ((2girl)), (deformed fingers:1.2), (long fingers:1.2),(bad-artist-anime), bad-artist, bad hand
然后我们点击天生即可。可以看到,最终生成的图片是在初始的真人的根本上天生的。
3. 详细参数先容
低显存模式:如果你的显卡内存小于即是 4GB,建议勾选此选项。
完美像素模式:勾选后,controlnet 会自动去匹共同适的像素大小。
许可预览:勾选后,点击爆炸 icon,在图片右边会展示所提取的图片特色信息
掌握权重:可以调度该项 ControlNet 的在合成中的影响权重。
勾引参与步数&勾引终止步数:controlnet 对最终生成结果的掌握步数范围比例。Guidance strength 用来掌握图像天生的前百分之多少步由 Controlnet 主导天生。Guidance Start(T) 设置为 0 即代表开始时就参与,默认为 0,设置为 0.5 时即代表 ControlNet 从 50% 步数时开始参与打算。
canny low threshold & canny high threshold
更高的阈值下,所提取的线条更少,更低的阈值下提取的线条更多。
掌握类型:更遵照提示词,更遵照 controlnet 输入的图像特色,或者均衡。
①常用模型先容
除了上面利用的 canny,还有几个常用的模型,我在这里给大家先容一下其他模型的用场。
Depth
通过提取原始图片中的深度信息,得到前后景的关系,可以天生具有同样深度构造的图。一样平常用于提取物体边缘轮廓,没有物体内部的细节。
以这个模型为勾引,天生的图片如下:
Lineart
与 canny 类似,该模型对线稿的处理能力极为精良。同样也是将图形提取成线稿,然后在此根本上进行上色与细节补充。
MLSD
该模型通过剖析图片的线条构造和几何形状,来构建出建筑外框,适宜建筑设计的利用。
Normal
适用于三维立体图,通过提取图片中 3D 物体的法线向量,绘制出的新图与原图的光影关系完备同等。此方法适用于人物建模和建筑建模,但更适宜人物建模。
hed(边缘检测算法):
canny 提取线稿更壮实,hed 提取的线条更圆润
OPENPOSE
根据图片天生动作骨骼中间图,然后天生图片,利用真人图片是最得当的,由于模型库利用的真人素材。
目前已经有五个预处理器,分别是 openpose,openposefull,open posehand,openposefaceonly,openposeface,这五个预处理器分别可以识别身体姿态,姿态+手部+脸部,身体+手部,仅脸部,身体姿态+脸部。
我们这里以身体姿态为例,
上图中右边便是 openpose 提取出来的人物骨骼图,以此勾引天生的图像如下,可以看到,图像里人物的姿势都与原图保持了同等。
这里顺便给大家推举一个网站: https://escalalatina.com/mujeres/sentada-azul-naranja/ ,可以从这里面下载人物的不同姿势的图片。
Segment
语义分割模型,标注画面中的不同区块颜色和构造(不同颜色代表不同类型工具),从而掌握画面的构图和内容。
如上右图所示,每个色块代表不同的含义,完全的色块释义对照表如下:
原图文件链接如下: https://cowtransfer.com/s/3a5fc9e578ab44 ,各位自取即可。
在这个模型下,我们可以更自由地掌握图片的天生。例如我们想要添加一个人,将预处理后的色块图下载后,在 PS 中添加一个人物轮廓的色块,颜色从表格中得到。然后再导入到 controlnet 中,把稳这时预处理器要选择无,后面依旧选择 seg,如图所示。
再次点击天生后,可以看到,图片按照我们的哀求在中下部添加了一个拿箱子的人,并且由于我们选择的模型是二次元的,以是天生的图片也是二次元的。但整体的构造是遵照我们的指令的。
六、常见问题
这里整理了一些大家在利用 stable diffusion 过程中碰着的常见问题,希望可以帮助到大家。
1. Vae 模型是否必须要有?
不须要,现在的大模型很多已经自带了 vae 模型,我们纵然不该用额外的 vae 模型也可以得到比较好的效果
2. 大模型和 lora 是否必须对应?
这个是不须要的,并且乃至我们可以对 lora 模型混搭利用。例如:
3. 我明明描述的是一个人,终极图像却天生了多个人?
一样平常来说多人的问题,大概率是图像尺寸过大,或者比例不对导致的。
为什么会涌现这样的问题呢?这要从 stable diffusion 的底层演习集提及,stable diffusion V1.5 的版本实在是基于 512x512 图像上进行微调的。当我设置的图片尺寸远大于 512x512,或比例与 1:1 相差过大时,SD 就会采取提示词中的部分进行添补,以是会涌现多人或多头的情形。
办理方案:
a. 多抽卡。最直接的方案,天生很多张图,把多人或多头的图片扔掉,但是这种方案很摧残浪费蹂躏算力。
b. 只管即便保持文生图时,直接天生的图像比例和尺寸在 1:1 和 512x512 旁边,须要放大时采取文章中提到的方法进行。
4. 无法天生全身照,只管我添加了“full body”这种词。
a. 利用 512768 这样的纵向比例的图。
b. 在提升词中加入诸如“牛仔裤”此类的对下半身的描述词
其余,在碰着问题时,我们可以打开掌握台,看一下掌握台的报错,很多小的问题,我们都可以通过这里创造并办理。
例如在我初次利用 controlnet 时,创造掌握台报出来这样类似下载失落败的缺点,于是我手动下载掌握台中的文件到指定的文件夹就办理了这个小问题。
诸如此类的问题还有很多,善用掌握台可以办理大部分的小问题。
后记如今,我们常常可以看到有关“学习 AI,否则你就掉队了”的文章和帖子,但是我认为这种说法并不完备精确。客不雅观上说,chatgpt、mj 等 AI 工具已经被非常广泛地利用,并且也确确实实地带来了生产力的提高,但是我们并不须要像设计师必须闇练节制 PS 一样精通 AI。相反,我们只须要保持好奇心,考试测验一下,摸索一下,享受这个过程,无须把它当成考试或者培训。我们不应该被“不学 AI,立时就会被替代”的焦虑所困扰。当前,AI 绘画等技能也只是涌现了不到 1 年的新事物,没有所谓的专家,只有在互联网上扮演专家的人,包括笔者在内,也只不过是 AI 绘画领域的小学生而已。科技日月牙异,自去年 AI 绘画技能初现端倪以来,其成果已然大不相同,今日之 AI 绘画已愈发强大。
因此,我们只须要保持兴趣即可,而非纠结于学习哪种技能、安装哪些插件。在这个新领域里,我们应怀抱好奇心,共同享受探索的乐趣,基于此,若能为生活、事情带光降盆力的提升,那便是锦上添花。
愿诸君玩得愉快。