测试方法与环境说明
本次测试目标很明确:验证 Stable Diffusion 本地部署是否能稳定跑通、LoRA 微调是否能在普通显卡上完成、以及不同配置下的吞吐和显存边界。所有结论都来自可复现命令与重复测量,而不是主观感受。
测试环境披露:Windows 11 23H2 / Ubuntu 22.04 双环境;Python 3.10;PyTorch 2.2;CUDA 12.1;显卡分别为 RTX 3060 12GB、RTX 4070 12GB、A5000 24GB。每组推理测试跑 30 次,记录平均值、P95 和标准差;LoRA 训练记录每 100 step 的耗时与峰值显存。
| 项目 | 3060 12GB | 4070 12GB | A5000 24GB |
|---|---|---|---|
| txt2img 512×512, 20 steps | 8.9 s / 张 | 5.6 s / 张 | 4.8 s / 张 |
| 峰值显存 | 9.7 GB | 8.4 GB | 7.9 GB |
| 30 次均值波动 | ±0.31 s | ±0.19 s | ±0.16 s |
如果你正在搜 Stable Diffusion 本地部署教程、Stable Diffusion 下载、Stable Diffusion 怎么用,先记住一个现实:12GB 显存已经够入门,但要把分辨率、batch、LoRA rank 控制在合理区间,否则最常见的问题不是“生成慢”,而是直接 OOM。
本地部署:最稳的免费路径与关键参数
我优先测试了两条免费/官方路线:A1111 WebUI 和 ComfyUI。结论是:A1111 更适合第一次跑通,ComfyUI 更适合后续工作流固化。两者都能完成 Stable Diffusion 本地部署,但路径不同。
- 安装 Python 3.10 与 Git。
- 拉取 WebUI 或 ComfyUI 源码后,先确认显卡驱动和 CUDA 版本匹配。
- 首次启动时加上低显存参数:
--xformers --medvram,12GB 卡优先用--medvram。 - 先用 512×512、batch=1、20 steps 跑通,再逐步升到 768×768。
我在 3060 12GB 上实测,512×512、Euler a、20 steps、batch 1 的首张图耗时 9.4 秒,缓存预热后下降到 8.9 秒;把分辨率升到 768×768 后,耗时涨到 14.8 秒,显存逼近 11.3GB。这个拐点很清晰:12GB 卡不适合一开始就堆高分辨率。
| 参数 | 结果 | 建议 |
|---|---|---|
| 分辨率 | 512→768 时显存 +1.6GB | 先 512 跑通 |
| 采样步数 | 20→30 步,时间 +38% | 先 20 步验证管线 |
| 批量大小 | batch 2 直接触发 OOM(3060) | 默认 batch 1 |
LoRA 微调:参数怎么设,什么情况下会翻车
如果你在找 Stable Diffusion 微调教程 或 LoRA 训练参数,最关键的不是“训练轮数越多越好”,而是数据集质量、rank、学习率和重复次数的平衡。我用 60 张人物风格图做了三组 LoRA 测试,训练目标是保留面部一致性,同时避免过拟合。
| 配置 | rank | LR | 步数 | 结果 |
|---|---|---|---|---|
| 保守型 | 8 | 1e-4 | 1200 | 风格稳定,但相似度中等 |
| 均衡型 | 16 | 8e-5 | 1800 | 人脸一致性最好 |
| 激进型 | 32 | 1e-4 | 2400 | 明显过拟合,背景复用率高 |
在 A5000 24GB 上,均衡型配置每 100 step 约 92 秒,峰值显存 14.1GB;在 4070 12GB 上,开启 gradient checkpointing 后可训练,但速度下降到每 100 step 128 秒,且更依赖 --mixed_precision fp16。经验上,rank 16 + LR 8e-5 是大多数入门数据集的安全起点。
排错时优先看三项:一是训练集是否有重复图超过 20%;二是 caption 是否过短导致语义塌缩;三是 sample 图是否在 500 step 后就开始“长得像同一张脸”。如果出现这种现象,先减 LR 20%,再把 rank 从 32 降到 16。
如何验证已经跑通:三步检查
1)推理验证:固定 prompt、seed、steps,连续生成 5 张图,检查风格是否一致,耗时波动是否小于 5%。
2)显存验证:运行时观察峰值显存是否稳定低于卡容量的 90%;12GB 卡建议控制在 10.5GB 以下。
3)微调验证:用 3 组未参与训练的新 prompt 做对照,如果 LoRA 输出在人物特征、色调或构图上明显偏离原图过多,说明过拟合或数据标注有问题。
结论很直接:如果你只想先把 Stable Diffusion 本地部署 跑起来,A1111 配合 512×512 是最省事的;如果你要做可复用的工作流和后续 Stable Diffusion 怎么用 的标准化测试,ComfyUI 更适合。需要更省时间的方案,也可以把官方部署和社区方案对照后,再考虑 roxi.cc 这类一体化入口作为备选,但前提仍然是先把自己的显卡、数据集和参数边界测清楚。