当前位置:   article > 正文

AI绘画 | 《LORA模型训练超入门级教程》--人人都可以当炼金术士_为什麽要训练lora

为什麽要训练lora

大家好我是AI极客菌!

以下内容是通过本人自身理解并总结编写出的,同时也是初步接触训练模型,主要是以美术视角出发来进行讲解,目的就是可以让不理解训练概念和代码指令的小伙伴更容易上手Lora模型训练。(如有问题欢迎大家一起讨论,知识探索的进步脚步终将永不停止。)

为什么要训练Lora模型?

  1. 节省训练时间:LORA模型的低层模型已经在大规模的基准数据集上训练过了,因此可以利用这些已经学到的特征来加速新的训练过程。

  2. 提高准确性:使用LORA模型微调,可以在保持低层模型的特征提取能力的同时,针对具体任务进行优化,从而提高模型在特定任务上的准确性。

  3. 加快创作速度:LORA 模型可以快速生成想法的效果,这些结果可以为创作者提供新的创作灵感,开拓新的设计思路和方向,从而更好地实现自己的设计目标。

  4. 可迁移性:可迁移性意味着可以在不同任务之间共享底层模型,从而减少重复训练,提高工作效率,使其能够更快速地从一个任务转移到另一个任务。

Lora模型训练流程

在这里插入图片描述

lora模型训练节点图

1.训练前期准备

Python安装

安装包在秋叶大佬的一键包里面就有,默认安装路径即可

1.安装python勾选Add PATH,再点Install Now.

在这里插入图片描述

2.安装完毕后出现框内提示就点击,没有则不用管。

在这里插入图片描述

Windows PowerShell设置

1.右键Windows菜单图标打开Windows PowerShell(管理员模式)

在这里插入图片描述

2.复制Set-ExecutionPolicy -ExecutionPolicy RemoteSigned进去回车

3.出现下面选择栏按[A]回车

在这里插入图片描述

训练脚本更新

1.解压lora-scripts压缩包后,点击强制更新.bat脚本

在这里插入图片描述

2.再用鼠标右键install-cn.ps1文件点击PowerShell模式运行,进行环境依赖更新。
在这里插入图片描述

2.训练模型相关知识点

这一节只需要对训练模型的概念进行一个简单的了解即可

在模型训练中需要关注的几个方面

  1. 全面充分的采集训练素材:例如在角色训练素材中,应该有各种角度、表情、光线等情况下的素材,这样才能确保模型具有较好的泛化性。

  2. 图像预处理:对训练素材进行分辨率调整、裁切操作,并对训练集进行打标签处理。

  3. 参数调优:尽可能把训练时长控制在半小时左右,时间过长容易导致过拟合,通过调整等参数控制训练时长。

  4. 观察学习曲线:通过观察学习曲线来对训练素材、训练参数进行调整。

  5. 过拟合&欠拟合处理:测试训练好的模型观察过拟合和欠拟合的问题,再进一步通过调整训练素材和正则化等手段来优化。

综上所述,模型训练中需要关注的几个重点,需要结合具体的任务需求和数据特点来进行调整和优化,以达到最优的训练效果。

接下来需要简单了解一下训练模型中的几个概念名词:

  1. 过拟合&欠拟合

  2. 泛化性

  3. 正则化

过拟合&欠拟合

在这里插入图片描述

在这个问题上ChatGPT从美术角度给出的解释:

在这里插入图片描述

总结:过拟合和欠拟合都是不好的现象,我们需要加以控制,让模型最终得到我们想要的效果。

解决方法:在模型训练中需要不断对训练集、正则化、训练参数、进行调整。过拟合可以尝试减少训练集的素材量,欠拟合就增加训练集的素材量。

泛化性

ChatGPT从美术角度给出的解释:

在这里插入图片描述

总结:泛化性不好的模型很难适应其他风格和多样性的创作力。可以通过跑lora模型生图测试来判断泛化性是否良好。

解决办法:跟解决过拟合欠拟合问题一样,从训练集、正则化、训练参数、进行调整。

正则化

ChatGPT从美术角度给出的解释:

在这里插入图片描述

总结:正则化是解决过拟合和欠拟合的情况,并提高泛化性的手段。

相当于给模型加一些规则和约束,限制要优化的参数有效防止过拟合,同时也可以让模型更好适应不同情况的表现,提高泛化性。

03

训练集准备工作

训练素材处理

选取角色人物凝光来做本次教程素材(角色素材比较容易学习上手,也能对模型训练有一个初步的全面了解)

在这里插入图片描述

如果是角色训练集控制在20-50张图左右,太多会导致过拟合

如果是角色尽可能收集到头像,正视图,侧视图,背面等多角度的无背景素材,增加不同画风的素材可以提高模型应对不同风格的手段,画风训练素材数量可以提高到更多。

在这里插入图片描述

素材可以少,但是质量一定要高;角色背景最好是白底网站上面可以选择换背景颜色

图片批量裁切

在这里插入图片描述

之后利用工具网站把所有图片批量进行统一分辨率裁切

  • 分辨率需要是64的倍数

  • 分辨率预先处理好基本可以直接扔进AI进行训练不用再做分割处理了

  • 尺寸越大越吃显存,可能会出现报错学习卡死等问题

  • 地址:https://www.birme.net

图像预处理

在这里插入图片描述

把训练素材文件路径扔到Stable Diffusion的训练模块下图像预处理功能,勾选生成DeepBooru进行生成tags标签。

打标签

在这里插入图片描述

*进入批量打标签软件点击上方File的Load folder后选择处理好的训练集路径。

批量打标签软件BooruDataset基本操作:

在这里插入图片描述

  1. 点击上方的File–Load folde载入训练素材路径

  2. 左边一栏是单张编辑右边一栏是批量编辑

  3. 是增加标签 X是删除标签 ✔是保存

  4. 最后修改完标签点击File—Save all changes保存全部标签

关于打标签详细解释

1.整合概念标签

例如,你要训练一名角色,添加名称后,需要删除红框内描述此概念的部分特征标签。

这个操作的含义是将特征都融入到你的lora本身,提高lora模型调用效率,更精准的复原角色的发型发色瞳色等生理特征,同时也减少调用词条的数量。

  1. 删除的tag会被固化在模型当中

  2. 同时也为了防止将基础模型中的相同tag引导到你的lora,导致过拟合

  3. 尽可能添加一个不存在的标签用于调度你训练的lora模型

  4. 如果是角色建议只删除生理特征标签,保留着装\配饰\装备等

2.如果从泛化性角度出发,可以保留角色特征标签。但是会导致调用困难,需要输入大量的tag用于调用。

在这里插入图片描述

两种打标签的方法

1. 保留全部标签:

  • 优势:效率快省时省力的训练出模型,拟合度提高,且过拟合出现的情况是最低的。

  • 缺陷:风格会变化过大,tag调用比较困难,训练时需要把epoch提高时间成本会被拉长。

2.剔除部分特征标签:

  • 优势:整合成少量的触发词tag后,调用方便,更精准还原角色特征。

  • 缺陷:容易导致过拟合,泛化性也会降低,如果标签删太多会导致生成的画面非常固化。

训练文件夹结构规范

在这里插入图片描述

注:这里把概念名称转换成角色名称方便理解,具体概念名称按照需求进行填写,*文件夹命名不能用中文。

  1. 首先在脚本的LoraTraining目录下新建训练文件夹命名为train

  2. 如果需要训练多个概念(例如:角色除了本体之外,还要加一个穿着泳装训练素材),这时候就在(input_角色名称)下面再新建一个文件夹,命名写(训练次数_角色名称_泳装)进行文件夹区分。

a.建立步骤

  • 在脚本根目录下面建立一个训练文件夹(train)

在这里插入图片描述

  • 在(train)文件夹内建立一个概念文件夹和,一个正则化文件夹(reg),不需要正则化可不建立

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2Fimg-blog.csdnimg.cn%2Fdirect%2Fb4215bffdb5d4e17959f65f081220431.png&pos_id=img-ROVFtBYM17959f65f08122044.png35

  • 在概念文件夹内建立 – 训练素材文件夹(训练素材文件夹前面的需要加“_”你想训练的次数)之后将训练素材放置进去即可。

在这里插入图片描述

b.正则化文件夹搭建
在这里插入图片描述

c.正则化素材示意

正则化在深度学习中指的是:给模型加一些规则和约束,限制要优化的参数有效防止过拟合。

在这里插入图片描述

正则化素材

【假设我在训练集里面放入了一个泳装角色的训练素材,那么为了防止过拟合的问题,在正则化文件夹内放入一些同样是泳装的图片素材】

可以用SD进行快速生成 *正则化素材不需要生成tag文本文件!!!

正则化素材注意不要过多,不然机器会过多的学习到里面的素材导致跟训练目标角色不一致,*简单来说就是让AI稍微克制一下学习的程度,防止发生过拟合。

在我的理解看来正则化手段是目前控制过拟合问题,最容易理解的一个操作的方法。

04

开始训练

训练脚本讲解

*目前指出的都是常用参数,没有提到的可以不用做修改(如果自己能理解知道怎么去调整也可以,我这里只针对初级快速上手进行讲解。)

在训练脚本根目录下用秋叶提供的文本编辑软件打开train.ps1

在这里插入图片描述

1.训练素材路径设置参数:

  • pretrained_model:底模型路径,底模型一般选择SD 1.5,底模型不能选择过大的完整模型,选择小模型否则内存会爆。

  • train_data_dir:训练素材路径

  • reg_data_dir:正则化素材路径,没有则不用填。

2.训练参数:

  • resolution:图片分辨率,宽,高。支持非正方形,但必须是 64 倍数。

  • batch_size:指的是在神经网络训练中,一次性送入模型的样本数。

  • (通俗地说,就像做菜时一次性放入多少食材一样,batch_size决定了一次送入多少样本来训练模型。较大的batch_size可以加速训练,但会占用更多的内存资源)

  • max_train_epoches:最大训练的epoch数,即模型会在整个训练数据集上循环训练这么多次。

  • (假设最大训练epoch为10,即训练过程中将会进行10次完整的训练集循环。这个参数可以根据实际情况进行调整,以达到更好的模型效果)

  • network_dim:常用 4~128,不是越大越好,这个参数如果是训练画风的话可以给高一些,训练角色物件等不需要调整。

3.学习率(learning rate)

学习率是训练神经网络时一个很重要的超参数,控制着权重的更新速度。这个参数越大,权重更新的幅度就越大;反之,越小更新的幅度越小。因此,设置一个合适的学习率可以使得训练过程更加稳定、收敛速度更快。

5.模型测试

最后从炼丹炉内取最小值的模型为最佳,没有效果再选取最终生成的版本。

在这里插入图片描述

在Output文件夹下取出模型

Xyz图表测试

用Stable Diffusion的xyz图表脚本来测试不同权重下Lora的表现

在这里插入图片描述

打开美术风格,选择脚本XYZ图表:

在这里插入图片描述

  1. x轴类型选择[可附加网络]权重1 x轴值:写你想测试的Lora权重即可。

  2. Y轴类型选择[可附加网络]模型1 Y轴值:填你想测试的Lora模型名称。

  3. Z轴类型选不选都可以。

没有可选附加网络的请在插件列表里面安装

总结

到这里就结束了~

最后感谢大家观看本次教程,理论都是基础实际效果还是需要实践验证。

第一次写教程(其实更偏学习过程中的总结),写的如果不好请轻喷,如有更好的见解欢迎在评论区讨论,我也还在摸索阶段也在更深入的学习训练模型知识。

成品图分享

在这里插入图片描述
在这里插入图片描述

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

在这里插入图片描述

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述
在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/793562
推荐阅读
相关标签
  

闽ICP备14008679号