本篇用最少的改动,把第一个 LoRA 完整跑通:准备数据 → 建任务(只动 5 个关键项)→ 训练 → 用 3 个诊断 prompt 判断效果。先跑通,再谈优化。
第 0 步:准备干净多样的数据
- 收集 15–30 张高质量图片(主体/风格一致、场景多样)
- 每张配同名 .txt caption;主体 LoRA 用独特 trigger token(如
midnight_tarot) - 在 Datasets 页创建数据集,检查:图片数量、caption 是否对应、分辨率桶是否合理
不要一上来就追求完美数据。先保证"干净(无乱图)+ 多样(角度/光线/场景)",跑通后再精修。
第 1 步:New Job 只动 5 个高影响项
新建任务时,把精力集中在 5 个最影响结果的设置上,其余保持默认:
| # | 设置 | 建议起点 |
|---|---|---|
| 1 | 触发方式(Job → Trigger Word) | 独特组合词(主体类必填) |
| 2 | rank(Target → Linear Rank) | 16 起步 |
| 3 | steps(Training → Steps) | 2000(风格类可 2500) |
| 4 | learning rate(Training) | 1e-4 |
| 5 | bucket(Datasets → Resolutions) | 按显存选 512 / 768 / 1024 |
其余(Model 家族、Name or Path、量化、优化器、EMA、Save/Sample 节奏)按该模型的配方教程或默认值来。
第 2 步:绑定数据集并开始训练
- Datasets 面板:Target Dataset 选你刚建的数据集
- 确认 Cache Latents 开启(省显存)
- Sample 面板:Sample Every 250,先填 1–2 个代表性 prompt
- 点击 Create 创建任务,到 Training Queue 点开始
训练开始后你会看到:
- 模型下载 / latent 缓存阶段(首次较慢,属正常)
- 逐 step 训练(
xx s/it, loss=...) - 每 250 步出现一批采样图
演示图占位
此处放:Training Queue 训练中页面(任务状态 + 日志 + 采样缩略图)
说明:右侧采样图随时间逐步增多,可逐张点开对比
第 3 步:用 3 个诊断 prompt 判断效果
训练中/完成后,用固定 seed 跑 3 类 prompt 做诊断:
| 类型 | 做法 | 判断标准 |
|---|---|---|
| 激活 | 带 trigger 的 prompt | 出现训练主体/风格 = LoRA 有反应 |
| 泛化 | 带 trigger 但换属性/场景 | 主体保持但属性变化 = 学到的是"概念"而非复读 |
| 泄漏 | 不带 trigger 的普通 prompt | 仍然正常生成 = 无渗漏 |
把每 250 步的采样按时间排开看趋势:主体一致性先出现 → 细节逐渐跟上 → 若某一步后开始"只会复读训练图",说明过拟合点到了。
第 4 步:挑 checkpoint
- Save Every 250 意味着每 250 步一个 checkpoint
- 过拟合前那个 checkpoint 通常质量最高:采样图"细节充分但不复读"
- Max Step Saves to Keep 之外的旧 checkpoint 会被清理,训练完成后手动下载你选中的那个
常见结果与应对
| 现象 | 判断 | 处理 |
|---|---|---|
| 几百步没变化 | LoRA 没学到 | 先查采样是否真的加载了 LoRA;再查 trigger 是否生效、caption 是否太笼统 |
| 只会复读训练图 | 过拟合 | 换更早 checkpoint;减 steps;降 rank |
| 生成的图不像 | 欠拟合/数据问题 | 加步数;检查数据多样性;稍升 lr |
| 不触发也出现主体 | 渗漏 | 开 DOP + 正则数据集 |
下一步
→ 07 · 常见错误与修复 遇到报错先来这里查