整理训练的图片

整理图片


可将元素和场景分开给Ai进行学习,通过文件夹命名结果如30_ys,50_cj。前面的数字即Ai学习的次数(每个图片学习几次)。

Ai需要学习的是图片内容和文本内容,文本内容是对应图片的提示词。提示次可在webui中训练——图像预处理中,选择资源目录和输出目录即可。

前提图片尺寸大小一致或已裁剪为一致。

生成提示词

使用BLIP Captioning反推图片提示词,检查提示词是否准确

LoRA训练主要参数

Source model

Configuration file:加载预设
Model Quick Pick:快速选择模型
Save trained mode as:把训练好的模型存为什么格式
Pretrained model name or path:如果是自定义可以在这里选择模型路径
v2、v_parameterization(底模像素大于768时勾选)、SDXL Model根据底膜的基础算法勾选对应的类型,如果是1.5则不用勾选

Folders


Image folder:存放图片的路径,此路径为步数_名字的上一层。
Regularisation folder:正则路径,防止训练图像过于拟合/过度训练
Output folder:模型保存路径
Logging folder:日志路径
Model output name:模型保存的名字

Paramenters

训练总步数=图片数量x每张步数xEpoch

Presets:预设
LoRA type:选择不同版本的lora类型
Train batch size:Ai在同一时间学习多少张图片,数字低不代表不好,说明学的更仔细
Epoch:训练多少轮
Save every N epochs:多少轮存一次(最终保存多少轮=Epoch/Save every N epochs)
Caption Extension:提示词文件格式
Mixed precision:混合精度
Save precision:保存精度
Number of CPU threads per core:CPU多少核填多少核
Learning rate:学习率,一般和Unet learning rate一样。
Text Encoder learning rate:文本编码学习率,把提示词转换成AI可以学习的东西一般为Unet learning rate的1/2或1/10。
Unet learning rate:特征提取学习率
LR Scheduler:constant恒定不变和学习率一致,constant with warmup慢热型,等到和学习率一致后恒定不变,Cosine避免大浮动波动的算法,避免后期突然下降防止过拟合。Cosine with restarts在学习率下降时回到设置的学习率,Linear线性衰减,学习率线性下降。Polynomial多段式衰减,像楼梯一样。
LR warmup (% of steps):慢慢熟悉模型,前期预热再学,建议开启
Optimizer:建议AdamW8bit,mac选AdamW优化器,DAdptAdam帮助找到最优学习率(修改LR和Unet LR为1 Text encoder LR为0.5 算法用constant,Warmup为0,在tensorboard里看),
Network Rank (Dimension):模型精细度,越高精细度越高,过高会过拟合,会影响文件大小(128≈140mb,64≈70mb,32≈40mb),建议二次元≥64,写实≥128,场景≥256。
Network Alpha:特征学习分辨率,建议和上面保持一致
Max resolution:图片的尺寸
Enable Buckets:根据Ai的想法去裁剪图片。

tensorboard

loss/average 训练步数提升时图片的损失率,loss接近0.085为参考值

lr/textencoder 步数增加时学习率的变化

其它:显存不够勾选Gradient checkpointing、Memory efficient attention、Use xformers

训练结果校验

应用lora

选择训练中使用的底模,任意挑选训练时的提示词,填入刚刚训练出来的lora。如:

注意生成尺寸和训练图片尺寸保持一致,其它参数建议:迭代步数:35,采样方法:DPM++ SDE Karras,总批次数:4

提示词:

1
2
<lora:a-000006:0.65>,
a white cube with a yellow object in the middle of it on a blue background with a white circle around it

挑选lora权重

提示词:

1
2
<lora:a-000006:STR>,
a white cube with a yellow object in the middle of it on a blue background with a white circle around it

选择脚本:X/Y/Z plot,X轴类型提示词搜索/替换(Prompt S/R),X轴值:STR,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1

其它参数建议:总批次数:1


根据训练结果查看STR,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1值中哪个权重区间最合适。然后调整X轴值,如0.6~0.7是上一轮最合适的,那么可以修改X轴值为:STR,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.7。

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

挑选lora数据

训练完的lora可能有多个,同样在脚本中进行筛选,添加Y轴类型,Y轴值为NUM,2,4,6,8 (序号为lora训练序号)
提示词:

1
2
<lora:a-00000NUM:STR>,
a white cube with a yellow object in the middle of it on a blue background with a white circle around it

此时我们会得到一个图片的图表数据如下:

STR 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
NUM img img img img img img img img img img img
2 img img img img img img good1 img img img img
4 img img img img img img img img img img img
6 img img img img img good2 img img img img img
8 img img img img img img img img img img img

其中纵向的为训练出来的四个不同的lora,横排的代表不同的权重。需要在其中挑选出合适的图片,如图表中有两个不错,需要记录STR/NUM 0.6/2,STR/NUM 0.5/6。意思是在值等于这些时的效果是最好的。最后可以在0.5~0.6的权重里继续筛选找到权重最合适的值