本文参考bilibili的链接:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili
目录
一、prompt提示词
1、概况
2、prompt分类
3、提示词的权重分配
4、反推提示词
二、WebUI参数说明
1、文生图参数
2、图生图参数
3、inPaint局部重绘及参数
三、模型
1、模型类型
(1)大模型
(2)Embeddings
(3)LoRa:低秩模型
(4)Hypernetwork 超网络
2、模型分类及top模型名称
(1)二次元模型
(2)真实系模型
(3)2.5D风格模型
四、分辨率放大的工具
1、高清修复Hires.fix
2、SD UpScale
五、AI绘画入门级扩展插件
1、中文本地化语言包
2、图库浏览器
3、提示词自动补全
4、提示词反推
5、Upscale放大扩展
6、局部细化重绘
7、提示词语义分割
8、无限放大动画视频
六、ControlNet插件
1、概括说明
2、安装
3、比较流形的5个ControlNet模型
(1)Openpose模型
(2)Depth模型
(3)Canny模型
(4)HED模型
(5)Scribble模型
3、MultiControlNet
首先提几个好玩的名词:
炼丹:训练AI学习图片生成模型
咒语:prompt提示词
包含内容:作品主题、画风、形象特点以及一些具体包含的要素
提示词的语法规则:
(1)人物及主体特征
服饰穿搭:white dress
发型发色: blonde hair, long hair
五官特点:small eyes, big mouth
面部表情:smiling
肢体动作:stretching arms
(2)场景特征
室内、室外:indoor / outdoor
大场景:forest, city, street
小细节:tree, bush, white flower
(3)环境光照
白天黑夜:day / night
特定时段:morning, sunset
光环境:sunlight, bright, dark
天空:blue sky, starry sky
(4)补充:画幅视角
距离:close-up, distant
人物比例:full body, upper body
观察视角:from above, view of back
镜头类型:wide angle, Sony A7 III
(5)画质
通用高画质:
Best quality最高的质量
Ultra-detailed 超级细节
Masterpiece 杰作
Hires 高分辨率
8k 8k分辨率
特定高分辨率类型:
Extremely detailed CG unity 8k wallpaper 超精细的8K Unity游戏CG
Unreal engine rendered 虚幻引擎渲染
(1)括号加数字
(white flower:1.5) 调节白花的权重为原来的1.5倍(增强)
(white flower:0.8) 调节白花的权重为原来的0.8倍(减弱)
(2)套括号
圆括号:(((white flower))) 每套一层,额外*1.1倍
大括号:{{{white flower}}} 每套一层,额外*1.05倍
方括号:[[[white flower]]] 每套一层,额外*0.9倍
可以识别图像已有的成分,再总结成AI的字典里有的东西,来帮助你更准确地向AI描述一些东西。
DeepBooru和CLIP是两种不同的图像识别算法,DeepBooru的速度和识别准确率都更具有优势。
(1)采样迭代步数:去噪迭代次数,一般超过20次后面提升不大
(2)分辨率:分辨率太大,可能会出现多人多手多脚的情况,AI在训练的时候用的图片分辨率一般都比较小,如果分辨率太大就会被认为是多张图片拼接而成的。如果需要高分辨率的图片,先绘制512*512的图片,再通过”hires.fix”进行高清修复。
(3)”restore faces”面部修复,采用一些对抗算法识别人物面部并进行修复。
(4)”Tiling”平铺,用来生成那种可以无缝贴满整个屏幕的纹理性图片
(5)生成批次:为了追求一张完美的图片可能会用一套提示词生成多次,通过该功能可以一次生成多张图片,它提供了所有图片合在一起的预览图以及各张图片。
Denoising strength:重绘幅度,它跟原图有多像的权重
它就像我们写作业时使用的涂改液、修正带一样,它可以针对一张大图里的某一个区域覆盖重画。既能修正错误,又不至于把整张纸撕掉重画一遍。
它利用图生图的方式对局部重绘了一下,然后又拼回到原图中。
蒙版(mask):泛指一些用以限定处理区域的范围对象。蒙住了某些关键区域的版子。
Inpaint Sketch:绘制。画上去的有颜色的线条会同时构成这个画面的一部分,并参与到图生图的过程里。
模型下载网站:hugging face / civitai
Checkpoint 检查点或者关键点模型,叫ckpt大模型,一般2~7GB之间
Safetensor 通常1~2GB,也是大模型,是训练者们为了使模型变得更加可靠、高效而专门开发的
文本嵌入,对应C站的Model types是”Textual Inversion”,即文本倒置
Embeddings文件都非常小,一般就几十KB
如果是checkpoint是一本大字典,那么Embeddings就像上面的一片小“书签”,它能够精准地指向个别字、词的含义,从而提供一个极其高效的索引。
Embeddings本身不包含信息,只是一个标记而已。
Embeddings可以为我们指向某一种特定的形象
文件后缀是pt,下载后放在models文件夹旁边的同名文件夹embeddings里面。
Embeddings不需要额外的调用,只需要在提示词里面用特定的prompt去召唤它
LoRa的作用在于向AI传递、描述某一个特征准确、主体清晰的形象。
可以让AI学习一些原本不存在于它的世界里的东西。
如果说embeddings是一张书签,那么Lora就是一张彩页,它直接就在纸上写明白了形象的特点,可以用什么样的方式去呈现出来。
Lora的位置是在models下面的Lora子文件夹。
使用lora的方式,直接在提示框中输入即可:
训练大模型的最低要求是拥有12G以上的显存,但训练LoRA模型可能只需要8G甚至更低。常规的大模型至少会占用2个G以上的存储空间,但最大的LoRA模型也不会超过200M。
它需要和checkpoint搭配使用,从而实现对这个checkpoint在某些方面的“微调”。
它能实现的效果和Lora差不多的。
可以让AI学习一些原本不存在于它的世界里的东西。
Hypernetwork一般用于改善生成图像的整体风格。不太需要使用,后面直接用LORA即可
Anything V5:用于动漫、插画、角色立绘等的画面风格
Counterfeit:插画风模型,细节还原度高
Dreamlike Diffusion:漫画插画风模型,打造梦幻般、具有幻想色彩的画面和作品
Deliberate:超级升级版的SD官方模型,非常精细、全面的写实风格
Realistic Vision:朴素且有整活空间,用来做人像、食物、动物图片,做些具有真实感的假新闻照片
LOFI:精致的照片级人像专精模型,对人物面部处理比前两个更加精致
NeverEnding Dream:非常适合“三次元化”的2.5D模型,结合Lora进行动漫游戏角色的二次创作
Photorealism:优秀的照片效果和创意发挥空间
Guofeng3:实现“文化输出”的国风精致模型
Upscale by:放大倍率,指将这个图片由原始分辨率放大到多少
Hires steps:高清修复采样次数,高清修复需要经过一次重绘,因此需要设置采样步数。保持默认的0数值,它会和我们设置的采样迭代次数(20)保持一致。
Denoising strength:重绘幅度,等同于图生图中的重绘幅度。
生成过程:SD会先绘制一份低分辨率的图像,再根据它画第二幅高分辨率的图像。它的本质就是把这个低分辨率成品“图生图”一次,打回潜空间内重新去噪,从而得到一张更大的图片。
高清修复本质:打回重画,再来一副!适合文生图。
不会改变画面构图(经由随机种子固定);
稳定克服多人、多头等由分辨率产生的问题;
操作简单、清晰、直观。
仍然受到最大显存的限制;
计算速度相对较慢,画一次等于常规情况下画两到三次
偶尔“加戏”,出现莫名的额外元素
图生图中把图片分辨率放大的好帮手。
脚本:
选择SD upscale
它的绘制过程:和高清修复的“打回重画”截然不同,它是通过把这张图均匀地切成4块去画的,逐一画4块然后再拼在一起。
如果只是机械地切成4块,那么相邻图块之间地接缝处肯定会出现非常生硬地过渡边缘,于是,通过tile overlap像素重叠就会起到一个“缓冲带”的作用。
优势:
可以突破内存限制获得更大的分辨率
画面精细度高,对细节的丰富效果出色
缺陷:
分割重绘的过程较为不可控(语义误导和分界线割裂)
操作繁琐且相对不直观
偶尔“加戏”,出现莫名的额外元素
所有和扩展有关的功能都被集中收纳在这个”Extensions”标签里进行管理。
插件被统一安装在根目录下“Extension”的文件夹里,每一个扩展是一个单独的文件夹。
GitHub - hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans: SD-WebUI 简体中文翻译扩展
GitHub - yfszzx/stable-diffusion-webui-images-browser: an images browse for stable-diffusion-webui
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
它是基于本地的一个Booru词库实现的。
这个插件还能进行中文输入,然后切换成英文进行输入。
https://github.com/toriato/stable-diffusion-webui-wd14-tagger.git
比CLIP和DeepBooru更高效的反推工具。
https://github.com/Coyote-A/ultimate-upscale-for-automatic1111.git
安装完成后没有独立tab,而是出现在脚本中。
https://github.com/hnmr293/sd-webui-llul
与第5个工具相比,它不会让一整张图片变得特别大,而是把一些局限于尺寸没法变得更精致的部分给“放大”一下。
它在于不改变原有的结构,就可以为画面带来更加丰富的细节。
https://github.com/hnmr293/sd-webui-cutoff.git
解决提示词之间的相互干预。
扩展的原理如下:
它会将里面的每一个提示词的“描述性”成分抽取出来单独处理,再结合回原画里面。
https://github.com/v8hid/infinite-zoom-automatic1111-webui.git
我们可以去想象它的场景在不断往外延伸,最终生成动画视频。
在此之前,基于扩散模型的“AI绘画”是非常难以控制的,去扩散这张图片的过程充满了随机性。
在原理上,ControlNet和LoRA是有许多相似之处,定位都是对大扩散模型做微调的额外网络。它的核心作用是根据一些额外信息控制扩散走向。
比如“姿势”,如果只是通过提示词输入一个“跳舞”,那么画面中的角色、人物可能会有无数种舞蹈姿势,ControlNet的精髓在于可以给他输入一张记录了某种特定“姿势”信息的图片来指导它作图。ControlNet能够读懂下面信息。
插件下载地址:GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet
下载后同样放在extensions目录下即可,重启生效后就可以在文生图或图上图的下方看到该插件。
此时还没法使用ControlNet,因为需要下载相应的控制模型才能工作,对应模型的下载地址为:
lllyasviel/ControlNet-v1-1 · Hugging Face
下载完一个模型之后,需要把它放在ControlNet文件夹内的models文件夹里,注意:同名的pth模型文件和yaml配置需要一起放置。
ControlNet插件的Annotator功能能够从图片中提取对ControlNet有用的额外信息。
Control Weight:决定这个控制效应在图片中呈现出来的强度。后面两个选项,会影响在图像不断扩散的过程中什么时候加入ControlNet的影响。默认的0到1代表从头到尾全程生效。
直接掌握了人物体态呈现的“命脉”。
下图为openpose-hand
下面为openpose-face
它的重点是对场景的描绘还原,尤其是富有空间感的多层次场景
来自于图像处理领域的一种边缘检测算法。
整体边缘线条检测。
输入的线条相对Canny更加模糊,两者对比如下:
Canny更关注人物内部的细节,HED这一类处理只会把大的轮廓保留下来,内部其实是有更大的发挥空间的。
涂鸦。
多重ControlNet