Stable Diffusion学习-笔记

⚠️ 本文最后更新于2023年11月12日,已经过了377天没有更新,若内容或图片失效,请留言反馈

1-Stable Diffusion整合包v4.4下载:

下载链接: https://pan.baidu.com/s/16zsNgX8oK71BuUVwxhReoQ?pwd=axwz
提取码: axwz

1.1 显卡的算力

360截图20231112101230161.jpg

2-文生图

2.1 VAE

增加图片的饱和度,降低灰度,让图片有更多色彩,常用的用840000

2.2 CLIP SKIP/跳过层

语音与图片对比预训练,让tag与图片建立关系,数值越高:tag和图片关系就会低,数值越低:tag和图片关系就会高,一般默认就行。

2.3 提示词

2.3.1 正向提示词

提示词.jpg
[note type="info flat"]
写想出现的元素tag
[/note]

(masterpiece:1,2), best quality, masterpiece, highres, original, extremely detailed wallpaper, perfect lighting,(extremely detailed CG:1.2), drawing, paintbrush,

2.3.2 描述内容(人物例子)

主体,表情,服装,场景,环境,镜头,灯光,风格,画质,渲染器

2.3.3 反向提示词

[note type="info flat"]
写不想出现的元素tag
例如常用负面提示词:
NSFW (this one is optional you know what I mean)
低质量:low quality,lowres,low resolution, noise
色调单一:monochorome,grayscale
身体特征:missing part, bad proportions, ugly
身体部位:extra hands,extra fingers,missing hands

[/note]

NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),

2.3.4 Tag的格式

-英文
-单词,单词
-词组,词组
-语句(推荐)AI识别度高

2.4 提示词权重

提示词的权重分配.jpg

2.4.1 括号法则

()=增加1.1倍
{}=增加1.05倍
[]=减少1.1倍

2.4.2 数字法则

[note type="flat"](一般用这个,尽量保持在0.5-1.6这个范围)[/note]

(tag:1.3)=增加1.3倍
(tag:0.5)=1/2的权重
大于一就是增加
小于一就是减少

2.4.3 混合

第一种:
-AND 让不同元素或主题做混合,
例如:tiger AND cow

第二种交替渲染
-[tag|tag],例如步数为10步:1.3.5.7.9渲染tiger,2.4.6.8.10渲染cow
例如:[tiger|cow]

2.5 采样步数(STEPS)

20步到40步的变化.jpg
-范围1-150
-数值越高:细节越多,渲染越慢
-数值越低:细节越少,渲染越快
-建议范围20-40

2.6 采样器

-a:噪点不居中,关键词识别度稍低
-karras:去噪快
-DDIM&PLMS:SD最早的采样器(过时)
-DPM:比较建议使用DPM++SDE karras

2.7 Refiner面部修复

分辨率一般是512*512或者768*768,比较占用显存

生成次数/总批次数:一个一个生成X张图(显存低用这个)

每次数量/单批数量:同时生成X张图(显存高用这个)

提示词引导系数 (CFG Scale):文字和图片的相关度,数值2-6时AI的想象力就很丰富,数值7-12 推荐阈值
-数值高:tag和图片的相关度就高
-数值低:tag和图片的相关度就低

随机种子:
-骰子标志:重置种子为-1(出图完全随机)
-循环标志:复制上一张图的种子

2.8 模板预设

可以保存和使用预设的tag词汇,删除的话再根目录找到styles表格里面删除就行

2.9 如何让模型再展示的时候显示预览图片

把图片复制到模型文件夹,把图片的名字改成跟模型同一个文件名就行。确保是PNG或者是JPG文件
也可以用CIVITAI HELPER这个插件扫描下载所有模型的预览图

2.10 同时使用多个LORA

权重总和不能超过1

2.11 脚本

1. Prompt matrix

作用:在不同的条件下展示主体
格式:固定不变主体tag|变量1|变量2|...

2. Prompts from file or textbox

作用:在渲染多张不同关键词和参数时使用
格式:--参数名称 数值,比如--steps 28

3. X/Y/Z plot

小技巧:
1,2,3,4,5,6,7,8,9,10可写为1-10
1,3,5,7,9可写为1-9(+x)

3-图生图

3.1重绘

3.1.1 重绘强度

[note type="warning flat"]
重绘强度[label color="red"]越低[/label],生成的图片就和原图越 [label color="red"]相同[/label] 。
重绘强度[label color="red"]越高[/label],生成的图片就和原图越相[label color="red"]不同[/label] 。

---安全的区间是0.3-0.5
---更具自由度的去见识0.5-0.7
[/note]

3.1.2 缩放模式

[note type="warning flat"]
拉伸:把图片硬拉成你想要的尺寸
裁剪:把图片裁减成你想要的尺寸
填充:以图片的最后一个像素为基础来填充新尺寸的元素
直接缩放:类似于拉伸,不过在采集噪点的时候有很高的随机性
[/note]

3.2 涂鸦

[note type="warning flat"]
1.用于增加元素或者更改图片元素
2.笔刷的颜色会影响出图的颜色
3.建议安装canvas-zoom的插件(4.4整合版已经集成)
[/note]

Canvas-zoom:https://github.com/richrobber2/canvas-zoom

3.3 局部重绘

[note type="warning flat"]
只改变你想让图片变化的额地方(可控性强)

1.蒙版模糊度:给你的蒙版区域增加高斯模糊,值越低,半径越低

2.蒙版模式:
-绘制蒙版内容:就是让AI只对你的蒙版内容改变 其他全部保留
-绘制非蒙版内容:就是让AI只改变没有 蒙版的内容 保留蒙版内容

3.蒙版蒙住的内容:
填充:不考虑原图的任何元素
原图模式:根据原图的元素生成图片
潜在噪声:不考虑原图的任何元素,比填充模式想象力更丰富,有更多细节
无潜在空间:不考虑原图的任何元素,比填充模式更多细节

4.绘制区域
全图:像素集中在整张图片,蒙版区域的像素精度会少一些
仅蒙版:像素只集中在蒙版区域,蒙版区域的像素精度会更高些(建议使用)。
仅蒙版绘制参考半径(像素),让蒙版参考周围环境像素的值,数值越低:参考蒙版附近的元素就越少。数值越高:参考蒙版附近的元素就越多,会更贴合,建议32以上。
[/note]

3.4 局部重绘涂鸦蒙版

[note type="warning flat"]
多个带颜色的功能
[/note]

3.5 局部重绘上传蒙版

[note type="warning flat"]
用PS做蒙版代替手涂模板。白色代表想改变的区域
[/note]

3.6 批量处理

[note type="warning flat"]
所有路径必须是英文。例如我的电脑的路径也不行。不能有冒号
[/note]

3.7 反向推导关键词

[note type="warning flat"]
CLIP反向推导:以句子的形式反推关键词
DEEPBOORU反向推导:以单个单词的形式反推关键词
[/note]

4-高清化/后期处理

4.1 缩放比例

[note type="warning flat"]
想让图片放大多少倍,例子:原图是512X512,缩放比例调成2,输出图片就是1024*1024
[/note]

4.2 指定分辨率缩放

[note type="warning flat"]
非等比例缩放,自己设置就行,输入和输出图片比例不相等时一定要勾选裁剪以适应宽高比。
[/note]

4.3 4XUltrasharp算法

360截图20231112123509647.jpg
[note-ico type="flat" ico=""]
4XUltrasharp算法下载

使用方法:下载pth文件到webui根目录-models-esrgan文件夹内
在UPSCALER1内使用就可以
GFPGAN,UPSCALER1改成none,整体图片会边清晰
CODEFORMER,UPSCALER1改成none,会重构部分面部细节
[/note-ico]

4.4 rembg抠图插件

https://github.com/AUTOMATIC1111/stable-diffusion-webui-rembg.git  

[note type="warning flat"]
大部分图片用这个算法u2net (download, source): A pre-trained model for general use cases.
u2netp (download, source): A lightweight version of u2net model.
人类u2net_human_seg (download, source): A pre-trained model for human segmentation.
衣服u2net_cloth_seg (download, source): A pre-trained model for Cloths Parsing from human portrait. Here clothes are parsed into 3 category: Upper body, Lower body and Full body.
silueta (download, source): Same as u2net but the size is reduced to 43Mb.
isnet-general-use (download, source): A new pre-trained model for general use cases.
动漫isnet-anime (download, source): A high-accuracy segmentation for anime character.
sam (download encoder, download decoder, source): A pre-trained model for any use cases.

retrun mask:就是变成蒙版的意思。
alpha matting:
-erode size:主体边缘像素预留区域
最好模型用u2net。erode size:6,foreground:143,background:187

[/note]

4.5 Stable SR脚本

4.5.1 插件地址

https://github.com/pkuliyi2015/sd-webui-stablesr.git

4.5.2 大模型地址

[label color="blue"]下载第一个,放到webui里的models下的Stable Diffusion文件夹下[/label]

https://huggingface.co/stabilityai/stable-diffusion-2-1-base/tree/main

4.5.3 插件内置模型地址

https://drive.google.com/file/d/1tWjkZQhfj07sHDR4r9Ta5Fk4iMp1t3Qw/view

4.5.4 Tiled Diffusion和Tiled VAE插件地址

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git

4.5.5 使用

先在图生图里面选择stablesr,然后在SRmodel里选择model
color fix用wavelet,pure noise打开

tiled diffusion根据github上推荐的调整就行
recommended_settings_24GB.jpg

5-Lora炼丹

5.1 如何选取最优素材

[note type="primary flat"]
1.不同面部表情
2:构图,任何角度
3.人物特征.不同场景等等
4.灯光
5.图片质量.
以上满足越多越好
[/note]

5.2 需要多少张图片

[note type="primary flat"]
人物,动漫.面部等:至少需要15张图片
建筑,场景等:至少需要100张图片
[/note]

5.3 每张需要训练多少步

[note type="primary flat"]
次数越多,细节越明显.
每张训练步数:最少10步(但也不要过高)
二次元:10-16步
写实人物:17-35步
场景:50步
lora训练总步数:1500-6000步
checkpoint训练总步数:30000步起
[/note]

5.4 需要部署的内容

5.4.1 Kohya_ss(训练页面)

https://github.com/bmaltais/kohya_ss

[note type="primary flat"]
安装条件:
Install Python 3.10.
Install Git.
Install the Visual Studio 2015, 2017, 2019, and 2022 redistributable.
[/note]

[note type="primary flat"]
1.创建本地文件夹:kohya_ss
2.以管理员身份运行powershell
3.输入Set-ExecutionPolicy Unrestricted
4.按A后回车关闭
5.打开kohya_ss文件夹后在地址栏输入CMD后回车
6.输入git clone https://github.com/bmaltais/kohya_ss.git
7.输入cd kohya_ss
8.输入.\setup.bat
9.输入1回车没如果出现do you want to uninstall previous version of torch and associated files before installing?就输入2回车(选择NO),如果出现version of Torch:我们就选择安装Torch2.0.如果没有遇见就不管
直到出现accelerate config就行.
FireShot Capture 001 .jpg

[/note]

5.4.2 Additional Networks插件

[note type="primary flat"]
在线搜索Additional Networks,然后点Kohya-ss Additional Networks安装就行,然后应用并重启webui.[/note]

5.4.3 CUDNN训练加速器(30系以下忽略)

5.4.4 参数预设(这个可以不下载)

5.5 预处理

[note type="primary flat"]
资源目录:放入准备的图片文件夹路径
目标目录:新建一个文件夹,在这个文件夹下面新建分别为image/log/model的三个文件夹,在image文件夹下创建一个比如30_xwz的文件夹(数字将代表你再次文件夹内没涨图片训练多少步,步数是由你有多少个部分决定的,后面的部分的话可以是body,dress,face之类的)
宽高比不用管.可以在kohyass点击勾选好bucket.这样ai会以最优角度思考裁剪哪个部分训练效果是最好的
勾选保持原始尺寸就行.
对已有标注的 txt 文件的操作这里选择ignore就行
图片过少时可以用创建水平翻转副本
建议勾选使用 BLIP 生成标签 (自然语言)反推.这样比较好描述
[/note]

5.6 训练

[note type="primary flat"]
进入kohya_ss文件夹找到GUI或者GUI.BAT的文件.第一次打开要右键以管理员身份打开
出现URL后线确保没有红色的warning提示再去做训练
2.jpg

然后复制URL到浏览器
DREAMBOOTH:大模型训练专属
DREAMBOOTHLORA:LORA专属
[/note]

5.6.1 预设文件下载

[note type="primary flat"]
提取码:axwz
其中basic适合8G显存以下.点OPEN选择后点击load
[/note]

5.6.2 选择底模

[note type="primary flat"]
1.如果选择自定义底模.那么就要看一下他的底膜是什么版本和尺寸.如果底模是V2版本并且尺寸是在768以上的时候就要勾选v_parameterrization
[/note]

5.6.3 选择folders.

[note type="primary flat"]
image folder:放image文件夹的路径.不是步数的路径
model folder:放model文件夹的路径
log folder:放log文件夹的路径
model output name:模型名称,必须是英文,可以有下划线
[/note]

5.6.4 训练参数

[note type="primary flat"]

lora type:无脑选standard,

Train batch size:AI在同一时间同时学习多少张图,建议是1或者2,显存低于8选1.选择1的话对模型精确些

Epoch:训练轮数(训练完后Lora模型的数量),对应训练步数,需要做计算,最终训练处的Lora数量=Epoch/Save Every N epochs(默认为1)
Caption Extension:加载预设后默认为,txt

Mixed precision:混合精度(建议选择fp16)

Save precision:保存精度(建议选择fp16)

Number of CPU:CPU的核心数

Learning rate:学习率,设置为Unet Learning rate

Text Encoder Learning rate:文本译码器学习率,一般设置为Unet Learning rate的1/2 or 1/10 为0.00005

Unet Learning rate:特征提取学习率,一般是0.0001

LR Scheduler:学习算法
-Constant:恒定算法,不推荐
-Constant with warmup:慢热型学习算法,后期恒定
-Cosine:余弦退火,避免大幅度拨动的算法
-Cosine with restarts:余弦退火重生,非常推荐,会避免学习率过低的轻狂
-Linear:线性衰减,直线下降,不推荐
-Polynomia:多段性衰减,阶梯式下降.

LR warmup:慢慢熟悉模型,前期预热过程的百分比,最好要开,一般为百分之10,如果模型过于复杂.可以适当调高

Optimizer:优化器,建议选择AdamW8bit,如果用DAdptAdam帮你找到最优学习率.
那么Learning rate和Unet Learning rate需要设置为1,Text Encoder Learning rate设置为0.5,算法用Constant,warmup %改为0

Network Rank:模型精细度:30-200之间.一般用128,128的时候:文件大小大概在140MB左右.二次元的话一般是64或者更高,写实的话大概是128或者更高,场景建筑物的话是256或者更高.

Network Alpha:一般是128
Max resolution:图像尺寸,根据显存去调整.512,512或者768.768或者竖图768,1024都行

Enable Bucket:AI自动裁剪(必须勾选)

Advanced Configuration:高级选项
大部分都是默认
----显存不够的请勾选Gradient checkpointg,Memoryefficient attention,Use xformers.训练时间更长,显存压力更低.
----Bucket resolution steps选择64

[/note]

5.6.4 确认参数并开始

[note type="primary flat"]
点击Print training command查看训练步数看下要不要调整,然后点击train model就可以开始训练了
[/note].

5.6.5 训练完成后

[note type="primary flat"]
loss值理论上是越低越好,一般维持在0.085左右是个不错的值
可以用Start tensorboard检测训练数据的页面,
[/note]

6-扩展

扩展.jpg
[note type="success flat"]扩展查阅地址:
https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json
备用镜像地址:
https://gitee.com/akegarasu/sd-webui-extensions/raw/master/index.json
https://gitgud.io/AUTOMATIC1111/stable-diffusion-webui/-/wikis/Extensions-index.md

————————————————————

  1. 中文语言包
    搜索:zh(取消勾选本地化/Localization的筛选)
    仓库地址:https://github.com/hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans.git
  2. 图库浏览器
    搜索:image browser
    仓库地址:https://github.com/AlUlkesh/stable-diffusion-webui-images-browser
  3. 提示词补全
    搜索:tag complete
    仓库地址:https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
    中文词库见网盘
  4. 提示词反推
    搜索:tagger
    仓库地址:https://github.com/toriato/stable-diffusion-webui-wd14-tagger.git
  5. Ultimate Upscale脚本
    搜索:ultimate upscale
    仓库地址:https://github.com/Coyote-A/ultimate-upscale-for-automatic1111.git
  6. Local Latent Couple
    搜索:llul
    仓库地址:https://github.com/hnmr293/sd-webui-llul
  7. Cutoff
    搜索:cut off
    仓库地址:https://github.com/hnmr293/sd-webui-cutoff.git
  8. Infinite Zoom
    搜索:Infinite Zoom
    仓库地址:https://github.com/v8hid/infinite-zoom-automatic1111-webui.git
    [/note]

7-ControlNet插件

ControlNet模型应用.jpg

[note type="primary flat"]

7.1 ControlNet模型下载地址:

https://huggingface.co/lllyasviel/sd_control_collection/tree/main
模型下载提示.jpg
[/note]

7.2 模型安装地址

模型安装地址.jpg

8 Deforum插件

8.1 安装

[note type="primary flat"]
在线搜索Deforum安装并重启UI
[/note]

8.2 界面

8.2.1 采样器

测试时建议选择Euler a,实在在下选择自己喜欢的。

8.2.1 迭代步数

测试用20-25左右,实战拉到30-40

8.2.2下载预设并加载

[note type="primary flat"]

下载链接:https://pan.baidu.com/s/1oUxevALnlIvrsHl5LEyamg?pwd=axwz
提取码:axwz
下载后填入地址去掉冒号,必须是英文/不可以用空格。用_来代替。并且点击loading all settings
[/note]

8.2.3 宽高比

必须要和图片的宽高比相同

8.2.4 种子

随机种子调成-1。不然会又预设的种子

8.2.5 Batch Name

渲染完成厚文件夹的名字,必须是英文/不可以用空格。用_来代替

8.3 Keyframes

8.3.1 Animation mode

动画模式:
-3D:镜头移动操作选项多,上下左右前后,顺时针,逆时针。弧线转圈。(建议使用)
-2D:镜头移动操作有限
-Video Input:用视频生视频

8.3.2 Replicate

拉伸模式:重复像素边缘然后扩展图片。建议用wrap

8.3.2 Cadence

停顿值,建议调成2

8.3.3 Max frame

最大帧数,决定你最终产出多少张图片,和Output的FPS左配合来决定最终视频长度fatkun

8.3.4 Strength

前一帧影响下一帧的强度,建议0.5-0.7之间

格式0:(0.65)的意思就是从0帧开始到下一个值的影响强度为0.65
格式0:(0.65),300(0.6)的意思就是从300帧之后的强度为0.6

-Motion:动画
--Translation X:X轴位移(左右)
数值大于0镜头往右移动,小于0往左移动
--Translation Y:Y轴位移(上下)
数值大于0镜头往上移动,小于0往下移动
--Translation Z:Z轴位移(前后)
数值大于0镜头往前移动,小于0往后移动
--Rotation 3D X:摄像机旋转(上下)
数值大于0镜头往上旋转,小于0往下旋转
--Rotation 3D Y:摄像机旋转(左右)
数值大于0镜头往左旋转,小于0往右旋转
--Rotation 3D Z:摄像机旋转(顺时针逆时针)
数值大于0镜头往逆时针旋转,小于0往顺时针旋转

小建议:帧数之间不要像个太短,一秒动画在30帧左右,RotationZ幅度不要太高,动画数值-2到2就可以

--Noise 噪点
---Noisetype 均匀/uniform:铺满噪点让视频更锐化
---Perlin :自然噪点让视频更连贯。建议选Perlin

--Cohrence 色彩一致性
用LAB或者RGB都行

--Depth Warping&FOV
勾选Use depth warping就行

8.3.5 CFG

可以勾选Enable CLIP skip scheduling

8.3.6 图像生成种子/Seed

iter迭代器:每帧种子变化为+1
fixed:固定种子
random:随机种子
ladder:种子阶梯式变化
Alternate:种子交叉变化,1.3.5.7.9
schedule:指定式变化,比如某一帧某一个特定的种子

8.3.7 Checkpoint

第一帧变化某一个大模型

8.4 Prompts/关键词

8.4.1 格式

{"关键帧":"关键词 --neg 关键词","关键帧":"关键词 --neg 关键词",
}

--neg后面是负面关键词,。也可以直接写道下面的Prompts negative里面

8.5 init初始图片

8.5.1 基础

把你的单帧图片路径放到init image里面,并且勾选Use init

8.5.2 strength

图片影响前几帧的强度

8.6 Output

8.6.1 FPS

Frames Per Second:决定你每秒有几帧
视频最终时长等于8.3.3的Max frame/FPS的值

8.6.2 Delete images

勾选就是删除单帧的图片。可以减少内存

8.6.3 Upscale

建议勾选后可以让视频变高清,

8.6.4 Upscale model

选择放大模型

8.6.5 Upscale factor

放大的倍数,X2就是2倍

8.6.6 Video Upscaling

可以重新渲染一边高清视频

8.7 视频文件所在

在根目录-outputs文件夹下-img2img-images

By alex On