LoRA 训练怎么做?Stable Diffusion 保姆教程
LoRA 训练怎么做?详解 SD LoRA、LoRA 模型、微调画图三大入门要点,从素材准备到训练参数一站讲透的中文保姆教程
LoRA 训练是 Stable Diffusion 进阶玩家的「第一座大山」——也是回报最高的一座。练一个属于自己的角色 / 画风 / 物品 LoRA,模型才能真正按你想要的样子出图,而不是被通用 checkpoint 的「平均审美」绑架。
这篇按「LoRA 是什么 → 素材准备 → 训练工具选型 → 参数详解 → 实际跑一次 → 常见坑」6 段把 SD LoRA 训练讲透。看完你能在自己电脑上训出第一个能用的 LoRA。
前置:本文假设你已经会用 Stable Diffusion 出图。没接触过 SD 的人先看 Stable Diffusion 本地部署 把基础玩通再回来。
30 秒了解:LoRA 是什么
LoRA(Low-Rank Adaptation)是一种「轻量级模型微调」技术,原本用在大语言模型上,2023 年被引入 Stable Diffusion 生态,现在是 SD 玩家最主流的「自定义画风 / 角色」方式。
简单对比:
| 概念 | 体积 | 训练成本 | 用途 |
|---|---|---|---|
| Checkpoint(大模型) | 2-7 GB | 几千 GPU 小时 | 决定底层画风(写实 / 动漫 / 油画等) |
| LoRA(微调小模型) | 10-200 MB | 几小时单卡 | 微调特定角色 / 物品 / 风格 |
| Textual Inversion | 几 KB | 较快 | 训练单个「关键词」 |
| DreamBooth | 2-7 GB(同 checkpoint) | 几小时单卡 | 整模型微调,效果强但体积大 |
LoRA 的核心优势:
- 体积小:100 MB 左右,下载分享便利
- 可叠加:一张图可以同时用 3-5 个 LoRA(角色 + 画风 + 服装 + 姿势叠在一起)
- 训练快:一张 RTX 3060 / 4060 显卡几个小时能训一个
- 不破坏底模:用完一关闭,回归原 checkpoint 风格
LoRA 训练适合谁
- 想训自己的二次元角色(同人作者刚需)
- 想训自家产品 / 品牌物品(电商、设计师)
- 想训特定画风 / 摄影风格(自媒体)
- 想训特定人脸(注意法律与肖像权风险)
LoRA 训练不适合谁
- 完全没装过 SD 的人(先把出图玩通)
- 没有 NVIDIA 显卡的人(云端方案另说)
- 「想训就立刻出效果」的急性子(炼丹是反复试错的活)
准备工作
硬件要求
| 部件 | 最低 | 推荐 |
|---|---|---|
| 显卡 | NVIDIA 6GB | NVIDIA 12GB+ |
| 显存 | 6GB(勉强) | 12GB / 16GB 舒适 |
| 内存 | 16GB | 32GB |
| 硬盘 | 50GB | 100GB+ SSD |
显存是核心瓶颈:6 GB 只能训 SD 1.5 LoRA,SDXL LoRA 需要 12 GB 起步。没本地硬件的人可以用 Google Colab / 腾讯云 GN7 / 阿里云 ECS 这类租 GPU的方式。
训练工具选型
主流的 SD LoRA 训练工具有三个:
| 工具 | 难度 | 优势 | 适合 |
|---|---|---|---|
| Kohya_ss GUI | 中 | 最主流、文档全、社区大 | 新手首选 |
| 秋葉训练器(aki-launcher) | 低 | 中文界面、整合包 | 国内新手 |
| OneTrainer | 中 | 新生力量、UI 现代 | 喜欢新工具的人 |
本文以 Kohya_ss GUI 为主线讲(最广泛的标准)。秋葉训练器原理一样,参数名 90% 对得上。
素材准备(最关键的一步)
LoRA 训练的成败 80% 看素材质量。
需要准备:
- 15-50 张原图(角色 LoRA 推荐 20-30,画风 LoRA 推荐 50-100)
- 分辨率 512×512 或 1024×1024(SDXL 用 1024)
- 图片要清晰、构图多样(不同角度 / 表情 / 服装 / 背景)
- 主体明确(不要让背景抢戏)
素材黄金法则:
- ✅ 同一角色的不同表情、不同动作、不同光线
- ✅ 不同景别(全身 / 半身 / 头像 / 特写)
- ✅ 不同背景(避免模型把背景元素「记成角色特征」)
- ❌ 同一张图重复多次(学不出泛化能力)
- ❌ 全是同一姿势的图(输出会僵硬)
- ❌ 水印 / 文字 / Logo(会被学进去)
详细操作步骤
第 1 步:素材预处理与打标
把 15-50 张图放到一个英文路径文件夹,比如 D:\LoRA\my-character\1_character。
文件夹名前缀的数字(如
1_)是 Kohya 的「重复次数」约定。后面会讲。
接下来给每张图打 tag——这是新手最容易跳过、却最影响效果的一步。
打 tag 主要方法:
- WD14 Tagger(动漫向):用 AUTOMATIC1111 WebUI 的 Tagger 扩展自动打 tag
- BLIP(写实向):自动生成英文自然语言描述
- 手动调整:自动打完后逐张检查,去掉错误 tag、加上想要 LoRA 学的「特征 tag」
打 tag 的核心策略:
- 要让 LoRA 学的特征 → tag 里写(如「红发」「绿色眼睛」「斜挎包」)
- 不想让 LoRA 学的内容 → tag 里也写(背景、姿势、服装等会被「分离」出去,触发词调用时不会自带)
- 每张图建议有 15-30 个 tag
第 2 步:安装 Kohya_ss GUI
打开 GitHub 找 bmaltais/kohya_ss 项目,按官方 README 安装:
- 需要 Python 3.10(和 SD WebUI 一样)
- 需要 Git
- 装好后用
gui.bat启动
[此处放截图:Kohya_ss GUI 主界面]
国内网络可能拉 GitHub 慢,建议用代理或镜像源。秋葉训练器整合包对国内用户更友好。
第 3 步:配置训练参数
在 Kohya_ss GUI 里选 LoRA → Training 标签:
Source model(底模选择):
- SD 1.5 LoRA:选一个干净的 SD 1.5 底模(如
v1-5-pruned.safetensors) - SDXL LoRA:选 SDXL base 1.0
- ⚠️ 不要用风格化太重的底模(如 RealisticVision、AnythingV5),否则 LoRA 会过拟合到底模风格
Folders(路径):
- Image folder:上一步整理好的素材根目录(如
D:\LoRA\my-character,不是1_character子目录) - Output folder:训练好的 LoRA 输出位置
- Logging folder:TensorBoard 日志(可选)
Training parameters(核心参数):
| 参数 | 推荐起步值 | 说明 |
|---|---|---|
| Train batch size | 1-2(显存 12 G 以下)/ 4(24 G) | 越大越快越占显存 |
| Epoch | 10-15 | 总训练轮数 |
| Save every N epochs | 1-2 | 每隔几轮保存一次(便于挑最佳) |
| Mixed precision | fp16 | 节省显存 |
| Save precision | fp16 | 输出体积小 |
| Optimizer | AdamW8bit | 显存友好的主流选择 |
| Learning rate | 1e-4 | 学习率 |
| LR Scheduler | cosine_with_restarts | 平滑下降 |
| Network Rank(维度) | 32-64 | 越高表达力越强、体积越大 |
| Network Alpha | 16-32(Rank 的一半) | 影响学习强度 |
第 4 步:启动训练
点 Start training,命令行窗口开始刷训练日志。
预期时长:
| 配置 | SD 1.5 LoRA | SDXL LoRA |
|---|---|---|
| RTX 3060 12 G | 30-90 分钟 | 3-6 小时 |
| RTX 4070 12 G | 20-60 分钟 | 2-4 小时 |
| RTX 4090 24 G | 10-30 分钟 | 1-2 小时 |
[此处放截图:训练进度日志]
训练过程中可以打开 TensorBoard 看 loss 曲线——loss 应该平滑下降,不要剧烈震荡或突然飙升。
第 5 步:测试与挑选最佳 epoch
训练完会得到一堆 .safetensors 文件(每个 epoch 一个)。不是 epoch 越多越好——往往中间某一轮(如 epoch 8)效果最好,后面会过拟合。
测试方法:
- 把训出来的 LoRA 文件都复制到 SD WebUI 的
models\Lora\文件夹 - 在 WebUI 里用 X/Y/Z plot 脚本对比每个 epoch 的出图
- 每个 epoch 用同一个 prompt + 同一个 seed,对比哪一轮最像、构图最自然
挑出最佳那一轮,删掉其他的,这一个就是你的 LoRA 成品。
第 6 步:在 prompt 里调用 LoRA
回到 SD WebUI,prompt 里加:
<lora:你的LoRA文件名:0.7>
权重 0.7 是常用起步值——1.0 太满容易过拟合,0.3 太弱看不出效果。
⚠️ 权重支持小数,可以
0.65、0.85精细调整。多个 LoRA 叠加时每个权重不要超过 1.0,总和不要超过 1.5。
5 个 LoRA 训练进阶技巧
技巧 1:素材数量「质 大于 量」
很多新手以为「图越多越好」,实际 30 张高质量图远胜 100 张水图。宁可少而精,每一张都问自己「这张能给 LoRA 教什么新东西?」。
技巧 2:触发词(trigger word)的设计
给你的 LoRA 一个独特又简洁的触发词——比如训角色叫「Anna」,就用 annachan 这种正常 token 库不存在的拼写,避免和已有概念冲突。打 tag 时这个触发词必须每张图都加在第一位。
调用时 prompt 写:annachan, standing in park, sunset 即可。
技巧 3:分桶训练(bucket training)
如果素材尺寸不一(有 512×768、有 768×512、有 1024×1024),开启 Enable buckets——Kohya 会自动按比例分组训练,不用手动裁剪所有图到同一尺寸。
技巧 4:正则化图(regularization images)
进阶玩法:准备一组「类别图」(如训角色 LoRA 时准备 100-200 张「普通女生」图)作为 regularization,防止 LoRA 把所有女生都画成你的角色。新手可跳过,进阶必学。
技巧 5:Loss 不下降 / 过拟合的判断
训练过程中盯 loss 曲线:
- Loss 平滑下降到 0.08-0.12 区间 = 正常
- Loss 早早降到极低(如 0.03) = 大概率过拟合
- Loss 完全不动 = 学习率太小 / 数据有问题
- Loss 剧烈震荡 = 学习率太大 / batch 太小
常见坑 + 解决办法
| 现象 | 原因 | 解决 |
|---|---|---|
| CUDA out of memory | 显存不够 | 减小 Batch size / Network Rank / 开 gradient checkpointing |
| 训完出图完全没像角色 | tag 没打好 / 触发词没用对 | 重新打 tag、确保 prompt 含触发词 |
| 训完出图过于像素材 | 过拟合 | 减少 epoch、降学习率、加正则化图 |
| 出图崩坏(多手指 / 五官扭曲) | 素材手部 / 五官质量差 | 重新筛素材,剔除有缺陷的 |
| LoRA 强度调到 1 还不像 | 训练量不够 | 增加 epoch / Network Rank |
训练日志报 'NoneType' object | 路径含中文或空格 | 改全英文路径 |
| 训练速度极慢 | 没开 xformers | 启动时加 --xformers 参数 |
| 出图风格被底模带跑 | 底模选错 | 换干净底模重训 |
实战案例:训一个二次元角色 LoRA
下面给一个完整的从素材到出图的 LoRA 训练参数模板:
LoRA 训练 - 二次元角色完整参数模板
适用:用 30 张某个原创角色立绘训一个能稳定还原她的 LoRA
素材准备:
- 数量:25-30 张
- 内容:8 张全身、10 张半身、7 张头部特写、5 张不同表情
- 分辨率:统一 512x768 或开 bucket 训练混合尺寸
- 打 tag:用 WD14 Tagger 自动打,每张第一位加触发词 myangelchan
参数设置:
- 底模:SD 1.5 干净底模 v1-5-pruned.safetensors
- Image folder:D:\LoRA\angel
- 子文件夹命名:10_angel(10 次重复,因为图少)
- Output:D:\LoRA\angel\output
- Train batch size: 2
- Epoch: 10
- Save every N epochs: 1
- Mixed precision: fp16
- Optimizer: AdamW8bit
- Learning rate: 1e-4
- Text encoder LR: 5e-5
- Unet LR: 1e-4
- LR Scheduler: cosine_with_restarts
- LR warmup: 10
- Network Rank: 32
- Network Alpha: 16
- Clip skip: 2
- Enable buckets: ON
- Caption extension: .txt
- Shuffle caption: ON
- Keep n tokens: 1(保护触发词不被打乱)
训练后测试:
- 把每个 epoch 的 LoRA 都复制到 SD WebUI models/Lora 文件夹
- 写 prompt:myangelchan, standing, blue sky, masterpiece
- 用 X/Y/Z plot 对比 epoch 6-10 的出图
- 挑像角色又不过拟合的那一轮作为最终成品
调用 prompt 例: myangelchan, 1girl, white dress, standing in flower field, soft light, masterpiece, best quality, <lora:myangelchan-08:0.7>
这套参数跑下来 RTX 3060 大概 1 小时出结果,第一个 LoRA 大概率不完美——这是正常的,炼丹本质是「试 5 次找到对的那一次」的过程。
LoRA 训练 vs 其他自定义方式的取舍
| 维度 | LoRA | Textual Inversion | DreamBooth | ControlNet |
|---|---|---|---|---|
| 适合学 | 角色 / 风格 / 物品 | 单个概念 / 词 | 整个画风迁移 | 构图 / 姿势控制 |
| 文件体积 | 100 MB | 几 KB | 2-7 GB | 1-2 GB |
| 训练显存 | 6-12 GB | 4-6 GB | 12-24 GB | 不需训 |
| 训练时长 | 1-3 小时 | 30 分钟 | 2-6 小时 | 已有预训模型 |
| 效果上限 | 高 | 中 | 极高 | 最强构图控制 |
| 学习曲线 | 中 | 低 | 高 | 中 |
新手优先学 LoRA——投入产出比最高,社区资源最全。掌握 LoRA 再去碰 DreamBooth 也不迟。
一个判断「我该不该训 LoRA」的 prompt
把下面发给豆包 / DeepSeek / ChatGPT,帮你判断:
我在考虑要不要自己训一个 SD LoRA,请帮我做一个具体判断。
我的情况:
- 我的显卡:「具体型号,如 RTX 3060 12GB / RTX 4070 12GB / 没独显」
- 我想训的内容:「自己设计的角色 / 自家产品 / 某个画风 / 真人照片 / 其他」
- 我手头能用的素材数量:「不到 10 张 / 10-30 张 / 30-50 张 / 50+ 张」
- 素材质量:「都是高清原图 / 有些糊 / 网上扒的 / 自己拍的」
- 我用 LoRA 的频率预期:「试试看 / 经常出图用 / 商业项目用」
- 我学习时间预期:「能花 2-4 小时折腾 / 只想立刻能用 / 介于之间」
请帮我:
- 给一个明确判断:自己训 / 直接用 civitai 现成 LoRA / 用其他工具替代
- 如果训,推荐参数起步值
- 如果不训,推荐替代方案(哪个现成 LoRA / 哪个工具)
- 提醒我有什么坑要注意
请直接给一个明确判断,不要让我自己选。
九成新手得到的建议会是:「先用 civitai 找现成 LoRA 玩,发现没有合适的再训」。这就对了——LoRA 训练是 SD 玩家的「副本任务」,不是必经之路。
进阶 / 下一步
- Stable Diffusion 本地部署 - 没装 SD 的先看这篇
- ComfyUI 教程 - 节点式工作流玩进阶训练
- Midjourney 教程 - 闭源天花板对比体验
- AI 画图选哪个 - 完整选型决策
- AI 画图教程 - 回 ai-image 总览
最后一句忠告:LoRA 训练的乐趣 80% 在「调出第一个能用版本」的瞬间。之后会上瘾——你会不断回头改素材、改参数、试新模型。给自己留几个完整周末,别赶。