🤖 AI 跟我学 新手入门

LoRA 训练怎么做?Stable Diffusion 保姆教程

LoRA 训练怎么做?详解 SD LoRA、LoRA 模型、微调画图三大入门要点,从素材准备到训练参数一站讲透的中文保姆教程

发布 2026/05/20

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较快训练单个「关键词」
DreamBooth2-7 GB(同 checkpoint)几小时单卡整模型微调,效果强但体积大

LoRA 的核心优势

  • 体积小:100 MB 左右,下载分享便利
  • 可叠加:一张图可以同时用 3-5 个 LoRA(角色 + 画风 + 服装 + 姿势叠在一起)
  • 训练快:一张 RTX 3060 / 4060 显卡几个小时能训一个
  • 不破坏底模:用完一关闭,回归原 checkpoint 风格

LoRA 训练适合谁

  • 想训自己的二次元角色(同人作者刚需)
  • 想训自家产品 / 品牌物品(电商、设计师)
  • 想训特定画风 / 摄影风格(自媒体)
  • 想训特定人脸(注意法律与肖像权风险)

LoRA 训练不适合谁

  • 完全没装过 SD 的人(先把出图玩通)
  • 没有 NVIDIA 显卡的人(云端方案另说)
  • 「想训就立刻出效果」的急性子(炼丹是反复试错的活

准备工作

硬件要求

部件最低推荐
显卡NVIDIA 6GBNVIDIA 12GB+
显存6GB(勉强)12GB / 16GB 舒适
内存16GB32GB
硬盘50GB100GB+ 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 size1-2(显存 12 G 以下)/ 4(24 G)越大越快越占显存
Epoch10-15总训练轮数
Save every N epochs1-2每隔几轮保存一次(便于挑最佳)
Mixed precisionfp16节省显存
Save precisionfp16输出体积小
OptimizerAdamW8bit显存友好的主流选择
Learning rate1e-4学习率
LR Schedulercosine_with_restarts平滑下降
Network Rank(维度)32-64越高表达力越强、体积越大
Network Alpha16-32(Rank 的一半)影响学习强度

第 4 步:启动训练

Start training,命令行窗口开始刷训练日志。

预期时长:

配置SD 1.5 LoRASDXL LoRA
RTX 3060 12 G30-90 分钟3-6 小时
RTX 4070 12 G20-60 分钟2-4 小时
RTX 4090 24 G10-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.650.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 训练参数模板:

📋 Prompt 模板

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(保护触发词不被打乱)

训练后测试:

  1. 把每个 epoch 的 LoRA 都复制到 SD WebUI models/Lora 文件夹
  2. 写 prompt:myangelchan, standing, blue sky, masterpiece
  3. 用 X/Y/Z plot 对比 epoch 6-10 的出图
  4. 挑像角色又不过拟合的那一轮作为最终成品

调用 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 其他自定义方式的取舍

维度LoRATextual InversionDreamBoothControlNet
适合学角色 / 风格 / 物品单个概念 / 词整个画风迁移构图 / 姿势控制
文件体积100 MB几 KB2-7 GB1-2 GB
训练显存6-12 GB4-6 GB12-24 GB不需训
训练时长1-3 小时30 分钟2-6 小时已有预训模型
效果上限极高最强构图控制
学习曲线

新手优先学 LoRA——投入产出比最高,社区资源最全。掌握 LoRA 再去碰 DreamBooth 也不迟。

一个判断「我该不该训 LoRA」的 prompt

把下面发给豆包 / DeepSeek / ChatGPT,帮你判断:

📋 Prompt 模板

我在考虑要不要自己训一个 SD LoRA,请帮我做一个具体判断。

我的情况:

  1. 我的显卡:「具体型号,如 RTX 3060 12GB / RTX 4070 12GB / 没独显」
  2. 我想训的内容:「自己设计的角色 / 自家产品 / 某个画风 / 真人照片 / 其他」
  3. 我手头能用的素材数量:「不到 10 张 / 10-30 张 / 30-50 张 / 50+ 张」
  4. 素材质量:「都是高清原图 / 有些糊 / 网上扒的 / 自己拍的」
  5. 我用 LoRA 的频率预期:「试试看 / 经常出图用 / 商业项目用」
  6. 我学习时间预期:「能花 2-4 小时折腾 / 只想立刻能用 / 介于之间」

请帮我:

  • 给一个明确判断:自己训 / 直接用 civitai 现成 LoRA / 用其他工具替代
  • 如果训,推荐参数起步值
  • 如果不训,推荐替代方案(哪个现成 LoRA / 哪个工具)
  • 提醒我有什么坑要注意

请直接给一个明确判断,不要让我自己选。

九成新手得到的建议会是:「先用 civitai 找现成 LoRA 玩,发现没有合适的再训」。这就对了——LoRA 训练是 SD 玩家的「副本任务」,不是必经之路

进阶 / 下一步

最后一句忠告:LoRA 训练的乐趣 80% 在「调出第一个能用版本」的瞬间。之后会上瘾——你会不断回头改素材、改参数、试新模型。给自己留几个完整周末,别赶