Stable Diffusion 微调与训练实战技巧合集
这篇文章是我做 Lora 微调和 Dreambooth 训练的完整记录,我踩了不少坑,但也总结了一套能跑得稳的方案。
1 1. 为什么我开始训练自己的模型?
最初我也只是用别人训练好的模型,但总觉得不够“我味儿”。比如想画点风格化的人设或者动漫头像,总感觉现成模型风格太重、控制力又差。于是就开始折腾微调,一步步从最简单的 Lora 入门,慢慢搞懂了 Dreambooth 的原理和训练流程。
后来才知道,其实训练一个合适的 Lora 并不难,难的是:图片怎么选、训练参数怎么调、结果怎么看、怎么反复迭代。
2 2. 环境准备:要跑得动,就别用烂显卡
首先,Stable Diffusion 的微调基本对显卡有点要求。最起码 8G 显存(如 3060)起步,想跑得爽最好是 24G 这种。
我推荐的环境:
- Python 3.10
- torch==2.1 + xformers(别问为什么,装错就容易报错)
- 自动 1111 版本的 webui(现在主流的 SD-WebUI 都集成了微调插件)
环境配置这块我之前写过部署流程,你也可以参考这篇:stable-diffusion快速入门到精通
3 3. 选图比训练还重要
很多人以为训练的核心在代码,其实不然,图选不好,训练再多轮都是垃圾输出。
我的几个图选建议:
- 同一主体的图数量:10~30 张比较合适
- 图片尽量高清,最小512x512,构图干净
- 保持统一风格,比如都是全身/半身/正脸,别混着来
我用的都是从站酷、Pixiv 上找素材,Photoshop 抠图统一背景再喂进去。
4 4. Lora 微调参数经验总结
下面是我试出来一套比较通用的配置(使用 Kohya GUI):
--resolution 512 \
--network_module=networks.lora \
--train_batch_size=2 \
--learning_rate=1e-4 \
--max_train_steps=4000 \
--lr_scheduler=cosine_with_restarts \
--caption_extension=".txt"
一些细节建议:
- 学习率别太高,新手建议
1e-4
,别贪快。 - batch_size 看你显卡吃不吃得下,别用 CPU 启动,那是地狱。
- scheduler 一定要试 cosine,远比默认 linear 收敛好。
{
"learning_rate": 5e-5,
"unet_lr": 5e-5,
"text_encoder_lr": 5e-6,
"train_batch_size": 2,
"gradient_accumulation_steps": 4,
"max_train_steps": 3000,
"rank": 8,
"alpha": 16,
"resolution": 512
}
5 5. Dreambooth 更适合高质量图,但更吃资源
Dreambooth 虽然训练效果更稳定,但真的很吃资源。我用一台租的 A100 云机器试了一下,128G 显存跑 8 张图训练要 20 分钟一轮,还是 batch=1……
所以如果你只是想训练个私人头像/角色推荐优先搞 Lora,Dreambooth 留给品牌建模或者商业项目。
6 6. 训练出来怎么看效果?
这里我强烈建议你配合 ComfyUI 使用,可以直观地拖 Lora/Embedding 调权重看看效果变化。如果你对 ComfyUI 不熟,可以看看这篇:stable-diffusion制作记录 有不少配置流程我记录在里面。
另外别忘了导出 preview.png
+ config.json
文件,这样上传 Civitai 才能正确显示参数。
7 7. 常见坑总结(真的是血泪)
- ❌ 图混太多风格:出来的人像像混了五种动漫风。
- ❌ 显存不够硬撑:直接爆显存,不如换更低分辨率或减 batch。
- ❌ 忘记加 trigger word:出来的结果跟训练的完全没关系。
- ❌ 训练步数太少:2000 步以内很难出效果,除非你图特别好。
8 8. 下一步计划:模型组合与多风格训练
下一步我打算搞多风格合训,比如让一个角色既能画日系也能切换成像素风。也想试下训练一些风格 Lora 然后用 Lora Stack
做融合,这块内容之后有机会会单独写。