训练 LoRA,数据集决定了"学什么"。本教程讲清楚 AI Toolkit 的数据格式硬规则、trigger word 设计、自动分桶机制,以及 DOP 正则数据集——把数据这一关把住,训练就成功了一半。
数据格式硬规则
AI Toolkit 的数据集是"图片 + 同名文本"的文件夹结构:
- 图片仅支持 jpg / jpeg / png(webp 目前有问题,先转格式)
- 每张图配一个同名的 .txt 文件作为 caption(描述)
datasets/
├── 0001.jpg
├── 0001.txt ← 内容:"a woman with red hair, ..."
├── 0002.png
├── 0002.txt
└── ...
caption 文件里只放描述文本。支持一个占位符:写 [trigger] 时,训练会自动替换成配置里的 Trigger Word。
例如 caption 写
[trigger] a photo of a person,Trigger Word 设为sks,实际训练时变成sks a photo of a person。这样不用手工改文件。
Trigger Word(触发词)设计
触发词是训练时绑定到目标概念上的"暗号",生成时输入它就能唤起 LoRA。设计原则:
- 独特:不要用常见英文单词(person、woman、style 都不合适),用组合词,如
midnight_tarot、p3r5on - 不与训练数据里的自然词冲突:避免歧义
- 风格 LoRA 可以不用触发词(用 caption-only 法,见模型配方教程),主体/角色 LoRA 强烈建议用
自动分桶(Bucketing):不需要你裁剪图片
AI Toolkit 内置自动分桶机制:
- 图片只会被缩小、不会被放大(所以尽量用高分辨率素材)
- 按配置的分辨率桶(如
512 / 768 / 1024)自动归入最近的桶分批训练 - 支持不同宽高比,不需要手工裁剪/缩放
这个机制极大降低了数据准备门槛——你只需保证图片质量与多样性,尺寸交给工具。
数据集质量三要素
- 数量:参考基线——简单风格 15–30 张精选图;角色/身份 20–60 张;编辑/指令类 50–200 组(不同模型在各自配方教程里有具体建议)
- 多样性:同一个主体,尽量覆盖不同角度、光线、场景、构图;只有"正面大头照"会限制泛化
- 配平:主体占比、风格强度保持一致,避免某些特征过度代表
caption 写法:风格 LoRA vs 主体 LoRA
| 类型 | 写法要点 |
|---|---|
| 风格 LoRA | 描述图像里有什么,不要写媒介/风格词(不写"儿童涂鸦、粗糙蜡笔")。把目标风格当作默认输出,模型激活后风格自动生效 |
| 主体/角色 LoRA | 简短独特触发词 + 类别词(person、woman、cat…),如 midnight_tarot woman;描述细节与特征 |
| 编辑/指令 LoRA | 描述指令与变化(源图→目标图),需配对数据集 |
正则数据集与 DOP
DOP(Differential Output Preservation,差分输出保持) 是 AI Toolkit 的正则化机制,解决"LoRA 渗漏"问题——即不触发时图像也长得像训练目标。
原理:对正则图像同时跑基座与 LoRA 的输出,计算差异并加惩罚项,抑制不该发生的变化。
使用要点:
- 在 Datasets 页创建正则数据集(勾选 Is Regularization)
- 正则样本是"普通内容"图(非训练目标),caption 里不要包含 trigger
- 训练时在 Regularization 面板开启 DOP,并绑定正则数据集
- 何时用:训练主体与基座原有能力重叠、或发现渗漏时
注意:开启 DOP 后文本 embedding 会随 step 变化,不能再开 Cache Text Embeddings(详见 05 篇)。
占位图
下一步
→ 05 · 核心超参数详解 看懂训练参数,知道每个旋钮在干嘛