天天看点

AI绘图:lora模型训练小心得

作者:闪念基因

01

前言

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

随着大模型热潮来袭,aigc也变得触手可及了,不仅算法人员可以使用AI作画小工具,美术人员甚至小白选手也可以轻松上手AI作画了,特别是Stable diffusion的开源和civitai网站上开源模型推动了AI作画的普及化,现在训练个模型已经不是什么难事啦。

02

各个模型对比

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

目前AI作画模型分为Checkpoint(基础大模型)和额外迁移微调小模型(Textual Inversion、HyperNetwork、LoRA),目前的当红辣子鸡非Lora莫属。

为什么我们要训练自己的模型呢?

很多时候可能有些模型无法满足我们的需求,训练自己的模型可以在现有模型的基础上,让AI懂得如何更精确绘制特定的风格、概念、角色、姿势、物件。

训练模型是一个复杂的概念,基于哪个checkpoint基础模型,以及喂的图片品质,图片的尺寸,图片的内容,还有训练时的参数,都会影响模型训练结果。

Textual Inversion、HyperNetwork、LoRA 都是属于小模型,相比于动不动好几G的大模型checkpoint来说,他们训练的时间相对比较短,而且训练图片也不需要太多,训练的成本不高,可以说是物美价廉,而且训练的小模型还可以使用多个模型混合使用,也可以自由的选择基础模型checkpoint来使用,总之灵活便利。

当然如果硬件条件允许的话(指有时间有条件收集大量数据集,以及有一个不错的gpu的话),花些时间去收集数据集和训练一个checkpoint大模型也不错。不过还是不推荐大家去尝试了,因为据说Stable Diffusion 1.5版的模型可是输入了23亿张图片训练出来的,我们普通人要想收集23亿或者上万数据集并对每一张图片进行打标签,简直是个艰巨的任务,所以推荐大家玩玩小模型就好了,毕竟我们宗旨是又快又好。

以下是各个模型的原理:

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

感兴趣的可以去看 https://stable-diffusion-art.com/how-stable-diffusion-work/

各个模型对比:

训练方式 输出大小(MB) 所需最小显存(GB) 训练用时(分钟)
Dreambooth 2000-4000 11 1h~
Hypernetwork 114 11 70
Textual Inversion 0.0013 11 60
LoRA 30-145 11 15

以上可以看出lora模型不管在体积上还是在用时上都性价比比较高。

训练方式 优点 缺点 适用场景
Dreambooth

1、质量高

2、风格专精

3、数据量庞大

1、难度大、成本高

2、不灵活

3、训练不稳定,调参复杂

适合学习多种物体/多种画风
Hypernetwork

1、风格专精

2、不易受干扰

1、兼容性低

2、风格过于单一

适合学习图片整体画风
Textual Inversion

1、功能性强

2、数据小

1、风格过于单一

2、性价比低

适合学习一个新的物体/概念,画风学习能力不如Hypernetwork
LoRA

1、灵活度高

2、训练成本低,能快速迭代模型

3、调参方便

4、兼容性强

1、容易受大模型风格干扰

2、多个混用互相污染

适合学习一种物体/一种画风

03

lora模型训练心得-图灵为例

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

训练流程 (数据集以我们可爱的洋葱头为例)

01.

数据集准备

首先准备至少20张以上需要训练的角色的图片,保证画质清晰、各个角度。数据集尽量不要特别单一,可以丰富多彩一些。

当然如果你的图片画质不太清晰,推荐预处理之前把图片进行画质修复成高清图片,比较模糊的数据集拿去训练,生成的图片也会比较模糊,简而言之,数据集的画质影响生成图片的画质。

画质修复可以用stable diffusion里的extras标签页下面的画质修复放大去实现,可以选批量处理,然后选择画质修复放大算法,150张图片大约11min可以处理完,请耐心等待。

另外:

人脸图片和写实类图片推荐画质修复算法ESRGAN_4x

动漫类图片推荐画质修复算法R-ESRGAN 4x+ Anime6B

AI绘图:lora模型训练小心得

画质修复前后对比

修复前:

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

修复后:

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

02.

数据集预处理(这一步很重要)

AI绘图:lora模型训练小心得

首先我们需要对数据集进行预处理,防止有过大或者过小的图片。

  • 创建镜像副本,就是水平翻转图片,如果你的数据集比较少,想要增加一下数据集可以选择这个
  • 分割过大的图片,有一些图片过大,比如4000x4000,这样子的图片太大,训练的时候会做resize,这样子会导致训练效果不好,所以过大的图片推荐选择这个
  • 自动焦点裁剪,这个选项是会识别图片中的人脸,然后基于人脸的位置为焦点进行裁剪,适用于有人脸的数据集哈,没有人脸的话或者人脸不太行的话就有可能被剪裁掉很关键的信息
  • 使用BLIP生成语言描述词,这个是可以对图片生成一段描述词,适合现实写实类的图片数据集
  • 使用deepbooru生成tag标签提示词,这个是生成单个单个的词语,适合动漫类/非写实类的图片数据集

下一步之后就预处理完了,就能看到每张图片和对应生成的tag标签txt文件了,这时候要注意了!

不管是BLIP和deepbooru两种提示词生成方式都只能生成比较常见的词,如果遇到比较特殊,或者我们想要有自己的标签tag,那就可以改提示词文件了,比如下面洋葱头的提示词,我们可以在每个提示词前面加上yangcongtou,这样子训练的时候它就能学到yangcongtou这个标签了,等我们去预测的时候,就可以输入yangcongtou来生成图片了。

当然也可以用其他的打tag的方式,比如webui中训练选项卡中的数据集预处理,或者使用webui的插件Tagger来批量打标签都是可以的。

AI绘图:lora模型训练小心得

03.

参数调整

AI绘图:lora模型训练小心得

04.

训练

AI绘图:lora模型训练小心得

接下来就是等待训练完成,一般来说训练lora训练gpu 11G,20张图片 20 epoch的话一般20分钟之内可以训练好。

05.

预测

模型训练好了我们就来测试下效果。

还记得我们刚刚改的tag提示词yangcongtou吗?

接下来选一个基础模型,然后选择我们的训练的洋葱头lora模型,并设置lora的权重(这个就是lora模型的影响程度),推荐使用0.7-0.9之间。

AI绘图:lora模型训练小心得

就可以拥有自己的专属洋葱头了

AI绘图:lora模型训练小心得

04

其他经验

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

如果你想要自己本地训练可以用github上这个代码进行训练:

https://github.com/Akegarasu/lora-scripts

教程参考:

https://www.bilibili.com/video/BV1fs4y1x7p2/?spm_id_from=333.337.search-card.all.click&vd_source=ebb30e8797be7e1dcb0497fef2c9a908

总的来说,一个模型训练的是否成功主要取决于:

1、数据集(是否清晰、是否多角度、是否多样,所以数据集的预处理至关重要)

2、基础模型的选择(这个决定你的模型的整体的风格)

3、训练的参数(训练次数、学习率、学习率调节方式,决定你的模型权重是否能更加贴合你的数据集以及是否学习到有用的特征)

4、数据集图片的尺寸(一般来说你的数据集训练的尺寸比例和你预测出图的比例不能差太多,不然容易图崩,比如数据集都是1:2的,但是生成2:1就会容易崩,出现多人多头的情况,所以处理数据集的时候尽量多几种先尺寸)

5、模型的不断迭代(当我们数据集不够的时候,我们可以先基于当前的数据集训练一个v1版本模型,再基于v1版本的模型去以图生图或者文生图,选出合适的图片补充到数据集中,不断的迭代训练模型,最后达到我们想要的效果)

05

总结

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

如果有自己喜欢的角色或者画风,不妨自己试试训练下,推荐万能的lora模型训练。

参考

AI绘图:lora模型训练小心得
AI绘图:lora模型训练小心得

https://zhuanlan.zhihu.com/p/612992813

AI绘图:lora模型训练小心得

https://ivonblog.com/posts/stable-diffusion-webui-training

作者:张婷

来源-微信公众号:三七互娱技术团队

出处:https://mp.weixin.qq.com/s/BrVr18MaaPmvGqR6HHtFCw

继续阅读