news 2026/9/13 12:01:16

90分钟跑通kohya_ss:从克隆仓库到产出第一个LoRA

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
90分钟跑通kohya_ss:从克隆仓库到产出第一个LoRA

90分钟跑通kohya_ss:从克隆仓库到产出第一个LoRA

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

第一次想训练自己的AI绘画风格时,你是不是也卡在命令行参数那一长串上?别急,kohya_ss把 LoRA、DreamBooth 这些训练流程做成了滑块和按钮,照着下面这份清单走,一小时内你就能看着自己训练出来的模型输出第一张图。

![机械骷髅头训练样本,kohya_ss 测试数据集用图](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)仓库自带测试集里的一张风格样图:统一画风、统一色调,正是 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 图就是为此准备的。

  1. 启动 GUI 后进入 Dreambooth 标签页,训练数据目录指向test/img/10_darius kawasaki person,输出目录指向test/output
  2. 填一个触发词(比如darusk),分辨率设512batch size先给1
  3. 勾选gradient_checkpointing(显存不够时用它换空间),步数设 300,先跑一轮看手感
  4. 点训练,盯着终端日志:出现Training: 100%且输出目录里多出.safetensors文件即成功

💡 小技巧:第一次跑通比跑得好更重要。跑完后在 test/output 找到权重文件,记下所有参数,这是你调参的基线。

masked loss 用的黑白剪影掩码:告诉模型"只盯着白色区域学",小显存卡的省钱招数

任务二:LoRA 进阶——rank 和 learning_rate 怎么调

适合谁:跑通了任务一、想训练真正可用的风格 LoRA 的人。

  1. 切到 LoRA 标签页,网络类型选loka或按预设来;数据目录沿用任务一的测试集
  2. 加载一份预设当起点,比如 presets/SDXL - LoRA AI_characters standard v1.1.json,再把rank改成16
  3. learning_rate从 3e-5 起、优化器选 AdamW8bit、开fp16,步数 1000 左右
  4. 观察每若干步生成的样本图:特征开始贴合训练集就是方向对了,过拟合(画面糊、细节崩)就往回降学习率
rank显存增量适合场景
8单一动作/物品,数据 10 张以内
16通用角色或风格,新手推荐
32~64复杂场景,需要 20 张以上数据

💡 rank 和 learning_rate 是跷跷板:rank 调大时学习率要跟着调小一点,两者同大就容易翻车。

![机械士兵坐姿训练样本,LoRA 风格学习示例](https://raw.gitcode.com/GitHub_Trending/ko/kohya_ss/raw/f44226cfccca008094f958d829c49c74a7e9289d/test/img/10_darius kawasaki person/Dariusz_Zawadzki_6.jpg?utm_source=gitcode_repo_files)同一测试集里的另一张样图:风格统一的"同班同学",LoRA 要学的正是这种共性

任务三:批量数据流水线——缓存与压缩双优化

适合谁:数据集超过 30 张、不想每次训练都干等的人。

  1. 先做图片转换:在 Utilities 标签页(或用 tools/convert_images_to_webp.py)把数据集转成WebP,体积通常砍掉三到五成
  2. 需要文字描述时,用 tools/caption.py 批量生成 captions,或在 GUI 里选一个 caption 工具标签页运行
  3. 回到训练页点"Prepare dataset"做数据集缓存:把 latent 提前算好,后续训练不再重复这一步
  4. 缓存完成后正式开训,数据加载时间会明显缩短
优化项操作效果
图片转 WebPUtilities / tools 脚本数据集体积 -30%~50%
latent 缓存Prepare dataset每次训练省去重复计算
masked loss配黑白掩码图显存吃紧时聚焦局部训练

参考模板:test/config/dataset-multires.toml 展示了多分辨率数据集的写法,多尺寸混训时照着改。

调优与排障:参数怎么调不爆显存

先看这张"显存→参数"对照表,照着自己的显卡那一行设初始值:

显存档位batch sizegradient_checkpointing建议
8~12GB1分辨率 512 起步,LoRA 优先
16GB1~2512 稳、768 试探
24GB+2~4可关768 甚至更高分辨率

症状1:训练中途显存溢出,进程直接挂

  1. batch size 降到 1
  2. 勾选 gradient_checkpointing
  3. 分辨率从 768 降回 512,或改用 masked loss 缩小有效训练区域

症状2:每次开训前干等很久

  1. 确认已执行 Prepare dataset 生成缓存
  2. 数据集放 SSD 上
  3. 数据目录路径里少用特殊字符(仓库特意留了带空格的 test/img with spaces/ 来验证路径引号问题,你的路径能跑通测试集说明引号没问题)

症状3:远程/SSH 服务器上 GUI 点不动

  1. 启动时加--headless,隐藏本地文件选择弹窗
  2. 用浏览器连http://服务器IP:7860操作

症状4:7860 端口被占用

  1. 换一个端口:--server_port 7861
  2. 或先确认旧的训练服务已退出

仓库里的进阶地图

  • 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 全部源码,想读代码看实现的人

接下来你可以做的四件事

  1. 今天就用 test/img/ 的小数据集跑一次 Dreambooth,不求效果好,只求跑通
  2. 挑一份 presets/ 预设加载后,每次只改一个参数,记录前后差别
  3. 把每次训练的步数、rank、学习率写进自己的笔记,下次调参就有基线
  4. 数据攒到 30 张以上时,把 WebP 转换和 latent 缓存接进你的固定流程

训练这件事,最难的从来不是命令,而是第一次点下"开始"之后的那几分钟等待。kohya_ss 已经把路铺好了,剩下的,就是你数据集里的想法变成模型里的那份独特。跑通第一个模型后回来试试 LoRA 标签页,你会发现第二遍快得多。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 11:55:14

非线性动力响应计算:Newmark-Beta法MATLAB实现与收敛策略

简介:面向结构动力学与非线性地震响应分析,这是一份基于Matlab编写的非线性Newmark算法小型工具,适用于需要处理几何非线性、材料非线性或强震作用下动力时程分析的工程师与科研人员。压缩包共3个文件,包含线性和非线性二自由度体…

作者头像 李华
网站建设 2026/9/13 11:54:17

Vue.js v-for指令详解与性能优化实践

1. v-for指令的本质与基础用法v-for是Vue.js框架中用于列表渲染的核心指令,它的作用类似于JavaScript中的for循环,但专为模板设计。当我们需要在页面上展示一组相似结构的数据时,v-for可以大幅减少重复代码。1.1 基本语法结构v-for指令的标准…

作者头像 李华
网站建设 2026/9/13 11:53:09

PyTorch复现SRCNN图像超分辨率:从数据管线到PSNR/SSIM评估

简介:基于Pytorch的SRCNN图像超分辨率重建复现工程,面向深度学习与底层视觉入门者,覆盖x2、x3、x4三档放大倍率训练及推理全流程。压缩包共41个文件,包含9个Python源码、6个H5格式数据集、3个PTH权重文件及BMP样例图等&#xff0c…

作者头像 李华