SDXL LoRA 训练笔记

准备素材

  1. 尺寸:没有要求。
  2. 如果是人物,需要多角度。

前言

如果在大局域网内,可以使用以下镜像下模型、代码。

使用方法见网站上的说明。

  1. https://ghproxy.com/
  2. https://hf-mirror.com/

部署 kohya-ss

地址:https://github.com/bmaltais/kohya_ss

在 ubuntu 下部署

$ conda create --name kohya python=3.10
$ conda activate kohya
# 安装 cudaNN 在 https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64
$ git clone https://github.com/bmaltais/kohya_ss.git
$ cd kohya_ss
$ chmod +x ./setup.sh
$ ./setup.sh

启动命令

$ ./gui.sh --listen 0.0.0.0 --server_port 5000

素材预处理

WebUI 安装插件:https://github.com/picobyte/stable-diffusion-webui-wd14-tagger

  1. 选择 Tagger 标签
  2. 先用一张图选择适合的反推算法
  3. 进行批量操作批量生成打标的图片集

标签批量处理工具

  1. windows
  2. mac

配置

打开 http://xxx:5000

底模配置

  1. 选择 LoRA 标签
  2. 在 Traning – Source model – Model Quick Pick 中选择 custom
  3. Pretrained model name or path 中填入 sd_xl_base_1.0.safetensors 的路径
  4. 点选 SDXL Model

准备训练集

首先将训练的素材上传到服务器目录。

  1. 选择 Tools 标签
  2. 选择 Dataset Preparation 标签
  3. 在 Instance prompt 填写 主要触发词
  4. 在 Class prompt 填写分类触发词
  5. 在 Training images 填写数据集路径
  6. 在 Repeats 填写循环次数,比如 30 次
  7. 在 Destination training directory 填写训练集输出目录
  8. 点击 Prepare training data 开始预训练

网页上不会有提示,看后台日志。这个应该很快。

最后点击 Copy info to Folders Tab 将信息同步,进入下一步。

训练参数设定

这个训练参数适合 24G 以上显存

  1. 点击 Traning – Folders,检查参数是否代入正确

  2. 填写 Model output name 模型输出名字

  3. 点击 Parameters 标签

  4. 修改以下设置:

    1. LoRA Type: LyCORIS/LoHa
    2. Train batch size: 8
    3. 勾选 Cache latents 和 Cache latents to disk
    4. Max resolution: 1024,1024
    5. Epoch:5
    6. Caption Extension:.txt
    7. Optimizer: Prodigy
    8. Learning rate: 1
    9. Text Encoder learning rate: 1
    10. Unet learning rate: 1
    11. LR Scheduler: constant
    12. LR warmup (% of steps): 0
    13. Optimizer extra arguments: –optimizer_args “safeguard_warmup=True” “weight_decay=0.1” “decouple=True” “use_bias_correction=True” “d_coef=0.5” –network_train_unet_only
    14. Network Rank (Dimension): 8
    15. Convolution Rank (Dimension): 4
    16. Network Alpha:1
    17. Convolution Alpha: 1
    18. Seed: 1234
    19. (在 Advanced 标签) Noise offset:0.0357
    20. (在 Advanced 标签) 勾选 Gradient checkpointing

最后,点击开始训练,日志在后台!