工具教程AI
在 Apple 芯片 Mac 上训练 LoRA
从 kohya 环境、素材裁切与打标,到训练目录、底模、优化器和 Rank 参数,梳理一条可执行的 LoRA 训练流程。
这篇笔记记录的是在 Apple 芯片 Mac 上用 kohya 系工具训练 Stable Diffusion LoRA 的基本思路。训练脚本和依赖更新频繁,具体安装命令应以所用仓库的当前说明为准。
先明确训练目标
LoRA 可以学习人物、物件、服装或画风。不同目标需要不同素材:
- 人物:角度、表情、景别和光线要有变化;
- 物件:保留稳定外观,同时覆盖不同背景与视角;
- 画风:题材要多样,避免模型把具体人物或构图误学成风格。
素材数量不是越多越好。重复、模糊、严重压缩或构图几乎相同的图片,会放大偏差。
数据准备
- 清理低质量和重复图片;
- 按底模支持的分辨率裁切,必要时启用 buckets;
- 为图片生成 caption,再逐张修正;
- 把希望模型学习的概念写进 caption;
- 准备少量未参与训练的提示词,用于阶段性对照。
Caption 不需要描述每个像素,但要把主体、服装、动作、场景和风格中真正变化的部分说清楚。触发词应短、稳定,并尽量避免与常见词冲突。
参数怎么理解
Rank 与 Alpha
Rank 决定 LoRA 的表达容量。更高并不必然更好:容量太小可能学不住,太大则增加文件体积和过拟合风险。Alpha 用于缩放更新强度,通常结合 Rank 一起观察。
学习率
UNet 和文本编码器可以使用不同学习率。人物或物件训练时,文本编码器过强容易破坏原有词义;不确定时先采用保守配置,再看对照图调整。
Steps、Epoch 与重复次数
这三个参数共同决定每张图片被看到多少次。不要只复制别人的总步数,应根据数据量计算,并在训练过程中定期采样。出现以下现象时可能已经过拟合:
- 不论提示词如何变化,构图都很接近训练图;
- 触发词污染其他概念;
- 皮肤、背景或服装出现固定纹理;
- 较高权重下画面迅速崩坏。
优化器与精度
Apple 芯片主要使用 MPS,生态兼容性不如 CUDA 完整。选择优化器、混合精度和缓存策略时,优先以“能够稳定完成一轮训练”为基线,再逐项优化速度。
Mac 上常见问题
- 安装失败:确认 Python、PyTorch 和训练脚本支持的版本组合;
- MPS 算子缺失:尝试关闭相关优化,必要时回退到 CPU;
- 内存不足:降低 batch size、分辨率或 Rank,启用 latent cache;
- 训练突然变慢:观察是否发生内存交换;
- 输出全黑或异常:先用最小数据集和默认配置排除环境问题。
[!TIP] 保存一份完整的训练配置、依赖锁定和样例提示词。只有输入条件可复现,参数对比才有意义。
验收而不是“看起来像”
至少用三组提示词检查:
- 接近训练分布,确认概念学到了;
- 明显不同的场景和构图,检查泛化;
- 不使用触发词,检查底模是否被污染。
同时比较多个 LoRA 权重。真正可用的模型,不只是能复刻素材,而是在不同提示词中仍保留目标特征,并允许底模继续发挥。