SDXL LoRA 训练笔记
准备素材
- 尺寸:没有要求。
- 如果是人物,需要多角度。
前言
如果在大局域网内,可以使用以下镜像下模型、代码。
使用方法见网站上的说明。
部署 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
- 选择 Tagger 标签
- 先用一张图选择适合的反推算法
- 进行批量操作批量生成打标的图片集
标签批量处理工具
配置
底模配置
- 选择 LoRA 标签
- 在 Traning – Source model – Model Quick Pick 中选择 custom
- Pretrained model name or path 中填入 sd_xl_base_1.0.safetensors 的路径
- 点选 SDXL Model
准备训练集
首先将训练的素材上传到服务器目录。
- 选择 Tools 标签
- 选择 Dataset Preparation 标签
- 在 Instance prompt 填写 主要触发词
- 在 Class prompt 填写分类触发词
- 在 Training images 填写数据集路径
- 在 Repeats 填写循环次数,比如 30 次
- 在 Destination training directory 填写训练集输出目录
- 点击 Prepare training data 开始预训练
网页上不会有提示,看后台日志。这个应该很快。
最后点击 Copy info to Folders Tab 将信息同步,进入下一步。
训练参数设定
这个训练参数适合 24G 以上显存
-
点击 Traning – Folders,检查参数是否代入正确
-
填写 Model output name 模型输出名字
-
点击 Parameters 标签
-
修改以下设置:
- LoRA Type: LyCORIS/LoHa
- Train batch size: 8
- 勾选 Cache latents 和 Cache latents to disk
- Max resolution: 1024,1024
- Epoch:5
- Caption Extension:.txt
- Optimizer: Prodigy
- Learning rate: 1
- Text Encoder learning rate: 1
- Unet learning rate: 1
- LR Scheduler: constant
- LR warmup (% of steps): 0
- 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
- Network Rank (Dimension): 8
- Convolution Rank (Dimension): 4
- Network Alpha:1
- Convolution Alpha: 1
- Seed: 1234
- (在 Advanced 标签) Noise offset:0.0357
- (在 Advanced 标签) 勾选 Gradient checkpointing
最后,点击开始训练,日志在后台!