深度解析丨StableDiffusion中的lora模型训练流程
lora训练中的IP形象训练流程分享

大家好,有很长一段时间没有更新,打算去分享一下我这段时间学习的成果,希望能给准备学或者将要学的朋友问一些初步了解吧 。
关于stable diffusion lora模型训练工作流。主要从下面5个部分讲。
- lora 训练基本概念
- lora 训练实操步骤
- 个人lora作品展示
- 总结规律

lora 训练基本概念

研究过AI生成图片的基本原理会发现, 我们每一次输入关键词,写tag的时候,AI给出来的图都是从模糊到清晰,如图所示。
图片生成:model , 文本——算法——图片【训练集】
模型生成:训练集—文本 —— 算法——模型
所以说我们要让AI生成我们想要的图,就得让他认识我们IP,就是让训练集,文本匹配图像,相互映射关系,然后录入底层模型,通过程序算法录入,过程就是不断加噪声,直到变成模型。
模型主要分两大类型:主模型和辅模型。

- 大模型2G以上,一般训练的时间长,更注重随机性,训练起来不算便利,适合概念,类似于midjourney,niji journey 机器人。
- 小模型分为lora,36M-144M,适合单一概念训练,稳定抽象角色特征,训练某一种画风,或者是某类元素,电商场景,摄影模特,淘宝产品。
所以对于lora, 我是这么理解的,他就是对单一概念的训练,适合微调作用。
为什么要学lora ?
- 因为比较简单,设备要求不高,显存12G的3060都可以训练。
- 因为确实是降本增效。
也是种种契机,在刚开始学的时候,我看到小红书上有很多做的很不错的ip形象lora,让我萌生一个想法就是,这玩意真的太高效了,随便输入几个关键词,就可以把自己的IP形象,动作和场景一起出了,非常快,而且也是有更多可能性。。
lora训练步骤:
- 训练集, 处理图片+打标。
- 模型训练,训练参数设置。
- 模型检测,模型评估。
- 模型优化 。
- 不断的出图验证 ,结合业务应用

1. 训练集处理

筛选图片的要求:
1.尽量不要带有LOGO icon标识。
2.干净,元素清晰
3.场景多找你想要出图画风类似的,还有如果是IP,白底,3D没有可以P上去。
图片处理:
- 512X768,64的倍数。
- 统一尺寸,统一格式。
- 清晰保留细节。
处理图片
寻找合适的训练集:
- 网上素材,(具体就不分享哪个网站了,这个太多了。)
- 动画视频中找到图片进行 风格化处理。
- 平面转3d。

工具推荐:
clipdrop 适合去除不要的细节。
https://clipdrop.co/cleanup
birme适合批量处理尺寸(或者PS批动作也可):
https://www.birme.net/?target_width=768&target_height=1152
upscayl - 放大修高清图片,可以批量处理放大图片。

处理完,然后进入打标:
批量打标:
给训练集批量打标,用SD插件wd14-tagger-master,批处理打标。
dataset-tag-editor,逐个检查,概括要点,一是自然语言+关键词描述,两个相互结合,要把画面中出现的元素都打上,且那想让AI记住什么,就不要去打那个关键词,例如熊本熊黑色红色腮红,那些特征性的东西不要去打。
加触发词,我发现有的教程说可以不加,但是我发现固定IP 的话,加上等于触发,没尝试过不加,但是我都会加上。
tengxunqq\(ip\),触发词+tag。
打标处理图片,这部分其实是最重要的,过了这部分后面就简单了。
2.模型训练
训练器参数设置,其实秋叶大佬把参数写的很清楚,但是对我这种美术生来说真的对概念一窍不通,通过自己结合一些老师讲的视频,我总结了下概念。

我基本都是默认设置,通过跑了一次之后就会去找原因调参数,我有尝试每次去调参数,实践证明影响最大的是epoch和repeat, repeat 一旦10就发现IP形象固定不住,形象跑型,一旦上了20又发现非常拟合,出来基本跟训练集一模一样。
还有dim128效果还是不错的,配合alpha 64, 以上是我个人浅薄理解,不代表正确,有错误,也希望大家批评指正。
训练器有很多版本,网上看了赛博炼丹和秋叶比较适合新手,其他还没试过, 还有就是云端炼丹,我也尝试了autoDL 发现(真的贵)其实操作也差不多,训练集传上去,参数调调就开始训练,训练时长一般跟步数有关系,也跟显卡有关系。

3060 12G 用了9个小时训练3W步数。而4090用了两个半小时。
3.模型检测
这也是花费时间最多的一个步骤,这个步骤也总结了方法论。

先用XYZ把20轮的编号模型都跑一遍,从而找到比较合适的编号图。
以腾讯QQ这个LORA为例。
XYZ测试:

xyz替换 prompt S/R
num,000006,000008,000010,000012,000014,000016,000018,000020,
strength,0.5,0.6,0.7,0.8,
000002,000004,一般不测试,效果都不太好,然后权重0.1-0.4 0.9也不是很好。
注意后面逗号一般不加,会导致SD错误。

挑选合适的编号,一般1-2个,然后测试不同底模,这块通过不同的底模找到出图效果最好的那个底模,写在本子上。
我的习惯是记录有道云笔记本,还有飞书文档,我发现飞书很少打开,所以目前都是记录在有道云实时打开会看一下之前训练的参数。
应用验证:
我目前的话也是训练好的参数就尝试去除一些自己想出的图,然后就想办法把他变成系列作品,排版,因为练的是鹅厂IP ,所以在此仅仅作为AICG学习个人练习交流使用,但是出图也是尽可能去做到尽善尽美。。

接下来展示我个人的作品:

当然如果第一炉跑的模型检测不是很满意,一般就会总结问题,重新优化训练集,再进行下一轮的训练,如此往复,所以我经历了7炉,我感觉还是第5炉的效果最好,哈哈,后面的人物IP没有很好固定,应该是dim的问题。








(写给新手)训练时候踩过的坑:
- 训练集打标时候,单个IP头部训练记得加upper body ,或者加头。
- 单独IP没有问题,可以尝试 减少IP场景的关键词,慢慢加入关键词,以达到要求, 训练集场景放一起。
- 如果是SD本体跑图出现float问题,再秋叶控制台上打开float解决,或者看看是不是内存不足,显存不足。
个人总结:
总的来说,结果是好的。
1.有一点感触特别深就是,不管做什么决策,首先不要看当下,先想象自己学完之后,是一个怎么样的人,如果说学完能让你变成的那个人,是你自己想成为的那个人,那么为什么要在乎当下别人的眼光或者一些看似吃亏的行为。
2.学归学,光学不练,就会像艾兵浩斯记忆曲线一样,时间越长,越容易忘记,一定要输出,不要一直往前冲,而学一阵子,就要回顾,总结到自己的体系中。
3.还有一点,就是多会一门技能,多一个解题思路,思维层面,现在我会发现会lora训练的话,我会以训练集的角度,做绘画练习会考虑更多元一些,还有诸多感触,这些后面有机会慢慢展开讲吧。。

