目录

Stable Diffusion 微调与训练实战技巧合集

这篇文章是我做 Lora 微调和 Dreambooth 训练的完整记录,我踩了不少坑,但也总结了一套能跑得稳的方案。

最初我也只是用别人训练好的模型,但总觉得不够“我味儿”。比如想画点风格化的人设或者动漫头像,总感觉现成模型风格太重、控制力又差。于是就开始折腾微调,一步步从最简单的 Lora 入门,慢慢搞懂了 Dreambooth 的原理和训练流程。

后来才知道,其实训练一个合适的 Lora 并不难,难的是:图片怎么选、训练参数怎么调、结果怎么看、怎么反复迭代

首先,Stable Diffusion 的微调基本对显卡有点要求。最起码 8G 显存(如 3060)起步,想跑得爽最好是 24G 这种。

我推荐的环境:

  • Python 3.10
  • torch==2.1 + xformers(别问为什么,装错就容易报错)
  • 自动 1111 版本的 webui(现在主流的 SD-WebUI 都集成了微调插件)

环境配置这块我之前写过部署流程,你也可以参考这篇:stable-diffusion快速入门到精通

很多人以为训练的核心在代码,其实不然,图选不好,训练再多轮都是垃圾输出

我的几个图选建议:

  • 同一主体的图数量:10~30 张比较合适
  • 图片尽量高清,最小512x512,构图干净
  • 保持统一风格,比如都是全身/半身/正脸,别混着来

我用的都是从站酷、Pixiv 上找素材,Photoshop 抠图统一背景再喂进去。

下面是我试出来一套比较通用的配置(使用 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 收敛好。

image-20250703143358827

{
  "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
}

Dreambooth 虽然训练效果更稳定,但真的很吃资源。我用一台租的 A100 云机器试了一下,128G 显存跑 8 张图训练要 20 分钟一轮,还是 batch=1……

所以如果你只是想训练个私人头像/角色推荐优先搞 Lora,Dreambooth 留给品牌建模或者商业项目。


这里我强烈建议你配合 ComfyUI 使用,可以直观地拖 Lora/Embedding 调权重看看效果变化。如果你对 ComfyUI 不熟,可以看看这篇:stable-diffusion制作记录 有不少配置流程我记录在里面。

另外别忘了导出 preview.png + config.json 文件,这样上传 Civitai 才能正确显示参数。


  • 图混太多风格:出来的人像像混了五种动漫风。
  • 显存不够硬撑:直接爆显存,不如换更低分辨率或减 batch。
  • 忘记加 trigger word:出来的结果跟训练的完全没关系。
  • 训练步数太少:2000 步以内很难出效果,除非你图特别好。

下一步我打算搞多风格合训,比如让一个角色既能画日系也能切换成像素风。也想试下训练一些风格 Lora 然后用 Lora Stack 做融合,这块内容之后有机会会单独写。

相关内容