使用 Diffusers 的 Dreambooth Stable Diffusion 微调指南
TL;DR
Hugging Face 的 Dreambooth 指南表明,Stable Diffusion 微调在使用低学习率、足够的训练步数(人脸 800‑1200 步,物体 400‑600 步)、对人像进行先验保持(prior‑preservation),以及可选的文本编码器微调时效果最佳;这些设置可以防止过拟合并提升图像保真度。
推荐的超参数
- 学习率:使用低学习率(例如 1e‑6 到 2e‑6)。较高的学习率会导致快速过拟合。
- 训练步数:增加步数直至质量稳定。物体在约 400‑600 步收敛;人脸需要 800‑1200 步。
- 批大小:每块 GPU 2(在两块 40 GB A100 上 batch‑size 4)对物体效果良好;人脸使用 batch‑size 2。
- 先验保持:对人脸至关重要;生成或提供类级别图像,以防模型仅记住少量训练照片而崩塌。
- 调度器选择:推理时 DDIM 调度器优于 PNDM 和 LMSDiscrete,尤其当模型出现过拟合迹象时。运行约 100 步推理可进一步清除噪声斑块。
- 文本编码器:同时微调 CLIP 文本编码器和 UNet 能显著提升真实感和提示可解释性,但需要 ≥24 GB GPU 显存。8‑bit Adam、
fp16或梯度累积可将显存需求降至 16 GB。 - EMA:指数移动平均(EMA)对结果影响不大。
- Token 选择:特殊 token
sks并非必需,任意自然语言 token 描述目标即可。
学习率的影响
在四个数据集(猫玩具、猪头、Mr. Potato Head 和人脸)上,低学习率始终产生更高质量的生成。高学习率(5e‑6)会产生噪声伪影并快速过拟合,而低学习率(2e‑6)则保留细节并使模型能够超出训练图像进行泛化。
实验细节
所有实验均使用 Diffusers 仓库中的 train_dreambooth.py 脚本、AdamW 优化器以及两块 40 GB A100 GPU。除学习率、步数和先验保持外,种子和所有超参数保持不变。
物体微调(猫玩具、猪头、Mr. Potato Head)
- 批大小:4(每块 GPU 2)
- 步数:400
- 学习率:5e‑6(高) vs. 2e‑6(低)
- 先验保持:未使用
人脸微调(Kramer 角色)
- 批大小:2(每块 GPU 1)
- 步数:800 – 1200
- 学习率:5e‑6(高) vs. 2e‑6(低)
- 先验保持:分别测试了有无先验保持
通过 8‑bit Adam、fp16 训练或梯度累积等显存节省技巧,这些运行可在 16 GB GPU(如 Google Colab、Kaggle)上完成。
人脸的先验保持
先验保持在训练时将目标主体的图像与类级别图像(例如其他人)混合。脚本可以使用 Stable Diffusion 自动生成类图像。
- 使用先验保持(1200 步,LR = 2e‑6):图像保留目标身份,同时保持背景多样性。
- 不使用先验保持(相同步数和 LR):结果出现更多噪点斑块,且过拟合更严重。
推理时的调度器效果
| 调度器 | 观察 |
|---|---|
| PNDM | 当训练平衡时能生成可接受的图像,但在过拟合模型上表现不佳。 |
| LMSDiscrete | 在过拟合情况下产生严重伪影,质量低下。 |
| DDIM | 始终产生更干净的输出;额外的推理步数(约 100 步)可消除残余噪声。 |
相同的模式在不同主体(人脸、物体)上均有体现,差距在人脸上最为明显。
微调文本编码器
原始 Dreambooth 论文冻结 CLIP 文本编码器,但 Hugging Face 的实验表明解冻它能显著提升效果,尤其是对人像主体。
- 冻结编码器:生成的图像尚可,但常保留过拟合伪影。
- 微调编码器:产生更真实的人脸、更好地遵循提示,且过拟合程度降低。
微调编码器会增加显存开销;建议使用至少 24 GB 显存的 GPU,使用混合精度和优化器技巧时 16 GB 也能勉强运行。
将 Textual Inversion 与 Dreambooth 结合
一次混合实验先进行 2000 步 Textual Inversion,再进行 500 步 Dreambooth(LR = 1e‑6)。得到的图像优于单纯 Dreambooth,但仍不及完整的文本编码器微调。该方法在 16 GB GPU 上仍会出现对风格细节的过拟合,但可行。
实践要点
- 从低学习率(1e‑6 – 2e‑6)开始,并逐步增加步数。 这样可以在欠拟合和过拟合之间取得平衡。
- 对任何人像使用先验保持。 它能缓解过拟合并提升真实感。
- 最终采样时首选 DDIM 调度器并使用约 100 步推理。 可在不额外训练的情况下清除噪声。
- 条件允许时微调文本编码器。 质量提升值得额外的显存成本。
- 利用显存节省技术(8‑bit Adam、
fp16、梯度累积)在消费级 GPU 上运行。
伦理提醒
Dreambooth 绝不可用于恶意目的、生成有害内容或在未获同意的情况下冒充个人。所有微调模型仍受 CreativeML Open RAIL‑M 许可证约束,该许可证规范了 Stable Diffusion 的分发。