90分钟跑通kohya_ss:从克隆仓库到产出第一个LoRA
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
第一次想训练自己的AI绘画风格时,你是不是也卡在命令行参数那一长串上?别急,kohya_ss把 LoRA、DreamBooth 这些训练流程做成了滑块和按钮,照着下面这份清单走,一小时内你就能看着自己训练出来的模型输出第一张图。
仓库自带测试集里的一张风格样图:统一画风、统一色调,正是 kohya_ss 训练喜欢的数据长相
为什么值得上手一次
- 零命令也能跑:所有参数变成滑块、下拉框,它替你生成底层训练命令
- 模型覆盖广:SD 1.5 / SDXL / SD3 / Flux.1 / Lumina / Anima 一套界面全接住
- 训练方式全:LoRA、DreamBooth、Textual Inversion、概念擦除 LECO,从入门到折腾都有得练
- 仓库自带教材:presets/ 里几十份调好的配置,test/config/ 里有现成的数据集模板,抄作业就行
功能速览:这个工具箱里有什么
Gradio 训练面板
一个浏览器里的训练控制台。场景:打开页面就能看到 Dreambooth、LoRA、LECO、Finetuning 等标签页,选好模型和数据集即可开跑。
Dreambooth 标签页
适合"教模型认识一个新对象"。场景:准备十几张同一角色的图,填个触发词,训出一个专属概念。
LoRA 标签页
做轻量风格/角色适配最常用的入口。场景:用几十张同风格图产出一个几十 MB 的小模型,方便分享和叠用。
Utilities 工具页
数据预处理都在这:图片转 WebP、准备数据集缓存等。场景:训练前先把数据"喂料"处理好,省掉反复的等待。
LECO 概念擦除
训练"忘掉某个概念"的反向 LoRA。场景:基础模型总往某些方向跑偏时,用擦除训练把它掰回来。
预设库
presets/ 下的 JSON 文件是可直接加载的成品参数。场景:先加载一份社区预设跑通流程,再逐项改动,比从零猜参数快得多。
环境安装四步走:依赖怎么装才不踩坑
前提:一块能跑的 GPU(NVIDIA 配 CUDA 12.8;AMD 用 ROCm 环境;Intel Arc 走 IPEX),以及 docs/Installation/ 里对应平台的安装文档。以下以 Linux 为例:
第1步:装好 Python 和 git
sudo apt install python3.11 python3.11-tk python3.11-venv git这一步只装基础工具。成功标志:终端输出版本号而不是"未找到命令"。
第2步:克隆 kohya_ss 仓库
git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss--recursive会一起拉取训练脚本子模块,漏了它后面启动会报错。
第3步:初始化环境并验证显卡
./setup.sh装完依赖后跑一句验证命令确认显卡可见:
python -c "import torch; print(torch.cuda.is_available())"成功标志:屏幕打印True,说明 PyTorch 已认到你的 GPU。
第4步:启动 kohya_ss 图形界面
./gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser浏览器会自动打开面板,看到 Dreambooth / LoRA 等标签页即安装成功。之后每次升级只需git pull。
任务一:Dreambooth 首跑——用自带测试集走通全流程
适合谁:第一次训练、还没准备好自己数据集的人。仓库 test/img/ 里的 8 张 512x512 图就是为此准备的。
- 启动 GUI 后进入 Dreambooth 标签页,训练数据目录指向
test/img/10_darius kawasaki person,输出目录指向test/output - 填一个触发词(比如
darusk),分辨率设512,batch size先给1 - 勾选gradient_checkpointing(显存不够时用它换空间),步数设 300,先跑一轮看手感
- 点训练,盯着终端日志:出现
Training: 100%且输出目录里多出.safetensors文件即成功
💡 小技巧:第一次跑通比跑得好更重要。跑完后在 test/output 找到权重文件,记下所有参数,这是你调参的基线。
masked loss 用的黑白剪影掩码:告诉模型"只盯着白色区域学",小显存卡的省钱招数
任务二:LoRA 进阶——rank 和 learning_rate 怎么调
适合谁:跑通了任务一、想训练真正可用的风格 LoRA 的人。
- 切到 LoRA 标签页,网络类型选
loka或按预设来;数据目录沿用任务一的测试集 - 加载一份预设当起点,比如 presets/SDXL - LoRA AI_characters standard v1.1.json,再把rank改成16
- learning_rate从 3e-5 起、优化器选 AdamW8bit、开fp16,步数 1000 左右
- 观察每若干步生成的样本图:特征开始贴合训练集就是方向对了,过拟合(画面糊、细节崩)就往回降学习率
| rank | 显存增量 | 适合场景 |
|---|---|---|
| 8 | 小 | 单一动作/物品,数据 10 张以内 |
| 16 | 中 | 通用角色或风格,新手推荐 |
| 32~64 | 大 | 复杂场景,需要 20 张以上数据 |
💡 rank 和 learning_rate 是跷跷板:rank 调大时学习率要跟着调小一点,两者同大就容易翻车。
同一测试集里的另一张样图:风格统一的"同班同学",LoRA 要学的正是这种共性
任务三:批量数据流水线——缓存与压缩双优化
适合谁:数据集超过 30 张、不想每次训练都干等的人。
- 先做图片转换:在 Utilities 标签页(或用 tools/convert_images_to_webp.py)把数据集转成WebP,体积通常砍掉三到五成
- 需要文字描述时,用 tools/caption.py 批量生成 captions,或在 GUI 里选一个 caption 工具标签页运行
- 回到训练页点"Prepare dataset"做数据集缓存:把 latent 提前算好,后续训练不再重复这一步
- 缓存完成后正式开训,数据加载时间会明显缩短
| 优化项 | 操作 | 效果 |
|---|---|---|
| 图片转 WebP | Utilities / tools 脚本 | 数据集体积 -30%~50% |
| latent 缓存 | Prepare dataset | 每次训练省去重复计算 |
| masked loss | 配黑白掩码图 | 显存吃紧时聚焦局部训练 |
参考模板:test/config/dataset-multires.toml 展示了多分辨率数据集的写法,多尺寸混训时照着改。
调优与排障:参数怎么调不爆显存
先看这张"显存→参数"对照表,照着自己的显卡那一行设初始值:
| 显存档位 | batch size | gradient_checkpointing | 建议 |
|---|---|---|---|
| 8~12GB | 1 | 开 | 分辨率 512 起步,LoRA 优先 |
| 16GB | 1~2 | 开 | 512 稳、768 试探 |
| 24GB+ | 2~4 | 可关 | 768 甚至更高分辨率 |
症状1:训练中途显存溢出,进程直接挂
- batch size 降到 1
- 勾选 gradient_checkpointing
- 分辨率从 768 降回 512,或改用 masked loss 缩小有效训练区域
症状2:每次开训前干等很久
- 确认已执行 Prepare dataset 生成缓存
- 数据集放 SSD 上
- 数据目录路径里少用特殊字符(仓库特意留了带空格的 test/img with spaces/ 来验证路径引号问题,你的路径能跑通测试集说明引号没问题)
症状3:远程/SSH 服务器上 GUI 点不动
- 启动时加
--headless,隐藏本地文件选择弹窗 - 用浏览器连
http://服务器IP:7860操作
症状4:7860 端口被占用
- 换一个端口:
--server_port 7861 - 或先确认旧的训练服务已退出
仓库里的进阶地图
- docs/Installation/:四套平台安装文档(uv/pip × Linux/Windows),装环境卡住的人先看这里
- docs/train_README.md、docs/LoRA/options.md:训练原理与参数详解,想搞懂每个旋钮的人
- presets/:Dreambooth / LoRA / Finetune 三类现成配置,抄作业起步的人
- test/config/:dataset.toml 等模板,配置数据集的人
- tools/:caption、图片转换、LoRA 分析等脚本,批量处理数据的人
- kohya_gui/:GUI 全部源码,想读代码看实现的人
接下来你可以做的四件事
- 今天就用 test/img/ 的小数据集跑一次 Dreambooth,不求效果好,只求跑通
- 挑一份 presets/ 预设加载后,每次只改一个参数,记录前后差别
- 把每次训练的步数、rank、学习率写进自己的笔记,下次调参就有基线
- 数据攒到 30 张以上时,把 WebP 转换和 latent 缓存接进你的固定流程
训练这件事,最难的从来不是命令,而是第一次点下"开始"之后的那几分钟等待。kohya_ss 已经把路铺好了,剩下的,就是你数据集里的想法变成模型里的那份独特。跑通第一个模型后回来试试 LoRA 标签页,你会发现第二遍快得多。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考