当前位置:首页|资讯|AI绘画

【AI绘画】lora干货!新手小进阶(上)!三种打标方式对比及正则化对人物训练作用讨论

作者:WSH032发布时间:2023-03-18


摘要

        本专栏将用具体例子向你展示三种打标方式(全标删去人物特征只保留唤起标签)在lora人物训练中不同的效果,并给出各自的优缺点。同时你也会看到正则化对人衣分离的作用。最后我会给出推荐的训练方式

注意,我是开启keep token打乱标签的,lion优化器

关键词:LoRA模型、打标方式、正则化、训练方式、心得

参考:

  1. 青龙圣者对lion优化器的讲解

  2. GamersRay的“喂饭级Lora绘图模型训练教程”


全文2550字,如果你想看证明过程就慢慢看,会有具体图片例子

如果你只想得到结论,直接拉到最后的总结部分(但我相信如果你不看图片,可能理解的不是那么好)

看完这篇专栏大概5分钟,训练、测试、得出结论,最后写专栏却要好几天。

如果你能看到最后,觉得有用,不要忘了结尾的约定。

如果觉得没用,很抱歉我浪费了你的时间,你可以给我留言改进的意见或者指出我的错误。

测试模型、训练集、正则化集、tag文件、train.sh文件、xyz图我稍后会上传,请留意评论区

专栏里的XYZ图如果看不清楚,右键图片在新标签页打开, 删除最后一个@及后面的所有字,就是原图了



序言

阿慈谷日步美是 Nexon 发行的游戏《蔚蓝档案》及其衍生作品中的登场角色。

其通常形象为背着佩洛洛风格背包的金发双马尾JK少女

官方立绘,来源wiki,并无侵权

在此次实验中,我使用8张图片做为训练集;测试了在合理参数设置下,三种打标方式及标+正则化的训练成品。


正文

(一)训练集展示(仅8张)

图片来源于danbooru,如您的图片被侵权,请自行联系danbooru下架该图片;这个不是美图展示,不要来联系我,我不会处理任何类似问题,如觉得不妥就举报这篇专栏。

(二)参数

我一共训练了7组模型,先给出基础参数:

基础参数
plus参数(调大学习率和batch)


(三)prompt:naifu起手式+以下组合


其中一张图片的tag分类(还有一些simple background等背景没打上)

全标:全都有

删特征:人物被删去,其他保留

仅唤起:人物被删去;衣服(除了shoes,school uniform,bag被保留外)被删去;其余保留

其中在keep token = 3作用下,第一栏(hifumi,girl,solo)成为唤起词


(四)模型

各模型参数

其中最后一列的all_plus已经有点过拟合了,接下来的分析我不会提到它,放哪里给大家做个对比

下面的XYZ图按这个顺序从左到右排序,重点分析前3列(三种打标)第4/5列(正则化)



(五)模型测试(prompt测试)

5.1  唤醒词 测试

仅使用了 唤起 一行

可以看到在开启keep token时,三种打标在一定程度上都完成了唤起

考察面部还原、胸前蝴蝶结:

易调用性 仅唤起 > 删特征 > 全标

其中正则化还未完全拟合,(如果仅使用唤起词,其还原程度,在拟合后,理论上应该是弱于全标的)



5.2  唤起+人物 测试

使用 唤起+人物 这两行

可以看到还原程度仅唤起(实际上是过拟合了) > 删特征 > 全标

考察对人物的还原全标 删特征满足了要求

但是请注意,我并未输入衣服tag,但是 仅唤起 直接把JK还原了,这意味着 仅唤起 已经过拟合了。

同时,也可以大胆推断,在未过拟合的情况下,全标删特征 是可以完成换衣的,也就是在不使用正则化的情况下具有一定程度的泛化性。(在5.4中被证明

泛化性(换装能力)全标>删特征>仅唤起



5.3  人物+衣服 测试

仅使用 人物+衣服 两行


可以看到在 人物+衣服 的 prompt 下,无明显差别(除了正则化还未拟合)



5.4  泛化 测试 (仅人物+full body+swimsuit)

仅使用 人物一行 + fullbody + swimsuit(不存在于训练集)

可以看到 仅唤起 已经不可避免的过拟合换装失败;其余的均很好完成了换装。

这证明了5.2的结论:在未过拟合的情况下,全标 和 删特征 是可以完成换衣的,也就是在不使用正则化的情况下具有一定程度的泛化性

泛化性(换装能力)全标>删特征>仅唤起



5.5  仅衣服 测试

仅使用衣服一行

注意,这个测试是重点,直接反应了泛化性的差距

可以看到 仅唤起、删特征、全标,人物均不同程度受到了衣服tag的影响仅唤起的人物几乎已是日富美;全标受影响最小),只有正则化最好的完成了人物与衣服的剥离

泛化能力正则化>>全标>删特征>>仅唤起

不要觉得正则化还原的衣服不像,那是因为8epoch的正则化模型还未拟合,下面是一张14epoch已经拟合的正则化图片(仅衣服tag)


衣服很好的还原,同时人物几乎没受影响

也就是说,如果你有多concept互换衣服的需求,或者训练衣服的需求,是一定要用正则化的



5.6  全标 测试(细节测试)

所有的tag都被打上

这个也是重要指标,这里只考察对非人物细节的学习,如枪和佩洛洛背包的还原

细节能力正则化≈>全标>删特征>仅唤起

还是那句话,不要觉得图里正则化的背包不像,那是因为还没拟合。



总结

  1. 过拟合风险仅唤起>>删特征>全标>正则化

  2. 拟合能力对人物的学习速度/出成品速度)全标≈=仅唤起≈=删特征>>正则化

    (正则化处理不好脸部还原会有难度,这个在大训练集中特别明显)

  3. 细节能力非人物细节,如光环,绣肩,佩洛洛背包,画风等):正则化≈>全标>删特征>仅唤起

  4. 还原性人物+衣服/全标;拟合后):无明显差别

  5. 易调用性 仅唤起 > 删特征 > 全标>>正则化

  6. 换装能力不过拟合情况):正则化>全标≈>删特征>>仅唤起

  7. 泛化能力正则化>>全标>删特征>>仅唤起

  8. 训练容易程度(包括训练集准备、tag处理,调参来避免欠/过拟合):全标≈>删特征>仅特征≈=正则化(小训练集)>>>正则化(大训练集)

同时,如果有多concept互换衣服的需求,或者训练衣服的需求,总之如果想把人物和服装分离,是一定要用正则化


为什么删特征会略比全标难呢?因为删特征最好给点脸部特写,而且特征tag最好删干净了,不然会丢特征

为什么仅特征更难?因为必须 一定 要保证相关tag删干净了,同时它太容易过拟合了,而且细节的学习要给很多特写

为什么正则化最难,因为如果参数没调好,训练集和正则化的比重没弄好,拟合是有难度难度(特别是大训练集);这往往需要一定的经验。


小训练集耗时相对少(试错空间大),脸部拟合也不是太难(给特写),同时也面临过拟合的困扰,所以用正则化是不错的选择。这也是我最开始推荐使用正则化的原因,因为当时我的训练集较小,每个concept只有30张左右


但是最近有人和我反应大训练集用正准化效果不佳,这是因为

大训练集使用正则化一定要谨慎!因为脸部拟合有难度,而且耗时会大幅增加!

如果你非要用,控制比重在5%~10%以下,同时要给脸部特写!



建议:

新手训练自用的 单角色 模型直接全标完事。(还原又好,细节又好,还能换装,泛化好,拟合风险又小,真是有够爽的)

稍微熟练后可尝试删特征。(删特征训练的特写和tag处理具体教程,下下周可能我会讲,看有没有空)

熟练掌握调参和训练集、tag处理后,有发布易调用模型的需求,仅唤起

有极强的泛化需求,或者有分离服装需求,可以用正则化。(还是那句话,大训练集有难度,推荐小训练集用)



结尾

        最后只放一张图(我的模型没炼好,这个8张训练集的我不满意XD)

        你看完这篇专栏只要5分钟,我训练、测试、得出结论最后编写专栏要好几天

        所以觉得本专栏对你有用的,或者图片好看的,不妨点个三连、分享吧。


感谢你的阅读



by Happy_WSH




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1