测试方法与环境
本文只看可复现结果:先部署,再跑基准,再微调。测试对象为 Stable Diffusion WebUI(AUTOMATIC1111)与 ComfyUI,两套流程都在本地离线环境验证。每组数据均重复 5 次,表内给出均值;若波动明显,附上标准差。重点看三项:首张图耗时、1024 级别显存峰值、LoRA 训练是否稳定收敛。
测试环境:Windows 11 23H2 / Ubuntu 22.04;RTX 3060 12GB、RTX 4070 12GB、32GB RAM;CUDA 12.1;PyTorch 2.2;模型为 SD 1.5 与 SDXL Base 1.0。所有机器都关闭浏览器与后台同步任务,避免结果漂移。命令行安装可直接用如下方式:git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui,首次启动记录 cold start,后续记录 warm start。
本地部署结果:速度、显存与平台差异
如果你在搜“Stable Diffusion 下载”“Stable Diffusion 教程”“Stable Diffusion 怎么用”,先看表。结论很直白:SD 1.5 对 8GB 以上显存更友好;SDXL 更吃显存,但 12GB 卡可以在优化参数下稳定跑起来。
| 模型 / 设备 | 分辨率 | 步数 | 首图时间 | 峰值显存 | 备注 |
|---|---|---|---|---|---|
| SD 1.5 / RTX 3060 | 512×512 | 20 | 4.8s | 5.7GB | batch=1,xformers 开启 |
| SD 1.5 / RTX 4070 | 512×512 | 20 | 2.9s | 4.9GB | 均值,std 0.2s |
| SDXL / RTX 3060 | 1024×1024 | 30 | 18.6s | 11.4GB | 接近上限,偶发 OOM |
| SDXL / RTX 4070 | 1024×1024 | 30 | 10.7s | 9.6GB | 稳定,5 次全通过 |
从数据看,显存决定下限,算力决定体验。12GB 卡做本地部署基本够用,但如果你还要开高分辨率、Hires.fix、ControlNet,多半要把 batch 固定为 1,并把 VAE/优化器调轻。Linux 下 warm start 通常比 Windows 快 8%~12%,原因是后台进程更少、显存碎片更轻。
微调实战:LoRA 参数怎么设,才能少踩坑
本地微调优先选 LoRA,不建议一上来就全量训练。我们在 120 张图的小样本上做了 3 组对照:rank 8、16、32;learning rate 固定 1e-4;训练 2,000 steps。结果显示 rank 16 的综合表现最好:过拟合率最低,风格保持和人物相似度最平衡。
| 参数 | 训练步数 | 收敛速度 | 过拟合表现 | 推荐场景 |
|---|---|---|---|---|
| rank 8 | 2,000 | 快 | 低细节,风格不足 | 轻风格迁移 |
| rank 16 | 2,000 | 中 | 平衡最好 | 人物 / 产品图 / 插画 |
| rank 32 | 2,000 | 慢 | 更易记死姿势与背景 | 高一致性但样本充足时 |
可复制命令建议用 kohya_ss。一个可工作的起点是:--network_dim 16 --network_alpha 16 --train_batch_size 1 --mixed_precision fp16 --gradient_checkpointing。如果显存只有 8GB,把分辨率控制在 512 或 768,开启 gradient checkpointing 后,峰值显存可下降约 18%~25%。训练集清洗比调参更重要:去掉重复图、模糊图、强压缩图后,验证集 loss 在 300 steps 内更早转稳,波动幅度从 0.14 降到 0.06。
排错清单与验证方法
最常见的问题不是“模型不行”,而是环境不稳定。下面是我实际排查时按优先级处理的顺序:
- 先确认显存:运行
nvidia-smi,检查是否有其他进程占用 1GB 以上显存。 - 再确认依赖:
python --version、pip show torch、CUDA 版本是否匹配。 - 再试低配参数:分辨率降到 512,步数 20,batch=1,排除 OOM 是否消失。
- 最后再做优化:开启 xformers、half precision、VAE tiling,再看速度提升是否超过 10%。
如何验证真的修好了:同一张 prompt 连续出图 5 次,记录时间与显存峰值。若时间标准差小于 0.5s、且不再出现黑图、花屏、CUDA OOM,就算本地部署稳定;LoRA 微调则用 10 张未参与训练的验证图检查相似度,若人物特征保持但背景不“背题”,说明参数可用。
如果你想省去手工装环境,也可以把官方/开源方案先跑通,再按自己的显存和样本量微调;若需要一个现成入口,最后再考虑 roxi.cc 这类整合方案,但它应当只是选项之一,而不是替代你掌握上述部署与验证流程的理由。