Stable_diffusion_数据集训练知识准备(无Optional内容):
扩展可用添加gitee访问地址:
https://gitee.com/akegarasu/sd-webui-extensions/raw/mater/index.json(已经不可用了)
链接: https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json(网络好的话用)
网络不好去克隆到本地stable-diffusion-webui-extensions文件夹下面
插件地址:
链接: https://github.com/kohya-ss/sd-webui-additional-networks
链接: https://github.com/picobyte/stable-diffusion-webui-wd14-tagger
Kohya训练参数:
Bucket:AI最有角度裁剪哪个部分是毕竟较好的所以图片也可以不需要裁剪过多
Load/Save Config file:加载参数配置文件,训练后可在自己接下来存放Lora的models的文件目录下面找到
Model
- Pretrained model name or path:存放底膜的文件路径
- Model output name:生成lora模型名称
- Image folder (containing training
images subfolders):图像父目录名称列如在angel/20_head、angel/20_foot、angel/20_hand目录之上填angel文件目录地址就行
Parameters
-
Presets:自动添加所有参数,懒人专用设置
-
LoRA type:无脑选标准版Standard就好,除非有其他目的想用其他比较热门的lora算法但是需要考虑Lora的兼容性问题
-
Train batch size:训练在同一时间内能学习多少张图。显存低于8G调成1,16G可调成2,低batchsaize数值其实更好让AI学习更加细节,只不过追求质量的同时训练时间会变长
-
Epoch:训练轮数,配合Save every N epochs使用,Epoch/Save every N epochs也就是保存的lora模型数量是多少,无法除尽的话会报错
-
文件夹的前缀次数:20_angel,表示这个类型文件夹图片每张训练次数,假如说Epoch是2,那么你想训练50次,那么你的前缀就应该增加到25
-
Max train epoch:训练最大轮数,如果一轮有20张照片,每一张训练20次,1个epoch就是400步
-
Max train steps:最大训练步数max_step = (总训练样本数 / batch_size) * epochs,如果一个训练集中有20张图片,每张图片设定为要训练20次,所以训练完这一组数据集需要20*20=400步,与上面一样1个epoch就是400步,设置最大训练步数为10那么就有4000步
-
CrossAttention:xfomers英伟达显卡的硬件级别优化,可以提升训练速度
-
Caption file extension:打标过后的tag文本后缀
-
Seed:不能填-1,但是可以填0随机值,其他为固定值
-
Learning rate:学习速率
-
Text Encoder learning rate:文本编码学习率,一般设置为Unet learning rate的二分之一或者十分之一,通常不知道最优学习率可以设置为1e-5中的“e”表示指数为负5,即指数部分为10的负5次方,即0.00001。 在这种表示法中,尾数为1,指数为-5,因此该数值等于1乘以10的-5次方
-
Unet learning rate:特征提取学习率,应用于图像分割,一般LR=Text Encoder learning rate=Unet learning rate/2,通常是0.0001和0.0005组合着用
-
LR Scheduler:学习率算法:
constant(常数学习率恒定不变,一条直线)
constant_with_warmup(预热后保持常数,前期慢慢熟悉模型的特征和细节,在训练初期有一个预热阶段,学习率逐渐增加到初始学习率,然后保持常数)
cosine(余弦退火,学习率按照余弦函数变化,在训练过程中逐步减小)避免大幅度波动的算法
cosine_with_restarts(余弦退火重生,学习率按照余弦函数变化,在训练过程中逐步减小,当学习率过低它会让学习率回到我们的设定值,避免学习率过低欠拟合的发生) 推荐
linear(线性学习率下降,从初始学习率线性下降到 0)
polynomial(多项式衰减,多项式衰减调度器,学习率按照多项式函数下降,横竖横竖直线下降) -
想了解更多详细参数教学可以查看链接: https://github.com/bmaltais/kohya_ss/wiki/LoRA-training-parameters
-
LR warmup (% of total steps):慢慢熟悉模型的前期预热过程的百分比,字面意思,比如说我设置在前百分之十的时候需要ai慢慢熟悉学习图片的信息就可以填写10%,LR Scheduler过于复杂就让ai预热久一点
-
Optimizer:是 AdamW 优化器的一种低精度变体,旨在降低内存消耗和计算成本,通常用于大型模型的训练或在资源受限的环境中(如显存有限的 GPU)进行训练,AdamW 8-bit 是 AdamW 的低精度版本适用于内存受限或计算资源受限的场景,Adafactor 是一种高效内存优化器,特别适合大规模模型的训练,Lion和AdamW对比,Lion具有内存占用低、运行速度快的特点,但小batch size下(小于64)Lion效果不如AdamW,还有比较重要的应该就是DAdaptAdam它能够帮助我们查找最优学习率,我们需要将LR和UnetLR设置为1Text Encoder learning rate设置为0.5LR Scheduler选择constant最后LR warmup (% of total steps)默认是0再去训练,训练之后去tensorboard里面查看即可,其他优化器可自行学习摸索
-
Network Rank (Dimension):模型精细度,简单理解精细度越高细节越多,过高会导致训练过拟合,一般值设置为32-200之间,市面大部分在128左右,模型大小参考128:140MB,64:70MB,32:40MB,二次元一般64or更高,写实一般128or更高,场景建筑物一般256or更高
-
Network Alpha:Ai在训练的时候给你一些图像里面的特征的一个分辨率,数值越高细节越高,更上一个一样设置过高容易过拟合,没有要求说和前面的一样,正常设置32,64,128都可以
-
Max resolution:图像尺寸,看GPU显存大小,一般摄影古装之类的建议用竖图768 X 1024尺寸
Advanced Weights
建议勾选一下几个参数提高训练时间降低显存压力
- CrossAttention:xformers
- Gradient checkpointing
- Memory efficient attention
- Don’t upscale bucket resolution可以勾选
- Bucket resolution steps一般选择64
- Print training command:查看训练参数
- Windows训练过程报错:No model named‘trition’问题不大
- loss_rate:损失值,一般在0.085左右效果较好,不一定越小越好,但模型效果还是需要符合人们审美的最好
Accelerate launch
- Mixed precision:混合精度填fp16
- Save precision:保存精度填fp16
- Number of CPU threads per core:英特尔® 酷睿™ i5-12600KF 处理器,CPU 规格内核数 10,Performance-core(性能核),数6Efficient-core(能效核)数4
进入extensions/webui-additional-networks/models/lora存放Lora模型
-
点击脚本选择XYZplot
-
启用插件additional-networks刷新模型列表先选择一个模型
-
回到脚本XYZplot进行以下设置,权重可以调少一点电脑可能会黑屏,最后回到prompt word写上自己的关键词加提示词即可开始对比