LoRA 模型训练

1. 训练前准备

1.1 训练脚本

LoRA 训练过程依赖于以下两个 Git repo

  1. Akegarasu/lora-scripts

  2. kohya-ss/sd-scripts

1.2 标记数据集

2. 环境安装

2.1 Ubuntu LoRA 训练环境安装

  1. 下载源代码

git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts

注意

kohya-ss/sd-scripts 会作为 Submodule 下载在 sd-scripts 文件夹内, 无需额外下载。

  1. 安装,在 lora-scripts 路径下执行

./install.bash

注意

  1. 该命令会在 lora-scripts 创建 Python venv 环境并激活

  2. 在激活的 Python 虚拟环境中安装 lora-scripts 和 sd-scripts 的相关依赖

  3. 安装过程中会下载 torch 的相关文件,该文件比较大,有可能网络中断,删除 venv 文件后重试即可

  4. 后续操作需要先激活 Python虚拟环境,使用命令:’source venv/bin/activate’

2.2 Win LoRA 训练环境安装

  1. 下载源代码

git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts

注意

kohya-ss/sd-scripts 会作为 Submodule 下载在 sd-scripts 文件夹内, 无需额外下载。

  1. 安装,PowerShell 打开 lora-scripts 路径,然后执行

./install.ps1

注意

  1. 在 lora-scripts 路径下会创建 Python 虚拟环境,存放在 venv 文件夹中

  2. 后续操作需要先激活该虚拟环境,使用命令:’.venvScriptsactivate’

3. 模型训练

3.1 训练参数说明

LoRA 训练参数说明

参数名称

参数说明

参数示例

pretrained_model

SD基础模型

./sd-models/model.ckpt

train_data_dir

训练图片数据集路径

./train/aki

3.2 Ubuntu LoRA 模型训练

  1. 激活 Python 虚拟环境

source venv/bin/activate
  1. 编辑 train.sh 文件,然后执行

./train.sh
  1. 在模型训练过程中或者结束后,都可以运行 tensorboard 命令,然后在浏览器中查看训练效果

.\venv\Scripts\activate
tensorboad --logdir=./logs --port=8888

训练结果如图

../../../_images/tensorboard.png

4. 训练完成后,可以根据 Loss 曲线选择相应的模型放置到路径 stable-diffusion-webui/extensions/sd-webui-addtional-networks/models/lora 路径下即可在 SD WebUI 中使用训练好的模型

3.3 Win LoRA 模型训练

  1. 编辑 train.sh 文件,然后执行

./train.ps1

注意

  1. train.ps1 只是把多组命令行命令包装起来

  2. train.ps1 中自动激活对应的 Python 环境

  1. 在模型训练过程中或者结束后,都可以运行 tensorboard 命令,然后在浏览器中查看训练效果

source venv/bin/activate
tensorboad --logdir=./logs --port=8888

训练结果如图

../../../_images/tensorboard.png

3. 训练完成后,可以根据 Loss 曲线选择相应的模型放置到路径 stable-diffusion-webui/extensions/sd-webui-addtional-networks/models/lora 路径下即可在 SD WebUI 中使用训练好的模型

3.4 问题记录

  1. Python 版本问题
    • lora-scripts 要求 Python 版本为 3.10.8, 但是在 Win 下 Python 3.9.16 也可以运行。

  2. 训练集路径问题
    • 训练集路径为训练图片文件夹的父目录

    • 训练图片文件夹命名方式为 每张图片训练次数_图片概念, eg: 10_ninja

  3. Win 下报 triton 包未安装的问题
    • 通过 pip 无法安装 triton,不影响训练结果,会降低训练效率