00118-2647100069.png

前言

本文记录了在 RTX 5080 16GB 显卡上成功训练 SDXL LoRA 的完整过程。虽然踩了不少坑,但最终找到了稳定可行的配置方案。

环境准备

硬件要求

  • 显卡:RTX 5080 16GB(或其他 16GB+ 显存的显卡)
  • 内存:推荐 32GB+
  • 存储:至少 50GB 可用空间

软件环境

# 必需版本
Python: 3.10.x
CUDA: 12.8+(RTX 50 系列必需)
PyTorch: Nightly 版本

安装步骤

  1. 克隆项目
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
  1. 创建虚拟环境
python -m venv venv
venv\Scripts\activate
  1. 安装 PyTorch Nightly(RTX 50 系列关键)
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
  1. 修复依赖问题 编辑 requirements.txt,注释掉 -e . 这一行:
# -e .
  1. 运行安装脚本(这个要在命令行执行,不能在powershell执行)
setup.bat
# 选择 1: Setup gui,然后选择 7: Exit setup

网络连接处理

重要提示:如果使用 VPN,务必按以下顺序操作:

  1. 先关闭 VPN
  2. 启动 kohya_ss GUI
  3. 再开启 VPN
  4. 点击开始训练

这样可以避免 GUI 启动失败,同时确保训练时能下载必需的分词模型。

数据准备

文件夹结构

training_data/
├── dataset/
│   └── 5_trigger_word/    # 5是重复次数,trigger_word是触发词
│       ├── 001.jpg
│       ├── 001.txt
│       ├── 002.jpg
│       ├── 002.txt
│       └── ...
├── output/
└── logs/

标注文件

每个 .txt 文件内容保持简单一致:

trigger_word, 1girl, solo, [特征描述], anime style, masterpiece, best quality

训练配置

启动 GUI

python kohya_gui.py --listen 127.0.0.1 --server_port 7860

关键设置

⚠️ 重要:选择 LoRA 标签页,不是 Dreambooth!

Model 配置

  • Pretrained model: 选择你的 SDXL 模型
  • Output name: 自定义 LoRA 名称
  • Image folder: 指向 dataset 父文件夹

Parameters 配置

Train batch size: 1
Epoch: 8-12
Learning rate: 0.0001
Max resolution: 512,512

网络参数(关键)

Network Rank (Dimension): 8
Network Alpha: 4

学习率设置(重要)

Text Encoder learning rate: 0    # 必须设为 0
T5XXL learning rate: 0          # 必须设为 0  
Unet learning rate: 0.0001      # 只训练 UNet

优化设置

LR Scheduler: cosine
Optimizer: AdamW8bit
Mixed precision: bf16
Cache latents: ✓

Advanced 配置

在 "Additional parameters" 中添加:

--gradient_checkpointing --full_bf16

常见问题及解决方案

1. RTX 50 系列兼容性

问题:CUDA capability sm_120 不兼容
解决:必须使用 PyTorch Nightly 版本

2. 依赖安装错误

问题-e . 导致的安装失败
解决:注释掉 requirements.txt 中的该行

3. 显存不足

问题:CUDA out of memory
解决

  • 确保使用 LoRA 训练而非 Dreambooth
  • Text Encoder 学习率设为 0
  • 启用 gradient_checkpointing

4. 找不到训练数据

问题:0 train images found
解决:Image folder 应指向包含 5_trigger_word 的父文件夹

5. 分词器下载失败

问题:无法下载 Hugging Face tokenizer
解决:按前述 VPN 使用顺序操作

预期结果

成功配置后的训练表现:

  • 显存使用:约 8GB
  • 训练速度:1-2 秒/步
  • 总耗时:30-60 分钟(取决于数据量和轮数)
  • 文件大小:LoRA 文件约 50-100MB