3 小时拿到自己的风格模型:kohya_ss LoRA 训练完整指南
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
kohya_ss 是一个基于 Gradio 的可视化训练工具,把 Kohya 的 Stable Diffusion 训练脚本封装成图形界面:你在页面上选模型路径、填参数,它自动生成对应的训练命令行并执行,支持 LoRA、DreamBooth、文本反转等训练方式。适合懂命令行但不想背几十个训练参数的人——想给某个风格或角色训一个 LoRA,这是目前最省事的路线之一。
四十分钟的报错,最后卡在哪了
上周有个朋友跟我说,他盯着终端里的红字报错盯了四十分钟,分不清是依赖没装对还是参数打错了,后来换到 kohya_ss 上,按页面提示点了几下就跑通了。SD 训练的大部分门槛其实不在理论,而在环境和参数录入上;把这两件事搬进界面里,难度就砍掉一半。
🗺 先看边界:能训什么、各要什么条件
界面里每个训练页对应一类训练方法,用一张表把能力边界说清楚:
| 典型场景 | 输入要求 | 产出物 | 显存底线 | 上手时长 |
|---|---|---|---|---|
| LoRA(风格/概念微调) | 20–50 张图 + 描述 | 几 MB 到几十 MB 权重 | SD1.5 约 6GB,SDXL 约 12GB | 约半小时 |
| DreamBooth(特定角色) | 角色图 + 正则化图 | 几个 GB 的完整模型 | 8GB+ | 2–8 小时 |
| 文本反转 | 图像集 | 几十 KB 嵌入文件 | 4GB+ | 10–30 分钟 |
| LECO(概念编辑) | 图像集 + 待擦除概念 | 概念编辑后的模型 | 6GB+ | 1–3 小时 |
它支持的基模型范围很宽:SD 1.5/2.x、SDXL、SD3、Flux.1、Lumina Image 2.0、Anima、HunyuanImage-2.1。你的基础模型在这张单子里,就能在对应页面里把训练参数拼出来。
🛠 第一条 LoRA:四步从图片到模型
第一步:装好环境,在浏览器里看到训练页
先克隆项目并进入目录:
git clone https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss然后按系统跑安装脚本:Windows 依次执行 setup.bat 和 gui.bat,Linux/macOS 依次执行 ./setup.sh 和 ./gui.sh。浏览器打开后出现 LoRA、DreamBooth、Finetune 这些页签,说明环境好了——看到这一页就算跑通,卡在这一步很正常,多半是 Python 版本不是 3.10。
第二步:把训练数据整理好,配好描述文件
数据集最标准的结构是"图片 + 同名 .txt"。仓库里就有现成例子:test/img/10_darius kawasaki person/目录下一批图片,每张旁边一个 .txt,里面一行描述文字。

组织自己的数据时,分辨率、批大小、重复次数这些字段可以参考 test/config/dataset.toml 的配置写法。描述怎么写有讲究:写清风格、主体、场景,比一句"一张图片"有用得多。
第三步:填四个关键参数,点下开始
LoRA 页参数很多,第一次只盯四个:源模型路径、训练数据集目录、网络维度(dim/alpha)、学习率。拿不准就直接从 预设配置目录 里挑一份 SDXL 或 SD1.5 的预设载入,省掉调参时间。点"开始训练"后,终端会打出一条完整命令行并自动执行,损失值开始滚动就说明跑起来了。
第四步:确认第一张样本图和模型文件
训练中可以配置提示词文件,让它周期性生成样本图,风格变化肉眼可见。结束后检查输出目录两样东西:有没有 .safetensors 模型文件,损失是不是稳定下降。这两样都齐,LoRA 就能拿到绘图软件里实测了。
🎛 跑通之后的三种深玩法
模型只记得一张脸,泛化怎么救
你遇到的问题:生成图和训练集长得太像,换个姿势都是同一张脸。背后的思路:过拟合就是模型在"背"原图,思路是减少记忆量、增加泛化量。具体操作:把 num_repeats 调小,训练步数缩短、多存几个中间检查点,取效果最好的那版;做 DreamBooth 时一定填上正则化图像目录,让模型看一些同类型但不是目标角色的图。预期效果:图里还能认出来这个风格,但主体和场景可以自由变化。
只想学局部区域,怎么让背景别掺和
你遇到的问题:想训的是角色面部,结果训练图里的背景也被学进去了。背后的思路:掩码损失让模型只在掩码的白色区域计算误差,黑色区域直接忽略。具体操作:给每张训练图准备一张同尺寸黑白掩码,白色是需要学习的区域,test/masked_loss/ 目录里有全套示例,照它的画法来就行。
预期效果:模型只学面部与服装特征,背景在出图时随便换,不会被训练图污染。
SDXL 训练总爆显存,从哪下手
你遇到的问题:SDXL 训 LoRA,跑几十步就崩,显存打满。背后的思路:SDXL 有双文本编码器,整条链路占显存比 SD1.5 高一大截。具体操作:开启 --network_train_unet_only 只训 U-Net;优化器换 adamW8bit;批大小降到 1 再靠梯度累积补步数。这些建议都写在 docs/LoRA/top_level.md 里,12GB 是它的显存底线。预期效果:训练完整跑完,显存占用明显下降。
⚠️ 高频坑自排查清单
现象一:CUDA out of memory,训练中途崩掉
- 批大小降到 1
- 打开梯度检查点
- 调低最大分辨率
- 优化器换成 adamW8bit
根因:训练链路的基础显存占用加上文本编码器缓存,两项相加超过卡上限,按清单顺序逐项排查即可。
现象二:SSH 远程训练,进程卡住不动
- 启动参数加 --headless(配合 --listen 0.0.0.0 --server_port 7860)
- 确认界面上没有出现本地文件选择弹窗
根因:GUI 的原生对话框跑在服务器进程里,远程无显示环境时弹窗永远等不到响应,进程看起来像死机。
现象三:LoRA 训完装上没效果
- 生成提示词里加上 class_tokens 对应的触发词
- LoRA 权重先用 1.0 试
- 确认出图用的基础模型和训练时一致
根因:多数时候不是模型没训好,是触发词没用,模型不知道什么时候该激活这个 LoRA。
现象四:启动就报 No module called tkinter
- 重装 Python 3.10 后重新执行安装脚本
根因:GUI 的部分交互依赖 tkinter,系统 Python 版本与项目要求对不上。
📚 资料去哪找
- 文档:各平台安装指南、LoRA 参数详解、完整训练流程
- 工具脚本:tools/ 里有批量打标 caption.py、图像分组 group_images.py、LoRA 分析 analyse_loha.py,python 直接跑
- 示例与测试集:examples/ 是各阶段训练和打标脚本,test/ 有现成小数据集与配置样例
- 社区:项目由社区共同维护,问题排查和功能讨论都发生在仓库 Issues 区,提问前先搜一下同款问题
跑通第一个 LoRA 只是开始,后面真正的难度全在"怎么让它学明白"。建议先用 SD1.5 做个简单 LoRA,确认样本图和模型文件都正常产出,再上 SDXL 和 DreamBooth——路不会走偏。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考