type
date
status
slug
summary
tags
category
password
icon
一、硬件需求
需要8GB及以上的显存
需要32GB及以上的内存
二、环境配置
由于本人使用 Windows 平台 + NVIDIA RTX 4060 8GB,因此选择使用秋叶的训练包来快速搭建环境。
秋叶的训练包支持 Windows 和 Linux 两个平台:
lora-scripts
Akegarasu • Updated Feb 8, 2025
另外也可以使用整合包:
不过由于整合包使用国内网盘(百度、夸克)分发,下载速度较慢,请自行考虑。
三、训练前的准备工作
环境部署完成后即可启动训练器,但请注意训练需要一个底模。请在开始之前准备好自己的底模。
本人使用的底模是:noobai xl esp-pred:
(注:首次撰写本文时,如果使用noob v-pred 模型则需要使用 SD WebUI Forge 启动,如果是用v预测模型训练,则还需要添加自定义参数)
相关参考:
四、开始训练
1、项目介绍
训练器左侧包含多个项目:
- LoRA 和 Dreambooth 是两种不同的模型:
- LoRA 为小模型,成果通常为几十到几百 MB
- Dreambooth 为大模型,成果通常为几 GB
需要注意的是,Dreambooth 模型的效果并不一定优于 LoRA,且对显存要求较高(超出本人 8GB 显存的承受范围),因此本文不涉及 Dreambooth 模型的训练。
LoRA 项目包括:新手、专家、Flux 等模式。本次针对 noobxl 模型的训练需要在专家页面进行。
其他工具说明:
- Tensorboard:日志监控器,用于数据化展示训练日志,方便监控训练状态
- WD 标签器:通过反推数据集图片快速创建图片标签的工具
- 标签编辑器:用于处理数据集标签的工具
2、处理数据集
首先需要处理数据集。
得益于 ARB 桶的存在,我们不需要裁剪图片。但图片分辨率最好不要过大(如 2K 或 4K),过大的分辨率会导致显存需求增加,并降低训练速度。
创建目录、准备图片:
- 在训练脚本根目录的 train 文件夹下新建一个文件夹。例如要训练 alice,那么就创建名为
alice
的文件夹。
- 在 alice 文件夹下,还需要创建至少一个子文件夹,命名格式为 <数字_名字>。其中数字表示每张图片的学习次数,名字则为标识符。
在本次记录中,我创建了两个文件夹:
6_alice
:用于让 AI 学习 alice 的画风
4_tachi-e
:用于学习 alice 的人设、服装等特征
目录结构如下所示:
打标:
使用 WD 标签器进行打标:
- 在 path 路径中填写类似
../train/alice
的路径
- 阈值和模型保持默认设置
- 附加提示词填写模型触发词
- 勾选"空格代替下划线"和"转义括号"选项
- 开启递归搜索子文件夹后开始处理
清洗数据集:
- 启动标签编辑器,设置数据集目录为
../train/alice
- 勾选"从子目录中加载"后点击加载
- 在"数据集图片"中确认所有训练集图片已加载
- 进入"批量编辑描述"菜单中的"移除"选项进行批量处理
需要移除的内容:
- 角色特征词(如 blue eyes、small breasts 等)
- 错误标签
原理说明:AI 学习的基本公式可以简化为
模型 + 提示词 = 图片
。要得到模型,需要转化为 模型 = 图片 - 提示词
,因此需要删除这些特征词,使其成为模型的底层逻辑。注意:建议保留马赛克或审查类词语,这样可以在生成时将这些词写入 negative prompt 中让 AI "去码"。如果删除,这些元素可能会成为底层逻辑。
3、开始训练
回到专家页面进行参数设置。关于各参数的详细说明,可参考:
训练用模型:
model_train_type
:选择sdxl-lora
(因使用 XL 模型)
pretrained_model_name_or_path
:填写 noob 模型路径
resume
:暂不设置
vae
:留空
数据集设置:
train_data_dir
:填写../train/alice
enable_bucket
:启用,可调整最大最小分辨率,其他保持默认
保存设置:
output_name
:设置模型保存名称
save_precision
:30 系及以上显卡可设置为bf16
save_every_n_epochs
:建议设置为 1
save_state
:建议开启,用于断点续训
训练相关参数:
推荐开启
network_train_unet_only
(尤其是训练 XL 模型时)。配合 cache_text_encoder_outputs
可显著提升训练速度(可从 8~10s/it 提升至 3s/it)。学习率与优化器设置:
参考 @tin-e 推荐配置:
- 优化器:选用
DAdaptLion
(自适应学习率)
- 调度器:选择
constant
- 学习率:使用上述配置可不用手动设置
网络设置:
network_dim
和network_alpha
:保持默认值(32,16)
训练预览图设置:
建议启用,可直观监控训练进度。记得设置预览图生成参数。
Caption(Tag)选项:
建议关闭
shuffle_caption
。速度优化选项:
- 启用 bf16
- 启用 xformers
- 如已开启
network_train_unet_only
,则可启用cache_text_encoder_outputs
- 其他参数保持默认
噪声设置:
noise_offset好像可以用于处理那种实拍图或者扫描件
完成以上设置后,即可开始训练。如无意外,几个小时后就能得到训练好的模型。
后续的记录在此:
flux
开始尝试玩flux模型
训练只能使用fp16的模型,不能使用fp8或者其他量化模型
本地跑了下q4量化的模型,效果很糊,感觉不太能用
- 作者:Alice
- 链接:blog.aierlanta.net/article/train-lora
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。