Stable-diffusion-webui使用

内容来源于[https://www.tjsky.net/tutorial/457]
本地部署stable-diffusion-webui前端+替换默认的模型,实现生成高质量的二次元图像,并且可以不受限制的生成图片(在线版一般会阻止NSFW内容生成)

准备环境

安装 Python 3.10 与 pip

安装 Git

下载stable-diffusion-webui

1
2
3
4
# 下载项目源代码
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 切换到项目根目录
cd stable-diffusion-webui

下载模型文件
stable-diffusion-webui只是个工具,他需要后端的训练模型来让AI参考建模。

- stable-diffusion:偏真人(一般简称为 SD 模型, SDwebui 模型)
- waifu-diffusion:偏向二次元(一般简称 Waifu 模型,WD模型)
- Novel-AI-Leaks:更加偏向二次元(一般简称 Naifu 模型)

下载stable-diffusion
官网下载:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

将解压出.ckpt文件放在\stable-diffusion-webui\models\Stable-diffusion\ 下
文件名可以是任何你喜欢的英文名。比如stable-diffusion .ckpt

下载 waifu-diffusion
官网下载:https://huggingface.co/hakurei/waifu-diffusion-v1-3/tree/main

将解压出.ckpt文件放在\stable-diffusion-webui\models\Stable-diffusion\ 下
文件名可以是任何你喜欢的英文名.比如waifu-diffusion-16.ckpt

运行

1. 双击运行\stable-diffusion-webui\webui-user.bat(mac使用webui.sh)

2. 耐心等待,脚本会自己检查依赖,会下载大约几个G的东西,解压安装到文件夹内(视网速不同,可能需要20分钟~2小时不等)无论看起来是不是半天没变化,感觉像卡住了,或者你发现电脑也没下载东西,窗口也没变化。(使用代理加速)

3. 等待出现http://127.0.0.1:7860, 复制到浏览器访问即可(默认是 http://127.0.0.1:7860 )(注意不要关闭这个窗口,关闭就退出了)

使用

1.Prompt 里填写想要的特征点

2.Negative prompt 里填不想要的特征点

3.Sampling Steps 你可以理解让AI推演多少步,一般来说超过17基本就能看了,步数越多,画面中的细节就越多,但需要的时间也就越久,一般20~30是一个比较稳妥的设定。这个数不会改变画面内容,只会让内容更加精细,比如20的项链就是一个心形钻石,而50的项链还是同样的心形钻石,只是钻石上会有更加复杂的线条

4.Sampling method 你可以理解成AI推演的算法,一般Euler a,Euler ,DDIM,都是不错的,任选一个就行。图片分辨率 这个就是拼显卡显存的,自己调吧,低于512X512可能画面就不会有太多细节了,越大的分辨率AI能发挥的地方就越多。

5.下边是3个扩展选项,一般不需要勾选。
Restore faces:勾选后可以生成更真实的脸,第一次勾选使用时,需要先下载几个G的运行库。
Tiling:让图片可以平铺(类似瓷砖,生成的图案左右上下都可以无缝衔接上自己)
Highres. fix:超分辨率,让AI用更高的分辨率填充内容,但生成的最终尺寸还是你上边设定的尺寸。

6.生成几次,每次多少张
Batch count:是一次运行几次
Batch size: 是同时生成多少张
比如:Batch count设置为4,用时N分钟*4,生成4张图;Batch count设置为4,用时N分钟,生成4张图,但是同时需要的显存也是4倍。512X512大概需要3.75GB显存,4倍就是15GB显存了。

7.CFG Scale AI有多参考你的Prompt与Negative prompt
开得越高,AI越严格按照你的设定走,但也会有越少的创意
开的越低,AI就越放飞自我,随心所欲的画。
一般7左右就行。

8.Seed 随机数种子,AI作画从原理上其实就是用一个随机的噪声图,反推回图像。但因为计算机里也没有真随机嘛,所以实际上,AI作画的起始噪声,是可以量化为一个种子数的。

9.Generate 开始干活按钮,这个就不用说了吧,点了AI就开始干活了。

10.Stable Diffusion checkpoint 在最左上角,是选择模型的,前边让你下载了三个,请根据自己需求和体验自行选择使用。

stable diffusion webui (SD webui)界面介绍

- txt2img 文生图:顾名思义就是用文字生成图片
- img2img 图生图:顾名思义就是用图片生成图片
- Extras 更多:这里其实是“无损”放大图片用的
- PNG info 图片信息:从图片exif里获取图片的信息,如果是SD原始生成的png图片,图片的exif信息里会写入图片生成参数的,所以你在网上看到大佬生成的美图,可以用这个功能帮你查看
- Checkpoint Merger 模型(ckpt)合并:合并不同的模型,生成新的模型
- Train 训练:自己炼 embedding 或者 hypernetwork
- Settings 设置:顾名思义就是设置页面
- Extensions 扩展:顾名思义这里是扩展的管理页面。
提示词 Prompt
- 用文字描述你想要生成的东西
- 支持的输入语言为英语(不用担心英语不好的问题,目前网上有很多tag生成器供你使用),SD支持用自然语言描述,不过还是推荐使用用逗号分隔的一个个的关键词来写,当然表情符号,emoji,甚至一些日语都是可以用的
tag语法
- 分隔:不同的关键词tag之间,需要使用英文逗号,分隔,逗号前后有空格或者换行是不碍事的
ex:1girl,loli,long hair,low twintails(1个女孩,loli,长发,低双马尾)

- 混合:WebUi 使用 | 分隔多个关键词,实现混合多个要素,注意混合是同等比例混合,同时混。
ex: 1girl,red|blue hair, long hair(1个女孩,红色与蓝色头发混合,长发)

- 增强/减弱:有两种写法
第一种 (提示词:权重数值):数值从0.1~100,默认状态是1,低于1就是减弱,大于1就是加强
ex: ,(loli:1.21),(one girl:1.21),(cat ears:1.1),(flower hairpin:0.9)
第二种 (((提示词))),每套一层()括号增强1.1倍,每套一层[]减弱1.1倍。也就是套两层是1.1*1.1=1.21倍,套三层是1.331倍,套4层是1.4641倍
ex: ((loli)),((one girl)),(cat ears),[flower hairpin]和第一种写法等价
所以还是建议使用第一种方式,因为清晰而准确

- 渐变:比较简单的理解时,先按某种关键词生成,然后再此基础上向某个方向变化
[关键词1:关键词2:数字],数字大于1理解为第X步前为关键词1,第X步后变成关键词2,数字小于1理解为总步数的百分之X前为关键词1,之后变成关键词2
ex:a girl with very long [white:yellow:16] hair 等价为 a girl with very long white hair

- 交替:轮流使用关键词
ex:[cow|horse] in a field比如这就是个牛马的混合物,如果你写的更长比如[cow|horse|cat|dog] in a field就是先朝着像牛努力,再朝着像马努力,再向着猫努力,再向着狗努力,再向着马努力
tag书写示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
画质词>>
这个一般比较固定,无非是,杰作,最高画质,分辨率超级大之类的

风格词艺术风格词>>
比如是照片还是插画还是动画

图片的主题>>
比如这个画的主体是一个女孩,还是一只猫,是儿童还是少女,是猫还是狗,是白领还是学生

他们的外表>>
注意整体和细节都是从上到下描述,比如
发型(呆毛,耳后有头发,盖住眼睛的刘海,低双马尾,大波浪卷发),
发色(顶发金色,末端挑染彩色),
衣服(长裙,...,室内鞋),
头部(红色眼睛),
颈部(项链),
手臂(露肩),
腹部(可看到肚脐),
腿部(长腿),
脚步(裸足)

他们的情绪>>
表述表情

他们的姿势>>
基础动作(站,坐,跑,走,蹲,趴,跪),
头动作(歪头,仰头,低头),
手动作(手在拢头发,放在胸前 ,举手),
腰动作(弯腰,跨坐,鸭子坐,鞠躬),
腿动作(交叉站,二郎腿,盘腿,跪坐),
复合动作(战斗姿态,JOJO立,背对背站)

图片的背景>>
室内,室外,树林,沙滩,星空下,太阳下,天气如何

杂项>>
比如眼睛描绘详细
tag书写要点
- 虽然大家都管这个叫释放魔法,但真不是越长的魔咒(提示词)生成的图片越厉害,请尽量将关键词控制在75个(100个)以内。
- 越关键的词,越往前放。
- 相似的同类,放在一起。
- 只写必要的关键词。
反向提示词 Negative prompt
用文字描述你不想在图像中出现的东西
AI大致做法就是
    1. 对图片进行去噪处理,使其看起来更像你的提示词。
    2. 对图片进行去噪处理,使其看起来更像你的反向提示词(无条件条件)。
    3. 观察这两者之间的差异,并利用它来产生一组对噪声图片的改变
    4. 尝试将最终结果移向前者而远离后者
    5. 一个相对比较通用的负面提示词设置
采样迭代步数 Sampling Steps
AI绘画的原理用人话说就是,先随机出一个噪声图片
然后一步步的调整图片,向你的 提示词 Prompt 靠拢
Sampling Steps就是告诉AI,这样的步骤应该进行多少次。
步骤越多,每一步移动也就越小越精确。同时也成比例增加生成图像所需要的时间。
大部分采样器超过50步后意义就不大了
采样方法 Sampling method

使用哪种采样器,人话就是让AI用什么算法。

1
2
3
4
5
6
Euler a :富有创造力,不同步数可以生产出不同的图片。 超过30~40步基本就没什么增益了。
Euler:最最常见基础的算法,最简单的,也是最快的。
DDIM:收敛快,一般20步就差不多了。
LMS:eular的延伸算法,相对更稳定一点,30步就比较稳定了
PLMS:再改进一点LMS
DPM2:DDIM的一种改进版,它的速度大约是 DDIM 的两倍
提示词相关性 CFG Scale

图像与你的提示的匹配程度。
增加这个值将导致图像更接近你的提示,但过高会让图像色彩过于饱和(你可以自己试试看)
太高后在一定程度上降低了图像质量。可以适当增加采样步骤来抵消画质的劣化。
一般在5~15之间为好,7,9,12是3个常见的设置值。

宽度 X 高度 Width X Height

单位是像素,适当增加尺寸,AI会试图填充更多的细节进来。
非常小的尺寸(低于256X256),会让AI没地方发挥,会导致图像质量下降。
非常高的尺寸(大于1024X1024),会让AI乱发挥,会导致图像质量下降。
增加尺寸需要更大的显存。4GB显存最大应该是1280X1280(极限)

1
2
3
4
5
因为常见的模型基本都是在512×512768X768的基础上训练
分辨率过高,图片质量会随着分辨率的提高而变差
一般1024X1024以上尺寸AI就会搞出搞各种鬼畜图。
如果模型明确某些分辨率最优,请遵照模型的要求
比如3DKX系列模型就是明确推荐图片分辨率为1152 x 768
随机种子 Seed

AI绘画的原理是,先随机出一个噪声图片
因为计算机世界里不存在真随机
保持种子不变,同一模型和后端,保持所有参数一致的情况下,
相同的种子可以多次生成(几乎)相同的图像。
如果你用某个种子在某tag下生成了很棒的图,
保持种子数不变,而稍微改一点点tag,增减一点细节,一般得到的图也会不错。

常见模型

主要 stable diffusion webui 用大模型(ckpt与safetensors)包括了常见的模型比如的Waifu Diffusion、anything、f222、basil mix、urpm 、chillout mix等模型。

Lora(人物卡模型)和hypernetworks(embedding和hypernetwork)太多没有列出

Stable Diffusion

可以认为它是本文所有其他模型的底稿,几乎所有模型都是在这个模型的基础上再次训练得到的。

Stable Diffusion v2.1

  • SDv2.1提升了人物生成能力,因为SDv2.0大量增加了风景、建筑物和动物的数据集,减少了人物的学习量。
  • SDv2.1提高了NSFW过滤器准确度,因为SDv2.0的成人过滤器过滤的太狠,错误判定很多
  • 即使是极端长宽比的图像也能顺利生成。
  • 解剖学的身体和手(特别是手掌)的描写精度提高。
Waifu Diffusion

基于Stable Diffusion 系列模型,增加动漫及人物训练得到的模型,缩写是WD。
它比NovelAI模型更安全,不是商用泄漏模型,但WD也使用 Danbooru 进行学习,所以如果你关心这个的话要注意

NovelAI

绘图网站NovelAI的商用泄漏模型,模型经过人在回路精细微调,可以生成高质量的二次元图像
注意这是个商用模型的泄漏,所以部分使用方式下会有一定的法律风险,请注意这一点

Elysium Anime

生成偏真实风格的动漫图片,风格比较偏向西式,光影还不错。
模型推荐写这些负面提示lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry可有效提升质量。

Elysium_V1

偏真实风的模型,手画的还不错,模型底稿基本是以西方人为主,所以生成的脸也偏西方人。

SD_Elysium_Kuro_Model

与Anything 4.0、WD 1.4等合并后经过微调的二次元用模型。
已经包含 WD 的“kl-f8-anime2”VAE 文件,因此无需使用额外的 VAE 文件

Elysium_Anime_V3

动漫的附加学习模型,NSFW化相当严重,有更清晰的轮廓和轻微的三维效果。基于Elysium_V1

3DKX

因为Zeipher官方已经GG,这是热心网友创建的衍生3DKX模型
如果你想让你的 3D 角色有一张更“二次元”的脸,提示词最开始写 “3d cartoon of”,或者如果你想要经典的 3D 渲染外观,写“a 3d render of”
高分辨率模型,推荐分辨率为 1152 x 768 或更高

R34

从网站“rule34.xxx”的 150,000 张图像中进行训练。rule34.xxx几乎全是NSFW图片,所以你懂的

EVT pixiv排行榜模型

基于pixiv排行图片训练,夹杂有部分R18排行图片

Basil_mix

逼真的真人模型,基于亚洲风格训练,支持Danbur标签提示词
需要加载VAE,不然画面色彩浓度和边缘会很淡
提示词应尽可能简单
不要堆砌大量质量标签和负面提示,不然会适得其反。

Chillout Mix

逼真的真人模型,基于亚洲风格训练,支持Danbur标签提示词

Uber Realistic Porn Merge

如名字所说,逼真的真人Porn模型,简称 URPM 模型,这是个融合模型。