使用ComfyUI作为生产力工具,调用Checkpoint叠加Lora出图,以下为使用自己的数据集训练用于ComfyUI的Lora流程。

服务器准备

用于训练Lora需要较高的GPU算力,选择智灵云服务器,其预载了ComfyUI和Lora训练器,非常方便。智灵云服务

alt

注册好账号后,在GPU部署一栏中新建自己的GPU。为了方便将训练好的模型直接测试,本人开了两个GPU实例分别训练和测试,它们共用一块云磁盘,在GPU部署一栏中可见。

alt

一般40GB的存储空间就够用了,GPU根据需要选择,一般训练Lora单4090即可跑满。

训练Lora的GPU

选择训练类模板下的SD Lora tranier,对应秋叶大佬的训练器,链接他在b站有很多AI作画相关的工具和教程。等待启动完毕打开trainer界面即可

alt

alt

训练flux lora的时候可能会报错40系列不支持分布式训练,需要在环境变量里提前禁用,如下,正常情况不需要考虑。

alt

用ComfyUI测试Lora的GPU

选择推理类模板下的SD comfyUI,等待启动完毕打开comfyUI界面即可。

alt

alt

费用问题

注意,GPU存储会一直扣费,费用是1小时 10GB 1分钱,GPU从1块钱到几块不等,只在开启的时候计费,所以测试完毕后记得把服务关了,训练时可以预估时长设置自动关机时间,一般半夜会便宜25折。

Lora训练

整体流程分为图片清理->图片裁切->打标签->上传数据集->正式训练->导出模型。

图片清理

这一环节自己在本地筛选留下符合需求的优质图片即可。

图片裁切

通过链接网站工具进行批量裁切,支持自动识别重点像素,大小需要设置为32的倍数,推荐统一修改为jpg模式。

alt

对裁切完的图片进行重命名,从000开始,这里附上bat命令,保存为.bat文件并修改代码中的图片地址即可使用。

@echo off

setlocal enabledelayedexpansion

rem 设置文件夹路径

set folder= T:\Huishi\birme-590x900

rem 进入目标文件夹

cd /d %folder%

rem 计数器

set count=1

rem 循环重命名文件

for %%f in (*.jpg) do (

rem 格式化数字(补零)

set filename=00!count!

ren "%%f" "!filename:~-3!.jpg"

rem 计数器加1

set /a count+=1

)

echo 重命名完成!

pause

重命名后清晰可见,上传时便于处理,bat命名使用方法:脚本第7行路径改成自己存放数据集的路径,复制代码到.txt文本中,改变后缀为.bat直接双击运行即可。

alt

给图片打标签

启动GPU,通过SD-tranier中的WD标签器即可快速自动打标,有需要可以通过下方的标签编辑器修改标签。

alt

点击启动后,会在对应的图片目录下生成txt文件。

alt

实际使用时,GPU训练器中的打标功能可能有bug比较慢,可以本地部署SD-trainer打好标后再上传,链接本地部署方法

上传数据集

如果使用服务器的SD-trainer打标,那么在图片裁切重命名后打开jupyternotebook上传即可,使用本地SD-trainer则在打好标后再通过jupyternotebook上传。

alt

正式训练

由于使用SDXL作为基底模型,所以只能走专家训练,几个关键参数如下。

alt

训练种类选SDXL,底模选择在素材网站上下载的Checkpoint文件,数据集路径填写时注意,一定要在root前面加/才是完整的路径。

alt

图片大小按照裁切时的大小填即可,输出模型的地址一定要修改,推荐为/root/output,否则可能无法正常保存训练结果,其他训练参数根据需求修改即可。

alt

PS:显卡显存够大的可以epoch开个50,batchsize按4 8 12往上加,他们的关系是训练的总次数=图片数量*epoch*batchsize

导出模型

最后训练出来的safetensor格式文件复制到comfyUI对应models的Lora文件夹下,进入测试流程。

使用comfyUI测试训练的Lora

启动GPU,在comfyUI中的工作流加载对应的底模Checkpoint和Lora的safetensor开始测试即可。

alt