SDXL1.0 Lora模型训练教程
大家好,
本文将会介绍最近的SDXL Lora训练内容细节,
数据收集
本小节,准备一下训练数据,30-50张左右,需要注意的事项:
不管是角色还是风格,数据尽可能的干净,数据不要贪多,干净很重要;
选择高清的图;
尺寸可以不用管,分辨率大于1024x1024即可,注意,你不需要将数据裁剪成1024x1024
打标签
本小节,给准备好的数据做标签,做标签的工具:
点击"Captioning"完成标签制作。
文件命名: 10_butterfly mogu painting, 关于文件的命名上,总是云里雾里的,看了官方的文档,SDXL1.0之后,不在需要考虑特殊的字符了,按自己喜欢的去命名就行了。
训练环境
本小节,需要准备训练环境,我还用的训练环境是:kohya_ss
https://github.com/bmaltais/kohya_ss
关于如何安装使用,请参考一下官网的链接。
开始训练
参数解析:
learning_rate:设置为0.0001,如果你学习率给多大,你可以多花10分钟去做一次尝试,比如0.00001,然后观察一下训练结果;
unet_lr:设置为0.0001;
train_batch_size:设置为1,如果你对训练不熟悉的,设置为1,准没错,不建议设置太大,因为数据不是很大,只有几十张。同时batch size和学习率两者是相关的,batch size越大,学习率可以小一些;
save_every_n_epochs:设置为1,因为这更有利于我参观训练结果;
resolution:设置为1024,1024, 当然你可以选择更大的尺寸,比如1024,1360等;
network_dim:设置为32,这个数值会影响模型输出的大小,数值越大,网络的参数就越多,32就足够了,不用设置到128;
network_alpha:设置为32,这个参数会影响保存出来的权重值,与network_dim等值,是我认为最好的数值;
lr_scheduler:设置为constant,
optimizer_type:设置为AdamW8bit,(lr_scheduler)这两个参数,选择预选框中的任一一个,对最终的结果影响不会很大,只是收敛速度和过程会有所差异。
这几个参数比较重要,所以单独拎出来,其他参数,可以参考文末的配置文件
测试结果
配置文件