kohya_ss 训练指南:从装好环境到产出第一张 LoRA 模型
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
本文面向想训练 LoRA 或做 DreamBooth 的新手,讲清楚 kohya_ss 这套 Stable Diffusion 训练 GUI 怎么装、怎么喂数据、参数往哪调、怎么判断训练到位。它支持 SD1.5/2.x、SDXL、SD3、Flux.1 等主流底模,LoRA、LoHa、LoKr、DreamBooth、全量微调都能在一个界面里跑完。
一、装之前:先确认你的机器能不能跑
能不能装成功,八成取决于显卡和 Python 版本,这两个地方最容易翻车。
硬件够不够:两条线
- 够用线:N 卡显存 6GB,可以跑 SD1.5 的 LoRA,batch size 建议压到 1。
- 推荐线:显存 12GB 起,SDXL LoRA 训练建议 12GB 以上(官方 LoRA 指南明确写了这条线),想开更大的 batch 或多开实例就往 16GB 以上配。
内存 16GB 起步比较稳妥。CPU 不是瓶颈,训练大头在显卡。
⚠️ 官方要求 CUDA 12.8 工具包,Python 版本有讲究:uv方式会读仓库根目录.python-version文件指定的版本(3.10.9 及以上、低于 3.13)。Python 版本不对是安装阶段最常见的报错来源。
安装:uv 方式两条命令
选uv还是pip:uv装得快、环境隔离干净,推荐优先试;pip更传统,出问题好排查,某些 IDE 配合更好。拿不准就先uv,不行再退回pip。
git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss--recursive不能省,否则缺失子模块,训练脚本会找不到代码。
启动:
- Windows:
.\gui-uv.bat - Linux:
./gui-uv.sh
脚本检测到没装uv时会提示,按Y自动装。浏览器打开 http://127.0.0.1:7860 看到界面就装好了。Windows 下若报tkinter缺失,重装一遍 Python 并确认装了 tcl/tk 组件;报页文件(page file)错误,去 Windows 系统里调大虚拟内存上限。
把常用路径写进 config.toml
每次手动选模型目录、数据集目录很烦。把仓库根目录的config example.toml复制一份改名为config.toml,GUI 启动时会自动加载。里面用绝对路径填好这几项:
model_dir = "/your/path/to/models" lora_model_dir = "/your/path/to/output/lora" output_dir = "/your/path/to/output" dataset_dir = "/your/path/to/datasets"路径统一用正斜杠,Windows 也一样。完整的键列表直接看 config example.toml,里面每个键都有注释。
二、喂数据:图片文件夹怎么摆
第一次训练大概率不是卡在软件上,而是卡在数据组织上。新手最容易在这一步卡住,花十分钟把目录结构摆对,后面全是顺的。
目录结构:编号前缀 + 同名 txt
以训练一个角色 LoRA 为例:
dataset/ ├── 10_mychar/ │ ├── img_001.jpg │ ├── img_001.txt │ ├── img_002.jpg │ └── img_002.txt └── 1_cat/ # 正则化图片(可选) ├── reg_001.jpg └── reg_002.jpg规则就三条:
- 每张图放一个同名的
.txt(或.caption)文件,里面写这张图的描述,描述文件优先于文件夹名生效。 - 文件夹名前加数字前缀(如
10_、30_),数字表示该组图片重复学习的次数。角色图多、参考图少时,前缀比例大致 10:1 起步。 - 图片支持 png/jpg/jpeg/webp/bmp,不必预先缩放,但 3000×3000 这种超大图建议先缩,避免报错。
更细的摆法看 docs/image_folder_structure.md。描述不会手写的话,GUI 里有 WD14 tagger、BLIP、BLIP2 等打标签页,对数据集目录跑一遍批量生成 txt。
💡 数量上:LoRA 用 15~30 张清晰、构图各异的图就够起步;用 class+identifier 方式做 DreamBooth 时,正则化图建议凑到约 100 张,否则容易"语言漂移"——生成结果和提示词脱钩。
三、参数怎么调:按这个顺序碰
GUI 里选项很多,但第一次跑只需要关心 6 个。下面每个都按"调它会发生什么 → 什么时候要动它 → 给个能抄的值"来讲。
学习率与优化器
调低,模型学得更慢更稳;调高,几小时的效果可能十分钟出,但容易过拟合或学废。LoRA 常用区间是 1e-4 到 1e-5,优化器选AdamW8bit(省显存且精度够用,官方文档的推荐)。
- SD1.5:学习率
1e-4,调度器cosine。 - SDXL:学习率降到
4e-7,配adafactor优化器(关掉 relative_step 和 warmup_init),调度器constant_with_warmup。SDXL 这条是官方 LoRA 指南 里给的标准值,直接抄。
Rank 与 Alpha
Rank 决定 LoRA 能存多少信息。调大,模型容量变大、文件变大,也更容易记住训练图里的背景杂物;调小则容量不足。试探期从 2~8 开始,正式训练 16~32 够用,128 封顶。Alpha 控制实际作用强度(等于 alpha/rank 的比值),和 Rank 设成一样就互不干扰。
- 推荐抄的值:Rank
16,Alpha16。
Epoch 与 Batch size
Epoch 是"把全部数据过多少遍"。LoRA 两到三轮就够,轮数太多直接过拟合——生成图越来越像训练原图,换个背景就崩。Batch size 一次读几张图,越大越快但显存吃得越多,6GB 卡就设 1。
- 推荐抄的值:Epoch
2,Batch size1(显存 12GB 以上可试 2,此时学习率可翻倍)。
其余高级项——停止文本编码器训练、Min SNR gamma、噪声偏移——第一次全留默认。SDXL 用户加一条:勾上"只训练 U-Net",避免双文本编码器带来不可预期的结果(官方指南强烈建议)。逐项解释见 docs/LoRA/options.md,写得比大多数教程都细。
四、判断练没练够:存点、样图与省显存开关
训练本身不产生"完成"信号,得靠中间产物判断。
存点与训练中出样图
两个开关配合着看:
- Save every N epochs:每 N 个 epoch 存一次 LoRA。设成
1,每个 epoch 都有可检查的文件;不想留中间产物就设成和 Epoch 相同。 - Sample prompts:训练期间定期生成样图。一个 prompt 文件长这样:
masterpiece, best quality, (1girl), simple background --n low quality, bad anatomy --w 512 --h 768 --d 1 --l 7 --s 28--d固定种子,保证每张样图可比对。判断标准很朴素:样图里角色的特征稳定出现了,但换成训练集里没有的姿势/背景仍成立,就停。样图逐张越来越接近原图、背景开始"长"进画面,就是过拟合的信号。
显存吃紧时的两个开关
- Cache latents:默认开启,把压缩后的潜缓存留内存里,省 VRAM、提速,代价是不能用随机裁剪等增强。
- Cache latents to disk:把缓存落盘,同一份数据反复实验时第二次起明显更快。
⚠️ 两者都开的时候,flip 之外的数据增强和 random crop 会失效,介意的话二选一。
训练报错先看这两个
- Windows 报页文件不足:调大系统虚拟内存上限,见 README 的 Troubleshooting 一节。
- Tesla V100 上 GPU 利用率异常、loss 不降:这是驱动/软件栈的已知坑,官方有专门的排查文档 docs/troubleshooting_tesla_v100.md,照里面改环境变量即可。
五、接进出图软件:产物怎么用、怎么批量跑
产物去哪、怎么用
训练完成的 LoRA 是 fp16 权重的.safetensors文件(保存精度默认 fp16,文件小,ComfyUI、SD WebUI 等主流出图端都能直接加载)。训练配置记得一起存档:GUI 里用的参数组合可以存成 preset,仓库的presets/lora/目录里已经放了一批现成参数(比如 SDXL 标准 LoRA、adafactor 配置),改一改就能复用。
全量微调的产物是完整模型,同样放进出图软件的 checkpoints 目录。训练目标怎么选(DreamBooth / LoRA / 全量微调各适合什么场景),docs/train_README.md 开头有一张对照表,第一次选型前看一眼能少走弯路。
批量与远程训练
- 多开实例:同一台机器起多个 GUI 用不同端口(7860、7861…),各自跑一个训练任务。
- 远程/无界面服务器:启动参数必须带
--headless。不带的话,原生文件选择框和覆盖确认弹窗会挂在服务器上无人应答,训练直接卡死。示例:
./gui.sh --listen 0.0.0.0 --server_port 7860 --headless速查表
| 参数 | 推荐起点 | 备注 |
|---|---|---|
| 优化器 | AdamW8bit | 省显存,默认精度够用 |
| 学习率(SD1.5) | 1e-4 | 调度器 cosine |
| 学习率(SDXL) | 4e-7 | 配 adafactor + constant_with_warmup |
| Rank / Alpha | 16 / 16 | 试探期可降到 2~8 |
| Epoch | 2 | 中间存点每 1 epoch 一次 |
| Batch size | 1(12GB 卡可 2) | 翻倍 batch 时学习率可翻倍 |
| 训练分辨率 | SD1.5 用 512,SDXL 用 1024 | 大图会被缩放到上限内 |
| 启动参数(远程) | --headless | 防止弹窗卡死 |
下一步建议:挑 20 张左右的同主题图,按"编号前缀 + 同名 txt"摆好文件夹,先用上表 SD1.5 那组参数跑一个 2 epoch 的完整流程,重点看样图在第 1 个 epoch 末的样子——这个对照点会帮你以后一眼分辨"没学会"和"学过了"。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考