3 小时拿到自己的风格模型:kohya_ss LoRA 训练完整指南
2026/9/13 3:33:15 网站建设 项目流程

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,里面一行描述文字。

![kohya_ss LoRA 训练数据集示例:训练图与对应描述文件](https://raw.gitcode.com/GitHub_Trending/ko/kohya_ss/raw/f44226cfccca008094f958d829c49c74a7e9289d/test/img/10_darius kawasaki person/Dariusz_Zawadzki.jpg?utm_source=gitcode_repo_files)

组织自己的数据时,分辨率、批大小、重复次数这些字段可以参考 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询