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