Lora训练参数介绍(一些细节处理)
安装Lora的训练脚本,直接用秋葉aaaki大佬的整合包就好。
现在介绍详细的参数 (最新秋葉aaaki大佬的脚本来介绍)
$pretrained_model = "./sd-models/model.ckpt"
这个就不用多说了 就是你训练的底模 这里的话我们尽量使用训练的模型 如果大家没有合适的底模可以使用 sd1.5的训练模型 或者在C站里面去寻找一些合适的底模
以下是sd1.5的训练模型
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt
以下是c站
https://civitai.com/
$train_data_dir = "./train/aki" # train dataset path | 训练数据集路径
这是我们的数据集 里面放的是我们的图片以及文字(也就是打的tag)

注意 5你可以理解读取5次这个图片
$network_dim = 32 # network dim
$network_alpha = 32# network alpha
dim你可以理解为大小 alpha一般跟dim相同或者是一半
$batch_size = 1 # batch size
$max_train_epoches = 10 # max train epoches | 最大训练 epoch
$save_every_n_epochs = 2 # save every n epochs | 每 N 个 epoch 保存一次
Epoch 使用训练集的全部数据对模型进行一次完成的训练,被称为“一代训练”
Batch 使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分被称为“一批数据”。
每 N 个 epoch 保存一次 综合上面所述每次过了两代 就保存一次模型 因为模型不是越后面越好 需要对比
如果提高batch size 也要相应的提高epoch 不然可能会欠拟合 当然提高这些会大幅度的提高你的显存 如果你的loss率无法收敛 你可以进行这个操作
$keep_tokens = 0 0为禁用
保证我们的tag(也就是文本的单词)前多少个不动 后面的打乱它们的顺序
$min_snr_gamma = 0 0为禁用
减少低步数时loss值,让学习效果更好。推荐3-5,5对原模型几乎没有太多影响,3会改变最终结果
$lr = "1e-4"
$unet_lr = "1e-4"
$text_encoder_lr = "1e-5"
$optimizer_type = "AdamW8bit"
学习率的话用青龙圣者的黄金算法
在脚本根目录下 文件上方搜索出打powershell(跟cmd相同)
输入./venv/Scripts/Activate.ps1进入虚拟环境
pip install tensorboard 安装依赖
将学习率都改为1
优化器($optimizer_type)改为 DAdaptation
开始跑第一次训练,跑不跑完都可以,
然后找到 LoraTrain\lora-scripts\logs 路径内找到最新时间戳的文件夹名称,再这个文件夹内鼠标邮件再次唤出Git bash here指令窗口输入
“tensorboard --logdir=./时间戳/network_train” 复制出提供的网址到浏览器上即可看到学习曲线图 拿到最高值/3 就是我们loin的最优值 (loin是比较好的优化器)
注意:当你更改了数据集 或者一些参数batch size 建议重新测试最优值
$persistent_data_loader_workers = 0
简单的讲就是提速的 但是可能会爆显存
欢迎大家在评论区留下批评和建议,如果本文违反了转载规定或侵犯他人劳动成果,我会立刻删除本文!对了还要感谢两位大佬做出的贡献,最后希望大家都能练出好丹!