一、工具简介与安装指南
1.1 秋叶 LoRA 训练器概述
秋叶 LoRA 训练器(基于 Akegarasu/lora-scripts 项目)是针对 Stable Diffusion 模型的轻量化微调工具,通过低秩适应(LoRA)技术实现高效参数微调。其核心优势在于:
- 参数效率:仅训练少量适配器参数(通常 < 2%),显存占用降低 70% 以上
- 部署灵活:生成模型文件体积仅 10-200MB,支持多模型组合调用
- 中文优化:内置国内加速源和本地化界面,解决网络限制问题
1.2 系统环境要求
- 硬件配置 :
- NVIDIA 显卡(显存≥6GB,推荐 8GB 以上,SDXL 训练需 16GB+)
- 内存≥16GB,建议 32GB(避免数据加载卡顿)
- 存储空间≥50GB(含基础模型和训练数据)
- 软件环境 :
- Windows 10/11(推荐)或 Linux(需手动配置依赖)
- Python 3.10.x(必须,安装时勾选 "Add Python to PATH")
- Git(用于自动更新)
1.3 安装步骤
-
下载整合包
从官方 GitHub 仓库获取最新版本:
bash
git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts
国内用户建议使用码云镜像:
bash
git clone https://gitee.com/Akegarasu/lora-scripts.git
-
环境初始化
- 解压至非中文路径(如
D:\lora-scripts
) - 双击运行
A强制更新-国内加速.bat
,自动安装依赖 - 若出现
fbgemm.dll
缺失错误,需下载依赖文件并复制到torch/lib
目录(参考哔哩哔哩教程)
- 解压至非中文路径(如
-
启动训练器
运行
A启动脚本.bat
,默认通过http://127.0.0.1:28000
访问 Web 界面- 首次启动会自动下载基础配置文件(约 200MB)
- 建议将启动脚本发送到桌面快捷方式
二、数据集准备全流程
2.1 素材收集与预处理
-
素材要求:
- 数量:人物 / 物体类 20-50 张,风格类 50-200 张
- 质量:分辨率≥512px,光照均匀,背景简洁,避免模糊 / 重复图像
- 多样性:人物需包含多角度(正面 / 侧面 / 45°)、多表情、多服饰
-
预处理工具:
- 批量裁剪 :使用 Birme(https://www.birme.net)设置尺寸为 512x512(SD1.5)或 1024x1024(SDXL)
- 超分修复:通过 Stable Diffusion WebUI 的 "extras" 功能提升低清图像质量
2.2 标签生成与优化
-
自动打标
- 启动秋叶整合包的 WebUI,进入训练→图像预处理
- 源目录:原始图片文件夹,目标目录:输出路径
- 勾选自动焦点裁切 和使用 Deepbooru 生成标签,点击 "预处理"
-
标签优化(关键步骤)
使用 BooruDatasetTagManager 工具:
bash
git clone https://github.com/starik222/BooruDatasetTagManager.git cd BooruDatasetTagManager && pip install -r requirements.txt && python main.py
- 加载数据集:File→Load Folder 选择预处理后的图片目录
- 核心操作 :
- 删除冗余标签(如 "low quality" 等负面标签)
- 置顶触发词(如 "mychar"),调整权重(靠前标签权重更高)
- 统一标签格式(如 "1girl" 改为 "1girl, solo")
- 保存更改:File→Save All Changes
2.3 数据集组织结构
严格遵循以下目录结构(以训练 "动漫角色" 为例):
plaintext
lora-scripts/
└── train/
└── anime_char/ # 主文件夹(自定义名称)
└── 20_mychar/ # 格式:[repeat值]_[触发词]
├── img01.jpg # 训练图片
├── img01.txt # 对应标签文件
├── img02.jpg
└── img02.txt
- repeat 值设置 :
- 素材 < 30 张:设为 10-20
- 素材 50-100 张:设为 5-10
- 风格类数据集:设为 2-5
三、核心参数配置详解
3.1 基础配置参数
参数名称 | 含义说明 | 推荐值 | 注意事项 |
---|---|---|---|
基础模型路径 | 选择预训练模型 | ChilloutMix(写实)/AnythingV5(动漫) | 需放入sd-models 目录 |
数据集路径 | 训练素材存放目录 | ./train/anime_char |
路径不可含中文 / 空格 |
输出路径 | 模型保存位置 | ./output/mychar_202507 |
按 "主题 + 日期" 命名便于管理 |
训练分辨率 | 图像尺寸(宽 × 高) | 512×512(6GB 显存)/1024×1024(SDXL) | 必须为 64 的倍数 |
3.2 训练控制参数
参数名称 | 含义说明 | 推荐值 | 调整技巧 |
---|---|---|---|
网络维度(Network Dim) | 控制模型复杂度 | 8-32(新手推荐 16) | 简单物体 8-16,复杂角色 24-32 |
网络 Alpha | 学习率缩放因子 | 与网络维度相同 | loss 下降慢时降低为维度的 1/2 |
学习率 | 参数更新步长 | 文本编码器:1e-5;U-Net:1e-4 | 真人训练可降低至 5e-5 |
训练轮数(Epochs) | 数据集迭代次数 | 10-20 轮 | 观察 loss 稳定后可提前停止 |
批处理大小(Batch Size) | 单次训练图片数量 | 6GB 显存:1;12GB 显存:2-4 | 过大易导致显存溢出 |
3.3 优化器与调度器设置
-
优化器类型:
- AdamW8bit:默认选项,平衡显存与稳定性
- Lion8bit:训练速度提升 30%,适合大数据集
- Prodigy :自动调整学习率,需配合
constant
调度器
-
学习率调度器:
- cosine_with_restarts:复杂任务首选,重启次数≤4
- constant_with_warmup:新手友好,预热步数设为总步数 5%
- linear:适合需要精确控制学习率的场景
四、模型训练与监控
4.1 启动训练流程
-
模式选择:
- 新手模式:自动填充基础参数,适合首次使用
- 专家模式:可配置高级参数(如梯度检查点、混合精度)
-
关键配置步骤:
- 在 WebUI 中填写基础模型路径 (如
./sd-models/chilloutmix.safetensors
) - 设置训练数据集路径 (如
./train/anime_char
) - 勾选混合精度训练 (FP16/BF16)和Latent 缓存(节省显存)
- 点击 "开始训练",后台终端显示训练进度
- 在 WebUI 中填写基础模型路径 (如
4.2 训练过程监控
-
Loss 值分析:
- 理想曲线:稳定下降至 0.1-0.2 区间后趋于平稳
- 异常情况:
- Loss>0.3 且不下降:检查标签质量或增大学习率
- Loss 骤降至 0.05 以下:可能过拟合,减少训练轮数
-
TensorBoard 监控 :
运行
tensorboard.ps1
,访问http://127.0.0.1:6006
查看:- 训练 Loss 曲线(train/loss)
- 学习率变化趋势(learning_rate)
- 生成样本对比(samples)
4.3 常见问题解决
问题现象 | 解决方案 |
---|---|
显存不足(CUDA out of memory) | 降低 Batch Size 至 1;启用梯度检查点;分辨率降至 512×512 |
训练中断后无法恢复 | 删除output 目录下的last.safetensors ;检查数据集路径是否正确 |
生成图像出现异常花纹 | 检查训练数据是否含相似纹理图片;降低网络维度至 8-16 |
torch 版本过低错误 | 运行A强制更新-国内加速.bat ;手动安装 torch 2.3+:pip install torch --upgrade |
五、模型测试与效果优化
5.1 基础测试流程
-
模型部署 :
将训练生成的模型文件(如
mychar.safetensors
)复制到 SD WebUI 的models/Lora
目录 -
生成测试:
- 正向提示词:
masterpiece, best quality, <lora:mychar:0.8>, 1girl, smile
- 负向提示词:
bad hands, low quality, blurry
- 参数设置:Steps=20-30,CFG Scale=7,Sampler=DPM++ 2M Karras
- 正向提示词:
5.2 高级测试方法(XYZ 图表法)
在 WebUI 中安装 "XY Plot" 插件,测试关键参数影响:
- X 轴:Lora 权重(0.5, 0.7, 0.9)
- Y 轴:CFG Scale(5, 7, 9)
- 结果分析:选择清晰度与风格一致性最佳的组合(通常权重 0.7-0.8)
5.3 模型效果优化技巧
-
过拟合处理:
- 增加正则化图像(生成 20 张基于底模的同类图片)
- 启用 Dropout(概率 0.1-0.2)
-
细节增强:
- 叠加 "add_detail" LoRA(权重 0.3-0.5)
- 提示词添加
highres, detailed face, 8k
六、高级使用技巧
6.1 SDXL 模型训练专项配置
- 分辨率 :必须 1024×1024,
bucket_reso_steps=32
- 网络维度:64(生成 435MB 模型),Alpha=32
- 优化器:Prodigy + constant 调度器,学习率设为 1.0
- 显存要求:最低 16GB(启用 FP16 精度)
6.2 多 LoRA 模型组合应用
-
权重平衡 :
plaintext
<lora:style_anime:0.6>, <lora:character:0.4>
-
冲突解决 :
- 风格 LoRA 权重≤0.7
- 使用 "LoRA Block Weight" 插件屏蔽冲突层
6.3 模型量化与部署优化
-
4-bit 量化 (显存减少 75%):
python
from bitsandbytes import BitsAndBytesConfig bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_use_double_quant=True )
-
推理加速 :
- 转换为 GGUF 格式(使用 llama.cpp)
- 启用 VLLM 多 LoRA 部署:
vllm serve --enable-lora
七、附录:资源与工具推荐
7.1 必备工具
- 标签生成 :WD14 Tagger(GitHub)
- 素材处理:Birme 批量裁剪、SwinIR 超分辨率
- 模型管理 :CivitAI(https://civitai.com)- LoRA 模型分享平台
7.2 常见参数模板
-
真人角色训练 :
plaintext
网络维度=32, Alpha=32, 学习率=1e-4, Epochs=15, Batch Size=2
-
动漫风格训练 :
plaintext
网络维度=16, Alpha=16, 学习率=2e-4, Epochs=10, 优化器=Lion8bit
7.3 学习资源
- 官方文档 :Akegarasu/lora-scripts Wiki
- 视频教程:秋叶 B 站频道《AI 绘画从入门到精通》
- 社区支持:Discord 服务器(搜索 "秋叶 LoRA 训练")
通过以上步骤,即可使用秋叶训练器高效训练高质量 LoRA 模型。建议从简单物体或风格入手,逐步掌握参数调优技巧,最终实现个性化角色、风格的精准控制。