AI绘画 – Stable Diffusion 笔记 (整合版)

图片处理核心思想

尽量将图片分块处理

例如,将假人模型换成真人,需要处理的部分有3处,可以使用局部重绘功能,依次进行脚部、手部、头等等按部位依次处理

在生成效果不理想时,可以结合ControlNet模型介入,比如要修改人物某些部位时,部位错乱(例:头部位置出现手、或其他不需要的素材)

运行异常处理

如遇未知错误,开启使用共享显存看是否解决

ControlNet作用与模型功能

新版ControlNet预览为预处理旁边的爆炸按钮

大概作用为在作图时,会参照所给出的图片的构成,生成与之相近相关的图片,每个模型的构图方式均有区别

图片[1]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

Canny(硬边缘)模型:

主要用于将图片转换为类似线稿的图片,在作图时会参照该线条尽量贴近

图片[2]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

最终效果:

图片[3]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

Color模型:

主要用于将图片转换为色块图片,在生成图片时颜色色彩会用作参考

新生成的图片可能与原图毫无相关,但是如果用色块图片对比,可以发现色彩的位置几乎相同(取决于权重)

左边为原图,中间为color模型生成的色块图片,右边则为新生成的图片

图片[4]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

MLSD直线检测模型:

该模型多用于室内设计?

与名字相同,只检测图片中的直线,如果有曲线部分则会忽略,生成只有直线的线稿图

参数详解:

下图为 MLSD Value Threshold(阈值) 参数为0.5(中图)与0.1(右图)生成的图,在阈值1的情况下生成的处理图为空白,完全没有线条。

图片[5]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

该阈值越高,对直线的检测越不敏感(个人感觉这条解释不太对,应该是对直线的要求更严格,简单理解为阈值越高,识别的线条需要更直,否则将跳过此线条。)

MLSD Distance Threshold (距离阈值):

该参数的作用在于密集线条的处理,阈值越高,密集的线条越小,参考下方图片红圈标注部分

该图从左到右的距离阈值为0.1,10,20

图片[6]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

最终效果(低模为sdv1-5):

从左到右分别为 原图,直线模型处理图片,根据该模型生成的图片(无提示词生成)

图片[7]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

添加 Interior Design 提示词效果图:

图片[8]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

分块检测模型

未确定:新版的ControlNet中,分块模型从分块检测(segmentation)更改成了分块 (Tile),并细分了以下预处理:

图片[9]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

该模型用不同的颜色色块将图片中的物体进行标注,在参与作图后,生成的图片物体及位置几乎与原图相同

左为模型预处理图片,中为原图,右为新生成的图片

图片[10]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

openpost模型(姿势检测模型)

生成图片中人物骨骼的图片,在进行生成人物时,会将该人物的动作保持原有的姿势可以配合 3D OpenPost 插件进行对动作、人物比例的控制

效果预览:

图片[11]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

局部重绘

参数说明:

蒙版模糊度:该参数越大,蒙版生效的区域越小,具体效果如下图:在模糊度64生成的图与原图一模一样

图片[12]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

蒙版模式:重绘蒙版内容与重绘非蒙版内容,区别在于重绘的部分,如果选中重绘非蒙版内容,则会重绘除了自己选中区域之外的内容

蒙版区域内容处理:

4个处理方法:主要是原图与潜在噪声,区别在于与原图的相关性,在使用原图模式时,生成的图片与原图较为接近,使用潜在噪声则相反,效果好坏需取决于实际情况。

图片[13]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

图片[14]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

绘制区域:

  • 全图会更好的参考原图,更好的融入进原图

  • 仅蒙版模式:会将蒙版区域进行放大进行重绘,最后缩小到原图蒙版位置

二者区别:如下图所示,全图模式相对比较自然,而仅蒙版模式细节更多(道路、树木细节),但是由于后者是先放大再缩小,导致画面不协调。有时甚至出现画中画模式(这个可以考虑作为出图时用于刻画细节,比如本身图片中的照片?)

图片[15]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

仅蒙版的参考半径:

  • 如果蒙版区域较小,需要局部修改就可以适当调大参考半径
  • 如果蒙版区域足够大,需要重绘足够的细节则需要适当调小参考半径

图片[16]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

局部重绘涂鸦蒙版模式

主要用于将蒙版区域内的颜色进行替换,效果如下图

图片[17]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

利用局部重绘将假人替换为真人

需要将人物替换成假人,结合素材,只需要替换3个地方:头、手、腿,可以处理完一个部位后再用处理完后的图继续处理。

ControlNet介入作用:绘制的蒙版中比较粗糙,并且在区域内会生成任何图像,这个时候就要用到ControlNet进行限制,比如使用Canny线稿进行约束画面的线条基本不变,用openpose约束头部、手部位置等等

在进行头部处理时,使用Canny模型可以有效避免脖子区域生成配饰,

由于头部生成,发型会不同,如果使用默认的线稿进行生成,则生成的区域有点局限,可能无法生成满意的头部及发型。

这个时候可以先将预处理的线稿图下载,将头部区域涂抹删除处理再上传,让sd进行更好的联想。

在不同时使用openpose模型下,生成的图有几率会出现头部上出现手或其他部位,这时候就可以使用openpose进行四肢约束,不在该区域生成除头以外的任何身体部位。

同时使用多个模型会影响出图速度,根据实际按需启用即可

脸部处理:可以先将其他模型生成比较完美的脸转换成线稿,然后替换到图片的头部中,然后将重绘区域更改为仅蒙版(因为在全图模式下,会参照全图进行绘制,对细节处理没有那么好),最后基本参数都调整完后,可以适当添加提示词进行生成比较好的图片

XYZ脚本(数据测试脚本)

开启方法:

在脚本中选择 X/Y/Z plot

X Y Z轴分别可以选择不同的功能调整参数,例如采样器、迭代步数等各类参数,

如果有 Controlnet 介入,只会对第一个 Controlnet 生效

当开启脚本后,生成图片时会生成多张图片,分别对应所设置的参数,这些照片的 seed 值 均为同一个

采样方法:生成不同取样器的图片

迭代步数:生成不同迭代步数的图片,其中书写方式有2种

  • 范围: 20-30生成20至30迭代步数的图片(共11张)
    20-30(2)生成20,22,24,26,28,30步数的图片,其中括号中代表为每次生成后将迭代步数+2,直至30
    反之也可以写30-20(-2),这里会先生成30步数的图片,之后每次-2直至20
  • 指定步数: 20,30
    生成20与30步数的图片,不同的步数用英文逗号分隔即可

提示词替换(Prompt S/R):将现有提示词进行替换,依次生成不同提示词的图片
第一个提示词代表需要替换的,并且必须在生图的提示词中存在,之后替换的内容使用英文逗号分隔即可
也可以进行lora模型的替换或权重测试。

例:

提示词:1girl,white hair,

参数设定:

图片[18]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

效果图:

图片[19]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

图片修复

图片放大(超分辨率)

图片放大指的是将图片的分辨率放大,将低像素照片放大为高像素且清晰的图片,或是将不清晰的图片进行一个清晰度修复(这个原理好像也是先放大分辨率修复后再缩小为指定分辨率)。

开启位置:

文生图与图生图的开启位置不一样

  • 文生图是取样器的下方的高分辨率修复

  • 图生图则是脚本处,选择脚本,官方自带有SD模式放大(SD upscale)

    还有一个终极SD模式放大,此脚本为大佬修改过后,理论上会比官方的效果好一点

    https://github.com/Coyote-A/ultimate-upscale-for-automatic1111

  • 选项卡中的高清化(可以同时使用两种算法)

算法

算法的选择:每种算法效果都不一样,目前大致分类如下(按自己理解再细分):

  • 动画风格
    • 日漫风格
    • 国漫风格
  • 现实风格
    • 人像
    • 风景

算法针对的东西有很多,不止光上面列出来的,不同算法对某个物品或人物、景物等等所处理的结果都不一样

目前二次元图片使用 R-ESRGAN 4X + Anime6B 效果较好

真实图片使用 ESRGAN_4XSwinIR_4X 效果较好,也可以使用 LDSR , LDSR生成的图片偏黄,需要自己后期调整白平衡等

图片上色

顾名思义,就是给黑白图片上色,或者给图片改色(结合局部重绘)

需要的ControlNet模型

control_v11p_sd15_inpaint:https://huggingface.co/lllyasviel/control_v11p_sd15_inpaint/resolve/main/diffusion_pytorch_model.safetensors

control_v11p_sd15_lineart.safetensors:https://huggingface.co/lllyasviel/control_v11p_sd15_lineart/resolve/main/diffusion_pytorch_model.safetensors

将模型下载到 SD目录/models/ControlNet 目录下

该模型还有对应的二次元风格的,可以在 https://huggingface.co/lllyasviel 寻找

主要用的模型为Lineart模型作预处理,预处理的图片与Canny模型生成的线稿图相差不大,但是作为图生图来说,Lineart模型会更贴合原图

对比图:

图片[20]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

图片修补

局部重绘的 inpaint 模型可以用于老照片修复、改图、扩图(将图片的上下左右进行扩展,比如场景完整等)等等

在扩图中,缩放模式建议选择填充,效果比拉伸会好

在无提示词中,需要将控制模式修改为 ControlNet为主

而预处理器方面,有分以下几种:

图片[21]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

在仅局部重绘中,添加上 lama算法(基于傅立叶卷积的图像修复算法) 效果方面会更好

仅局部重绘 中,不会对蒙版区域外作修改,而 重绘-全局融合算法 会对整张图作修改。按实际选用

分块检测

插件列表:

分块检测的功能是将图片中物品、人物等用不同的色块进行标注:

图片[22]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

光线控制

光线控制模型:lighting-based-picture-control-controlnet

地址及说明:https://civitai.com/models/80536/lighting-based-picture-control-controlnet

强烈建议花时间看模型说明,因为光线在图片的作用中很大,不同光线可以延伸出不同风格的图片

灰度图可以很好的反映出图片光线的高光(越接近白的越亮)、暗部(反之)

图片[23]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

在处理光线时可以先使用ControlNet的Segmentation (语义分割),转换图片为色块图片,

添加上 control_sd15_seg 模型处理效果会更好?(经测试好像加不加都一样,并且加了之后处理速度变慢)

control_sd15_seg 下载:https://huggingface.co/lllyasviel/control_v11p_sd15_seg/tree/main

在这里使用光线模型出图时,

所用的测试图如下:需要给原图增加月亮

图片[24]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

在文生图中,PS处理过后的色块图设置在 ControlNet 单元1 中,并添加光线控制模型达到控制图片的光线

而原图则添加到 ControlNet 单元2中,使用 Segmentation 转换成色块,达到总体构图不变

最终效果如下:

图片[25]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

在这里发现图片的X Y得值相加,得到的图片与其他总值一样的图片光线明亮度基本一致

图片[26]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

而且 Controlnet 的介入时间、退出、权重对出图都有明显的影响

比如引导终止时机(结束控制步数)的增加与变化,对构图(画面的细节)的影响不大,

而权重的大小则会对构图影响较大,

直观的看图,在低权重下,引导终止时机长短,均出现了2个月亮,而权重高时则只有一个月亮

而我在测试引导介入时机时,在其他设置一样时,随着介入时机的增大,出图开始出现两个月亮,与低权重的情况下相似

图片[27]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

然后测试介入终止时机时越来越小,发现几乎没有变化:

图片[28]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

于是测试了终止时机越来越大时,发现对构图也是几乎无影响,数据如下:

图片[29]-AI绘画 – Stable Diffusion 笔记 (整合版)-简枫博客

目前有一个结论是,引导介入时机相当于是告诉你要画什么的时间,
当数值调大后,相当于画到一半才告诉你要画月亮,这个时候再去改为月亮就会在已有的画上强行修改(比如就是画面中出现了2个月亮),而引导终止时机影响不大的原因是,已经告诉过需要什么,已经有概念,所以基本上不会再偏离。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

    暂无评论内容