lora训练学习笔记续_2024

好久没摸了

快一年了技术迭代很快啊

已经是xl的时代了 也习惯了直接依赖模型里的人物和去c站找lora了

但是也会遇到冷门到模型都找不出的(悲

所以还是捡起来重新学一遍吧…

训练集处理

啊 真的是 冷门人物就是这样

全网找不到几张图

真的是深刻感受到炼丹最难的就是数据集

数据集处理真是最耗时的事情

到处找加上视频截图啥的都算上抠了二十几张图吧。最开始随便处理了下tag然后塞进去练,出来的效果惨不忍睹

除了参数,感觉问题主要还是出在了 数据集的处理上

于是去找资料…总结几个小tips

  • 下载来的图片有png的jpg的各种各样,但是扔到sd-webui的后期处理里批量跑一下可以统一转换成png,不需要手动拿软件转换了

  • 乱七八糟的数据集重命名,advanced renamer是个很好用的小软件

  • 最好把图片处理成统一的分辨率和比例,虽然开了arb可以支持不同分辨率比例,但是会造成训练时候分组,听dalao说是不太好。我这里尝试是横图和竖图分别统一放大/裁剪成同样大小

  • sd-webui的后处理真的好用,可以支持自动裁剪宽高比,并且不仅可以放大还可以自动把大图裁剪、缩小,总之不管啥图扔进去出来的就是设置好的分辨率的图片了,真的非常方便

    image-20240513004904657

  • png不要用透明背景,如果有签名、边框、文字什么的最好ps修掉

  • 乱七八糟的背景最好手动切掉(ps 选择主体,然后大概切一下,倒是也还简单)

打标

老生常谈了

最开头加触发词。人物特征的tag删掉。非共性的可变描述tag保留 之类的这些

另外如果文字和边框不修掉的话要在tag里体现出来(这样最后出来的图不会有奇怪的东西)

打标阈值0.35什么的 不多说了都老传统

推荐下标签编辑的小软件

BooruDatasetTagManager

超好用 用过的都说好 还有自动翻译标签功能

比插件的那个编辑器好用多了

image-20240513010502901

训练参数什么的

这些都是视频的佬教的

  • 小训练集需要较大的等效的batch_size 嗯就是这两个参数相乘,因为众所周知batch size大点显存猛猛爆所以下面那个调大点可以假装自己batch size大

image-20240513023220165

参考秋叶的说明

image-20240513023321749

  • 这两个相乘的大小推荐是图片数量的一半(因为图片repeat数推荐是1,所以每个epoch训练数量就是数据集图片数量) 也就是后面是前面2倍(我这里是6倍了)

    为什么呢 我也不知道呢

    image-20240513023630454

    所以如果保证显存不爆的情况下我可以把梯度累加步数改成3,这样后面的就变成1500了

  • 另一个问题是arb桶,假如我设置的训练分辨率是1024x1024,所有大于这个分辨率的,或者不是1:1的图片,都会被切成方形然后变成1024x1024。

    但是如果开了arb桶,他会按分辨率比例去分组图片,然后分开训练,这里有个问题就是分组完了之后,训练的等效batch size就变小了(每组图片少了)

    所以我的理解是,最好就直接用sdwebui的预处理把图切成一样的分辨率完事,这样arb也不会乱分组,或者我觉得一个横向比例一个纵向比例这样分两组应该也还好?

  • 嗯于是问题就又回到了上面的数据集预处理问题。果然训练的重点就是数据集啊。

  • lokr的dim值没用,随便填的。prodigy优化器的学习率啥的都没用(大概),随便填之

更新:

嗯。。实际用我这十几张图练了一下 发现了比较明显的过拟合,出图烂掉了(很糊的那种图)

反复试了试也不知道是优化器的问题还是底模的问题还是训练方法问题还是我训练集太烂

总之是烂掉了

回到秋叶训练器用最传统的方法练了下,反而还好一些…(默认参数 传统adam优化器 lora算法,1batch size+5 repeat 50个epoch)真难啊

重新开始学习。。

嗯。看到个说法说这个和神童优化器会冲突 或许吧。。有空试试看吧

image-20240521235316257

参考:

https://civitai.com/articles/3105/essential-to-advanced-guide-to-training-a-lora

https://www.bilibili.com/video/BV1Ru4m1g7Fo

https://www.bilibili.com/video/BV1CF4m1N7PU

都是很棒的教程

另外致谢秋叶佬、青龙佬的整合包和教程