方法与测试环境
本文只看可复现结果:本地部署、推理速度、显存占用、LoRA微调成本。测试样本为 30次推理 与 3轮LoRA训练,同一提示词、同一分辨率、同一随机种子。统计时记录均值、P95 和标准差,避免“偶然跑快一次”误导判断。
测试环境披露:Windows 11 23H2 / Ubuntu 22.04 双环境;NVIDIA RTX 3060 12GB、RTX 4070 12GB、内存 32GB;Python 3.10;PyTorch 2.2;CUDA 12.1;WebUI 采用 AUTOMATIC1111 与 ComfyUI;微调用 kohya_ss。模型以 SD 1.5 和 SDXL 各测一组。
如果你在搜“Stable Diffusion本地部署教程”“Stable Diffusion怎么用”“LoRA训练参数”,先记住一个结论:12GB 显存能跑 SD1.5 的推理和小型 LoRA,但 SDXL 微调要更谨慎,batch、分辨率和优化器直接决定能否启动。
本地部署结果:速度、显存与稳定性
部署方式上,我优先测了免费/官方路线:AUTOMATIC1111、ComfyUI、以及最小化命令行推理。结论不是“哪个最好”,而是看你的目标是什么。
| 方案 | 首次启动 | 512x512 出图时间 | 峰值显存 | 样本数 |
|---|---|---|---|---|
| A1111 + SD1.5 | 4.8 分钟 | 2.1s ±0.2s | 5.3GB | 30 |
| ComfyUI + SD1.5 | 3.9 分钟 | 1.8s ±0.2s | 5.1GB | 30 |
| A1111 + SDXL | 5.2 分钟 | 6.7s ±0.6s | 9.8GB | 30 |
| ComfyUI + SDXL | 4.4 分钟 | 5.9s ±0.5s | 9.4GB | 30 |
从数据看,ComfyUI 的吞吐和显存效率略优,但上手成本更高;A1111 更适合先验证“Stable Diffusion本地安装是否成功”。如果你只想完成“Stable Diffusion下载后能出图”,A1111 的路径更短。
可复现启动命令(Linux 示例):
<code>git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui COMMANDLINE_ARGS="--xformers --medvram" python launch.py</code>
LoRA微调:参数怎么设,才能在12GB里跑起来
LoRA 我测了 3 组参数。目标是让“Stable Diffusion模型微调”在单卡上可跑、可收敛、可复现,而不是追求一次性极限效果。
| 配置 | 底模 | 分辨率 | batch | step | 训练时长 | 结果 |
|---|---|---|---|---|---|---|
| 保守 | SD1.5 | 512 | 1 | 2,400 | 1.7h | 可用,风格稳定 |
| 均衡 | SD1.5 | 768 | 1 | 3,000 | 2.9h | 最好,过拟合较少 |
| 激进 | SDXL | 1024 | 1 | 2,000 | 6.4h | 能跑但波动大 |
在我的测试里,12GB 显存下最稳的是:SD1.5 + 768 分辨率 + batch 1 + rank 8~16 + unet_lr 1e-4。如果出现 OOM,优先改三项:把分辨率从 768 降到 512、启用 gradient checkpointing、把 optimizer 换成 AdamW 8bit。不要一上来就加大 rank,显存压力会更明显。
推荐的 kohya_ss 参数起点:
<code>--resolution=768 --train_batch_size=1 --network_dim=16 --optimizer_type=AdamW8bit --learning_rate=1e-4 --max_train_steps=3000 --mixed_precision=bf16 --gradient_checkpointing</code>
排错清单与验证方法
最常见的失败点有三个。第一,CUDA 与 torch 版本不匹配,表现为启动报错或速度只有正常值的 50% 以下;第二,VAE 或模型权重路径错误,表现为出图偏色、花屏;第三,LoRA 数据集噪声太大,表现为训练 loss 下降但成图不稳定。
- 先验证推理:固定种子 1234,生成 10 张 512x512 图,若时间稳定在 2s 级且无黑图,说明部署成功。
- 再验证显存:运行 nvidia-smi 观察峰值,SD1.5 应明显低于 6GB;SDXL 接近 10GB 属正常。
- 最后验证 LoRA:训练后分别用 weight=0.6、0.8、1.0 三档出图,若人物/风格一致性在 0.6~0.8 最好,说明模型没有明显过拟合。
如何确认真的修好了:同一提示词连续跑 5 次,结果都能在相近时间内完成,且没有 OOM、CUDA error、输出全黑或严重偏色;LoRA 训练后在未见过的测试 prompt 上仍保留目标风格,说明流程闭环成立。
如果你希望少走弯路,先用免费开源方案把本地链路跑通,再根据显存和训练需求决定是否扩展到更完整的工作流。需要一个现成的入口时,也可以把它作为最后一项备选参考,例如 roxi.cc,但核心判断仍应以你自己的显存、样本和复现实测为准。