LoRA 模型训练
1. 训练前准备
1.1 训练脚本
LoRA 训练过程依赖于以下两个 Git repo
1.2 标记数据集
2. 环境安装
2.1 Ubuntu LoRA 训练环境安装
下载源代码
git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts
注意
kohya-ss/sd-scripts 会作为 Submodule 下载在 sd-scripts 文件夹内, 无需额外下载。
安装,在 lora-scripts 路径下执行
./install.bash
注意
该命令会在 lora-scripts 创建 Python venv 环境并激活
在激活的 Python 虚拟环境中安装 lora-scripts 和 sd-scripts 的相关依赖
安装过程中会下载 torch 的相关文件,该文件比较大,有可能网络中断,删除 venv 文件后重试即可
后续操作需要先激活 Python虚拟环境,使用命令:’source venv/bin/activate’
2.2 Win LoRA 训练环境安装
下载源代码
git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts
注意
kohya-ss/sd-scripts 会作为 Submodule 下载在 sd-scripts 文件夹内, 无需额外下载。
安装,PowerShell 打开 lora-scripts 路径,然后执行
./install.ps1
注意
在 lora-scripts 路径下会创建 Python 虚拟环境,存放在 venv 文件夹中
后续操作需要先激活该虚拟环境,使用命令:’.venvScriptsactivate’
3. 模型训练
3.1 训练参数说明
参数名称 |
参数说明 |
参数示例 |
---|---|---|
pretrained_model |
SD基础模型 |
./sd-models/model.ckpt |
train_data_dir |
训练图片数据集路径 |
./train/aki |
3.2 Ubuntu LoRA 模型训练
激活 Python 虚拟环境
source venv/bin/activate
编辑 train.sh 文件,然后执行
./train.sh
在模型训练过程中或者结束后,都可以运行 tensorboard 命令,然后在浏览器中查看训练效果
.\venv\Scripts\activate
tensorboad --logdir=./logs --port=8888
训练结果如图
4. 训练完成后,可以根据 Loss 曲线选择相应的模型放置到路径 stable-diffusion-webui/extensions/sd-webui-addtional-networks/models/lora 路径下即可在 SD WebUI 中使用训练好的模型
3.3 Win LoRA 模型训练
编辑 train.sh 文件,然后执行
./train.ps1
注意
train.ps1 只是把多组命令行命令包装起来
train.ps1 中自动激活对应的 Python 环境
在模型训练过程中或者结束后,都可以运行 tensorboard 命令,然后在浏览器中查看训练效果
source venv/bin/activate
tensorboad --logdir=./logs --port=8888
训练结果如图
3. 训练完成后,可以根据 Loss 曲线选择相应的模型放置到路径 stable-diffusion-webui/extensions/sd-webui-addtional-networks/models/lora 路径下即可在 SD WebUI 中使用训练好的模型
3.4 问题记录
- Python 版本问题
lora-scripts 要求 Python 版本为 3.10.8, 但是在 Win 下 Python 3.9.16 也可以运行。
- 训练集路径问题
训练集路径为训练图片文件夹的父目录
训练图片文件夹命名方式为 每张图片训练次数_图片概念, eg: 10_ninja
- Win 下报 triton 包未安装的问题
通过 pip 无法安装 triton,不影响训练结果,会降低训练效率