kohya_ss LoRA训练:从数据集到可加载的权重文件
2026/9/13 13:29:33 网站建设 项目流程

kohya_ss LoRA训练:从数据集到可加载的权重文件

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

读完能整理出带 caption 的数据集,在 kohya_ss 里跑通一次 LoRA 训练,产出可被推理界面直接加载的 .safetensors 文件。

项目定位

kohya_ss 是面向扩散模型训练的图形界面和命令行工具,把 Kohya sd-scripts 的训练参数做成表单,支持 LoRA、LoHa/LoKr、DreamBooth、全量微调和文本反转等训练方式,底模覆盖 SD 1.5/2.x、SDXL、SD3、Flux.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

启动后打开本地 Gradio 页面。需要远程访问时追加--listen 0.0.0.0 --server_port 7860 --headless

核心工作流

准备数据集

图像质量和 caption 一致性决定效果上限。

  • 训练数据放在根目录下的分类子文件夹,每张图配同名.txt,内容即 caption
  • 仓库自带样本test/img/,同一个角色 8 张图配同一句描述,可直接用来跑通流程
  • 单图 512x512 即可,bucketing 按宽高比分桶,不需要预裁剪

统一 caption

caption 描述的是主体共有特征,推理时不会写进 prompt 的词会被模型"学进"LoRA。

  • 批量生成可用 GUI 的 WD14/BLIP/GIT caption 页签,或tools/里的标注脚本
  • 生成后逐个核对.txt,删掉与主体无关的标签

配置训练参数

LoRA 页签的核心参数先按下面这张表起步:

参数作用推荐值选择依据
learning_rate学习率1e-4 (SD1.5) / 4e-7 (SDXL)SDXL 文档以 4e-7 为标准值
train_batch_size批大小1受显存限制,可用梯度累积替代
max_resolution训练分辨率上限"1024,1024" (SDXL)SDXL 标准分辨率为 1024
lr_scheduler学习率衰减方式cosine配置文件默认值
cache_latents缓存 VAE 结果省显存true显存 8GB 以内先开
sample_every_n_steps采样间隔每个 epoch 1 次用于观察收敛情况

presets/lora/目录里放了 Adafactor、AdamW8bit 等优化器的组合,加载预设比逐项填写更快。

配置采样提示词

采样提示词文件每行一条 prompt,#开头为注释。行尾可加--n--w--h--d--l--s分别指定负面提示词、宽高、种子、CFG 和采样步数。固定尺寸和种子,方便对比不同 epoch 的同一条出图。

运行训练并核对产出

填好底模路径、数据集目录和输出名后点击运行,GUI 会拼装命令行并调用 sd-scripts 的 train_network.py。权重按 epoch 写入输出目录,格式为 .safetensors,用采样图和 loss 曲线判断取哪个 epoch。

关键调优点

采样图某个 epoch 后变糊——原因:过拟合,学习率偏高或轮数过多。处理:学习率降一个数量级,或用 save_every_n_epochs 存多个版本,取中段产物。

训练后采样图没有变化——原因:学习率过低,或 caption 没覆盖主体共有特征,模型没有学到东西。处理:先对照图片和.txt内容,确认描述一致后再提高学习率。

CUDA out of memory——原因:VAE 编码或激活值占用显存。处理:开启 cache_latents,batch 保持 1,仍不够再打开 gradient_checkpointing。

masked loss 指定区域不生效——原因:掩码必须是 RGB 图,只有 R 通道为 255 的像素才计入 loss。

处理:把掩码做成黑底白色主体形状,存为三通道图片,再勾选--masked_loss选项。

高频卡点

报 No module named tkinter——系统 Python 缺 tkinter 组件。排查方向:重装 Python 3.10 并勾选 tcl/tk 选项,用python -c "import tkinter"验证。

SSH 场景下点运行后无响应——原生覆盖确认弹窗在服务器上无显示器可显示,进程被阻塞。排查方向:日志里找--headless提示,启动时带上该参数。

V100 训练时 GPU 利用率低——先看日志里的利用率数值,再按docs/troubleshooting_tesla_v100.md里的排查步骤逐项检查驱动和 xformers 配置。

延伸方向

  • docs/LoRA/——LoRA 选项详解,包括 SDXL 建议只训 UNet 和显存要求
  • docs/troubleshooting_tesla_v100.md——V100 利用率问题的专项排查,老卡用户值得先看
  • test/——完整示例数据集和 masked loss 样本,可作环境验证的一套现成材料

先用 test/ 里的样本数据跑通一个小 LoRA,确认权重能在推理界面加载,再换成自己的数据集开始正式训练。

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

立即咨询