您当前的位置:首页 >> 快讯 >> 
自制lora流程图文教程(本地+云端)

时间:2023-05-16 21:54:32    来源:哔哩哔哩

1.数据处理

1.1素材获取:

根据需求不同,图片的数量、尺寸都会有所不同,最好遵循以下几个原则:


(资料图片仅供参考)

质量高于数量。宁缺毋滥,低质量的素材会“污染”数据,求质不求量,质量高的前提下,再考虑数量;

尺寸统一。长宽最好是能被16整除,比如512*512,768*512,可以根据素材的比例,选择一个尺寸,统一所有素材的长宽,但尺寸会吃性能,要是显卡显存不太高,尺寸最好别大咯;

尽量排除画面中的干扰元素。对图片素材进行初步处理,比如修一下残缺、水印等,诸如人物图片只训练背景、服装,需要对图中人物面部进行遮盖处理(因为五官权重很高)。

对于一些内容构图优秀,但分辨率不够的,可以过一遍sd做无损放大;

对于素材量就是少的,可以先用少量图片做素材训练出特征lora,之后再生图,找到符合需求的,加入素材图集,训练素材就会越来越准确和丰富,这种方式也叫套娃法。

1.2打tag:

tag是为了让程序更好的理解图中元素,tag不用过分追求准确,既然是diffusition(扩散),tag能够指引大致的范围、方向就行。

简洁:

用词不要追求华丽,简洁明了就好,也可以参考提示词参考网站-魔咒百科词典,或者把素材图拖进sd的提示词反推页面,当然后者出来的提示词不是特别准确,仅供参考。拿不定的词,宁可不写;

去杂:

删除掉没必要存在的提示词,保留最基础的特征词就好;删除颜色,比如黑色的长头发,把black删除,保留long hair就行,因为颜色可以在后续文生图中直接指定;

目标tag:

如果是用于多个lora配合使用的,可以添加触发提示词,但这个词需要是你自创的,或者常见词汇加一些东西,至少不能跟词库中已有的提示词一样。

在打tag之前,最好对文件夹中素材做一下整体重命名,比如全部选中对任意图片右键-重命名,用英文字母或数字进行重命名,最好不要有汉字和特殊符号。

打tag工具这里推荐一个,挺好用的,可以在这下载BooruDatasetTagManager (有效期至6月16日)

简单介绍下此工具的使用方法,超级简单

将素材图集文件夹载入软件

左侧第一栏是素材目录,可视化的页面很方便做内容识别;

中间一栏是针对选中图片添加tag,点绿色加号后输入即可;

右边一侧是整体添加tag,点击绿色加号可以给所有素材添加tag,至于前中后顺序,按照需求即可,一般来说最基础通用的放最前面。

输入后,任意切换左侧素材选择,会弹出对话框是否保存,保存即可,文件夹中会自动生成图片同名txt文件。

素材都准备好后,可以进入lora训练环节,这里分别介绍本地训练和云端训练,大家可以根据需求选用(或者同时进行)

2.本地训练

本地训练包及方法来源于 @秋葉aaaki ,此文作为图文及细节补充,欢迎点击查看秋葉大佬原贴【AI绘画】最佳人物模型训练!保姆式LoRA模型训练教程 一键包发布

本地训练包在这里下载https://pan.quark.cn/s/d81b8754a484。

2.1环境安装

都开始训练lora的同学,应该已经安装过sd了吧,也安装过python了吧

那么先管理员模式打开PowerShell,运行

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

右键win按钮,选择windows powershell(管理员),粘贴那段代码回车就行了

在lora-scripts-bytedance中右键install-cn.ps1选择使用powershell运行,一般来说等着就行,第一次运行会下载很多东西比较慢,这个窗口运行完不用管它。

2.2数据集准备

在此资源包中,需要新建一个文件夹起名叫train即可。然后在存放素材的过程中需要注意一下层级结构,素材放在lora-scripts-bytedance\train\xxx\6_xxx\中,xxx是你训练集的名字,6可以理解为迭代次数,一版是6-8。

2.3训练文档设置

右键打开train.ps1文件,推荐安装notepad3来进行编辑(资源包里有),就是好看

打开后,需要对这几个地方进行修改

底模路径,即训练数据所使用的基础模型,可以自己找个目标模型,丢进去,改一下名字,保持文件夹中模型名字后缀跟文档中的一致就行。也可以下载这个7G多的,就叫model.ckpt(https://pan.baidu.com/s/1vN_d0Nf6xPthywOAP7h0Og?pwd=6666),放到sd-models文件夹中。

训练数据集路径,这一块就是你自己的数据集存放路径,上面的xxx这种,素材的存放路径是train/xxx/6_xxx/……,也就是这行代码把aki改成xxx即可。文件夹中可以同时存在多个数据集,文档中写清楚哪个就行。

分辨率,这个就是你自己素材图片的分辨率啦,按照宽,高的格式填写就行;

Batch size,这个数值越大,训练速度越快,但要根据你的显卡显存情况,默认是1,如果你的显卡是24G的,改为3就行,训练时间会缩短,低显存显卡就别挑战这个数值了,会爆显存(非物理);

Network dim,这个就是会影响产出的lora体积,默认的32,产出体积是36.1M,设置为128,产出体积是144M,不过这个跟lora效果不一定成正相关,32效果也挺不错的;

aki即你保存lora的名字,改成xxx成为自己的命名就行

然后是保存格式,默认是safetensors,也有改成ckpt的,这个根据自己喜好咯

然后最重要的一步,ctrl+s保存它!一定要记得保存哈。

接下来,右键train.ps1使用powershell运行

看窗口稳定运行无报错就行,会有预估时间进度条。

训练完成的模型,在output文件夹中

3.云端训练

流程及镜像源自 @秋葉aaaki ,可以查看大佬原贴【AI绘画】LoRA 在线云端训练教程 AutoDL

云端我只用过www.autodl.com,这个平台的好处是社区镜像丰富

使用也很简单,进入网站,注册,充钱,创建实例(租服务器)

建议直接蹲3090,再次A5000,再低没必要了,3090不一定随时都有,一般多刷刷几个区,白天偶尔可以刷到,晚上或清晨很多闲置。

选择社区镜像,搜索lora,选择最高使用量的

然后右下角创建就行。

在控制台(右上角蓝色按钮)列表中,找到刚才创建的服务器,状态显示的是“运行中”就可以开始设置了,点击快捷工具JupyterLab,会打开新页面,不会编程的同学不用担心哈,使用并不麻烦,跟着我的步骤做就行。

双击左侧列表的train.sh,右边会打开页面,之后的步骤跟本地训练一样。

双击train文件夹,新建xxx文件夹,打开xxx文件夹,新建6_xxx文件夹,然后将准备好的训练素材(图片+txt文档)一起拖入6_xxx文件夹中。

镜像已经预装了底模,只用自己上传训练素材,修改train.sh文档即可,修改方式参照本地训练流程。

保存train.sh(ctrl+s)

保存train.sh(ctrl+s)

保存train.sh(ctrl+s)

接下来,将左边目录切回lora-scripts根目录,如图所示,点击运行终端

在右侧终端输入

Bash train.sh

接下来的页面跟本地训练一样,有进度条,有预估剩余时间。

训练完成的模型,在output文件夹中,下载到本地即可

完成模型下载后,记得关机,不然一直扣钱哦。

一般来说,训练一个lora,用时在1-3小时不等,花费还好。主要是按算力租用用户,不会固定分配一台服务器,可能下次你想用的时候,正好它不空余,所有的流程就要再来一遍,不过对于lora训练,这方面其实问题不大,随用随租就行。关于更多linux操作方法,诸如文件删除、打包,网盘连接等操作,可以看AutoDl的帮助文档(https://www.autodl.com/docs/)。

标签: