kohya_ss Stable Diffusion 训练完整指南:LoRA 与 DreamBooth 实战
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
微调 Stable Diffusion 模型往往要背下几十条命令行参数,而 kohya_ss 把 Kohya 训练脚本包装成浏览器里的图形界面,选选项、点按钮就能提交训练。本教程带你从零完成安装、数据组织、LoRA 与 DreamBooth 训练,以及常见报错处理,在自有显卡上跑通第一次 Stable Diffusion 微调。
这份教程适合你吗
三个前提,满足其一即可开始:
- 你有一块显卡的电脑:SD 1.5 的 LoRA 训练 8GB 显存即可,SDXL LoRA 建议 12GB 以上;
- 你不会写 Python 也没关系:kohya_ss 在浏览器里收集所有训练参数,自动生成并执行
train_network.py、train_db.py等命令行; - 没有本地显卡也可以:官方提供 Colab 笔记本网页版(kohya_ss_colab.ipynb)和 Docker 部署方案,但新手走本地安装路径最短。
3 步把界面跑起来
安装全程只有三件事:克隆代码、运行安装脚本、运行启动脚本。
- 克隆项目并进入目录:
git clone https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss- 运行安装脚本,它会自动创建 Python 3.10 虚拟环境并装好全部依赖:
bash setup.sh # Linux / macOS setup.bat # Windows- 启动图形界面:
bash gui.sh # Linux / macOS gui.bat # Windows终端出现Running on local URL后,打开 http://localhost:7860 即可看到 Dreambooth、Fine-tune、LoRA、Settings 等标签页。第一次建议直接选一个 SD 1.5 基础模型开练,参数默认值就能跑通。
🗂️ 用文件夹命名规则组织训练数据
kohya_ss 不靠复杂配置指定数据集,文件夹名本身就承载信息:前缀数字是重复次数,名字是训练目标。
my_dataset/ ├── 10_shs_dog/ # 前缀 10:每张图一个 epoch 内被用 10 次 │ ├── dog1.jpg │ └── dog1.txt # 同名 caption,内容优先于文件夹名 └── 1_regularization/ # 正则化图片,防止语言漂移 └── reg1.jpg- 图片旁边存在同名
.txt或.caption文件时,文件内容作为该图的描述(caption);否则以文件夹名作为标签; - 正则化图片建议约 100 张同类通用图,放在前缀
1_的独立文件夹里; - 支持
.png、.jpg、.jpeg、.webp、.bmp;边长超过 3000 像素的图先缩到训练分辨率附近再放入。
上图是仓库内置测试数据集里的一张 512x512 样本,正是 LoRA 训练常用的尺寸。
🧩 核心功能实操
LoRA 训练:产出一个几十 MB 的小附件
LoRA(Low-Rank Adaptation)不改原模型,只训练一组小权重,推理时叠加到原模型上,最终产出一个独立的小文件。
- 打开 LoRA 标签页,选择基础模型(
.safetensors文件); - 填入数据集文件夹、输出目录、network dim(rank)等参数;
- 可选填 sample prompt 文件,训练中定期生成对比图;
- 点击开始训练,在控制台观察步数与 loss。
参数建议:
| 参数 | SD 1.5 | SDXL |
|---|---|---|
| network dim(rank) | 16 | 16–32 |
| network alpha | 与 rank 相同(如 16) | 与 rank 相同 |
| optimizer | Adafactor | Adafactor(scale_parameter=False、relative_step=False) |
| learning rate | 1e-4 ~ 2e-4 | 4e-7(constant_with_warmup,warmup 100 步) |
| 最大分辨率 | 768 | 至少 1024x1024 |
| 训练步数 | 1000–2000 | 1500–3000 |
| 显存需求 | 8GB 以上 | 12GB 以上 |
alpha 与 rank 的比值是强度系数:alpha=16、rank=32 时有效学习率减半。训练 SDXL 时建议勾选--network_train_unet_only,只训图像生成部分,避开双文本编码器带来的不稳定。
DreamBooth:把自定义角色写进模型
DreamBooth 把特定人物或物体的特征直接写进模型权重,产出完整模型文件(数 GB),效果比 LoRA 更强,耗时也更长。
- 打开 Dreambooth 标签页,选择基础模型;
- 填写 class(类别名,如
1girl或dog)和 identifier(3–4 个字母的生僻词,如shs),生成时用shs 1girl组合调用; - 指定目标图片文件夹与正则化图片文件夹;
- 步数设 800–1500,开始训练。
| 项目 | 建议 |
|---|---|
| 目标图片 | 10–20 张,光照与构图统一,质量优先 |
| 正则化图片 | 约 100 张,可用基础模型只输 class 词提前生成 |
| 训练步数 | 800–1500,出现过拟合(每张都长得一样)时提前停止 |
训练中生成样本图:实时观察收敛
kohya_ss 支持训练过程中每隔固定步数用当前权重推理几张图,不用等训练结束才验证效果。
- 在训练页的 sample prompt 区每行写一条提示词,
#开头为注释; - 提示词尾部追加推理参数。
| 选项 | 含义 | 示例 |
|---|---|---|
--n | 负面提示词 | --n low quality, worst quality |
--w/--h | 生成宽高 | --w 768 --h 768 |
--d | 随机种子 | --d 1 |
--l | CFG scale | --l 7.5 |
--s | 采样步数 | --s 28 |
完整示例:masterpiece, best quality, shs 1girl, in white shirts --n low quality --w 768 --h 768 --d 1 --l 7.5 --s 28
🛠️ 4 个进阶技巧
- masked_loss 掩码损失:在数据集里配黑白掩码图,白色区域才参与 loss 计算,让模型只精学主体、不管背景。用
--masked_loss选项开启,官方标注该功能尚未完全测试。 - config.toml 记住默认路径:把 config example.toml 复制为
config.toml并填好model_dir、lora_model_dir、output_dir,每次打开 GUI 时路径自动填好,省去重复选择。 - 远程运行加
--headless:在服务器或 SSH 场景下,用./gui.sh --listen 0.0.0.0 --server_port 7860 --headless启动,它隐藏本地文件选择弹窗并自动覆盖同名输出文件,避免训练被卡住。 - LECO 概念擦除:v26.0.0 起支持对 SD 1.x/2.x 和 SDXL 做概念擦除与编辑训练,入口在 LECO 标签页,适合"去掉模型里某个不想要的角色"这类需求。
⚠️ 避坑指南:5 个常见卡点
| 症状 | 原因 | 解法 |
|---|---|---|
CUDA out of memory | 显存不足 | 降低最大分辨率与 batch_size,启用梯度累积;SDXL LoRA 需 12GB 以上显存 |
| SSH 下训练卡在"覆盖已有文件"提示 | 原生系统弹窗在无显示环境弹不出 | 启动参数加--headless |
| Windows 训练报 page file 相关错误 | 系统分页文件大小不够 | 在 Windows 系统设置中调大页面文件上限 |
启动报No module named 'tkinter' | Python 安装时未带 tkinter 组件 | 重装 Python 3.10 并勾选 tkinter 选项 |
| V100 显存占用正常但 GPU 利用率低、速度慢 | 驱动与 PyTorch 版本适配问题 | 按官方 V100 排查文档 逐项调整 |
另外,WSL2 环境启动时若提示LD_LIBRARY_PATH未设置,先执行export LD_LIBRARY_PATH=/usr/lib/wsl/lib/再运行 gui.sh。
📌 下一步
- 正式训练前,通读 LoRA 训练指南,核对你的基础模型对应参数与显存需求;
- 从 presets/lora/ 复制一份现成预设(含 Adafactor、Lion、LoCon 等 JSON),在 GUI 中直接导入,省去逐项试错;
- 逐个参数查 docs/LoRA/options.md,完整训练选项见 docs/train_README.md。
建议的第一件事:用仓库自带的 test/img/ 测试数据集跑一次 200 步的小规模 LoRA 训练,看到第一张样本图出现,就说明你的环境完全就绪,可以换自己的图片正式开练。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考