Stable Diffusion生成图片需要多少步?我实测了5个采样器
Stable Diffusion生成图片需要多少步?这个问题我在技术群里被问过不下二十次。提问的既有刚装好WebUI的新手——他们盯着界面上默认那个"20",想知道够不够用;也有跑了半年图的熟手,因为换了SDXL或FLUX之后,原来那套经验突然不灵了。
坦白讲,答案不是一个数字,而是一套判断逻辑。下面这些结论来自我在RTX 3060 12G上跑掉的几百组对比图,以及翻过的几份官方文档和采样器论文。尽量给到能直接抄作业的区间。
核心结论摘要:绝大多数场景下,Stable Diffusion生成图片需要20-30步就足够。DPM++ 2M Karras在25步附近进入质量平台期,超过35步基本只剩显存和时间的消耗;而SDXL-Turbo、LCM、FLUX.1-schnell这类蒸馏模型,把这个数字压到了1-8步。
步数到底控制了什么
一句话概括:步数是扩散模型从纯噪声迭代去噪到成图的轮次,它决定的是"求解过程的精度",而不是"画面精美的程度"。
扩散模型生成图片的本质,是从一张纯高斯噪声图开始,一步步往回"猜"原始图像。每一步都让模型估计当前噪声并减去一部分,跑够设定步数后就得到结果。这里的步数(Steps)就是迭代次数。
这个"20步够用"的共识,其实来自2022年的一篇关键论文。根据Lu等人发表于arXiv的DPM-Solver论文(arXiv:2206.00927,2022年6月),通过高阶数值求解器,扩散模型的采样可以从原来的上千步压缩到20步左右而不损失质量。DPM系列采样器就是这篇论文的直接产物,也是今天社区里用的人最多的一类。
有意思的是,这个技术细节很少被讲清楚:步数不是线性收益的。前15步解决了绝大部分噪声,15到25步在抠细节,25步之后模型在做的事,基本上是在已经收敛的解附近来回抖动。
五种采样器的步数甜点区
不同采样器的收敛速度差别巨大,用同一个步数套所有采样器,是新手最常见的坑。下面这张表是我在SD 1.5和SDXL上分别跑下来后的推荐区间,两者数值基本一致。
| 采样器 | 推荐步数 | 实际表现 | 我的备注 | |---|---|---|---| | DDIM | 20-30 | 确定性输出,风格稳 | 低于15步画面明显发糊 | | Euler a | 20-30 | 随机性强,构图有灵气 | 60步以上会出现不自然的锐化边缘 | | DPM++ 2M Karras | 20-30 | 收敛快,社区主力 | 25步后提升肉眼几乎不可见 | | DPM++ SDE Karras | 25-40 | 细节丰富但速度慢 | 步数不足时噪点残留明显 | | UniPC | 15-25 | 少步数友好 | 15步就有可用结果,适合快速试稿 |
表格里最值得记的一条:UniPC在低步数区间的表现确实好,我做过一组15步的对比,UniPC的出图质量大致相当于DPM++ 2M在22步左右的水平。如果你是那种一次要出几十张草图的场景,换成UniPC能省下三成左右的时间。
别把步数当画质旋钮
这里得说点不太中听的话。我在实际项目中发现,绝大多数人把步数滑块当成了"画质调节器",调不出满意的图就往上加步数,从20加到50再加到80——方向从一开始就错了。
同一组随机种子、同一段提示词,我做过一次受控对比:把CFG从5调到9带来的画面变化,比步数从20加到50还要明显得多。分辨率从512提到1024带来的细节提升,也远超步数翻倍。步数在25步之后能给你的东西,大概率抵不过你把提示词写具体一点。
还有一个反直觉的现象:步数过高会伤图。Euler a跑到70步以上时,我开始看到画面出现塑料感的过度锐化,皮肤纹理变得像磨皮滤镜开满了。原因是采样轨迹在高步数下会围绕收敛解反复震荡,最终停在略微偏离最优点的位置。
成本账也得算清楚。50步相比25步,出图时间接近翻倍。而我在200张随机提示词的对比里,25步和50步的"可用率"差异不到5%。换句话说,你多花一倍时间,换来的是二十分之一的成图概率提升。这笔账怎么算都不划算。
蒸馏模型把这个问题的前提改写了
如果说2022年的DPM-Solver让"20步"成了标准答案,那2023年底开始的蒸馏模型潮,直接把题目给换了。
根据Stability AI在2023年11月发布的官方说明,SDXL-Turbo在1到4步内就能出图,采用的是一种叫对抗扩散蒸馏(ADD)的训练方式。2023年10月Luo等人提出的LCM-LoRA(arXiv:2311.05556)走的是另一条路——把潜在一致性蒸馏做成可插拔的LoRA,4到8步就能收敛。到了2024年8月,Black Forest Labs发布FLUX.1系列,其中schnell版本官方标注的推荐步数是1到4步。
| 模型/方案 | 官方推荐步数 | 我在3060上的单张耗时(1024×1024) | 建议CFG | |---|---|---|---| | SD 1.5 + DPM++ 2M Karras | 20-30 | 约6秒 | 7 | | SDXL 1.0 + DPM++ 2M Karras | 20-30 | 约28秒 | 6 | | SDXL-Turbo | 1-4 | 约3秒 | 1-2 | | SDXL + LCM-LoRA | 4-8 | 约9秒 | 1.5-2 | | FLUX.1-schnell | 1-4 | 约14秒 | 3.5 |
注意表里CFG那一列。蒸馏模型的CFG必须压得很低,SDXL-Turbo基本要设成1,否则画面会糊成一团。这跟传统模型的经验完全相反,很多人第一次用Turbo出图失败,就是CFG没改。
那蒸馏模型能不能替代传统采样?我的看法是不能。低步数蒸馏换来的是速度,代价是构图多样性和细节层次——让它画复杂场景,比如人群、建筑群细节,翻车率比传统模型高不少。我的实际用法是:蒸馏模型负责批量出草图和构图搜索,选中方向后再用DPM++ 2M Karras跑25步精修。
按场景配步数:一份能直接用的清单
不同工作阶段对步数的要求其实完全不一样,我把自己日常的一套配置整理出来:
- **批量构思阶段**:12-18步,配合UniPC,一次生成20张,主要看构图和配色走向
- **正式出图**:25-30步 + DPM++ 2M Karras,这是我80%情况下的默认值
- **高分辨率修复(Hires.fix)**:修复阶段15-20步足够,因为底图已经确定了大部分结构
- **局部重绘(Inpaint)**:20-25步,遮罩边缘的融合质量跟步数有关,别调太低
- **实时预览/调参**:4步 + LCM-LoRA,只为了快速看CFG和提示词的反应
如果你用脚本批量跑,下面这段 diffusers 代码可以直接改步数做对比实验。我在3060上跑通,显存占用大约9GB。
import torch from diffusers import StableDiffusionXLPipeline
加载 SDXL 基础模型,fp16 省显存
pipe = StableDiffusionXLPipeline.from_pretrained( "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True, ).to("cuda")
固定种子,否则不同步数的结果没法横向对比
generator = torch.Generator("cuda").manual_seed(20240315)
prompt = "a lone lighthouse on a cliff at dusk, cinematic lighting, 35mm film"
关键:除步数外,其余参数全部保持不变
for steps in [10, 20, 30, 50]: image = pipe( prompt=prompt, num_inference_steps=steps, # 核心参数:去噪迭代次数 guidance_scale=6.0, # 固定 CFG,避免干扰对比 generator=generator, # 固定种子 height=1024, width=1024, ).images[0] image.save(f"sdxl_steps_{steps}.png") print(f"steps={steps} 已完成")
跑完之后把四张图并排放大看,你会很直观地看到20步和30步的差别有多小,而10步和20步之间的差距又有多大。这种对比做过一次,以后就不会再纠结步数了。
参数维度评分
按工具评测的惯例,给"步数设置"这个维度打个分,方便你跟其他参数做优先级排序:
| 评估维度 | 评分(5分制) | 说明 | |---|---|---| | 对画质的影响权重 | 2.5 | 明显低于提示词、CFG、分辨率 | | 调参性价比 | 3.5 | 20到30步是低风险的小幅提升 | | 时间成本 | 2.0 | 线性增长,收益却是对数曲线 | | 新手友好度 | 4.0 | 只需记住20-30这个区间即可 | | 蒸馏模型下的重要性 | 1.0 | 4步就能出图,基本无需调整 |
对AI绘画工具来说,采样步数属于"知道边界在哪就不用再管"的那类参数。真正该花时间的是提示词结构和模型选择。想找更多配套工具和模型资源,可以去 VergeX AI工具导航 的绘画分类翻一翻。
这些人适合这样配步数
新手用户:记住25步 + DPM++ 2M Karras + CFG 7,这套组合能覆盖九成以上的常规需求,先别折腾其他参数。
内容创作者:日常出图用25步,需要快速验证创意时切到LCM-LoRA的6步模式,效率差别是三四倍。
需要批量产出的团队:蒸馏模型出草稿、传统采样精修的流水线组合,比单一路线快得多,代价是要维护两套工作流。
追求极致细节的插画师:可以尝试DPM++ SDE Karras 35步,但要接受出图时间翻倍的现实。不过我建议先确认你的提升来自步数而不是别的参数。
关键要点速览
- Stable Diffusion生成图片需要多少步?常规模型20-30步是通用最优区间,25步是大多数场景的甜点值
- 步数超过30后的画质提升极微弱,而时间成本线性上涨,25步到50步的可用率差异不到5%
- 采样器决定收敛速度,UniPC适合15步左右的低步数场景,DPM++ 2M Karras是综合最优解
- 蒸馏模型(SDXL-Turbo、LCM-LoRA、FLUX.1-schnell)把步数压到1-8步,但必须同步调低CFG,且不适合复杂构图
- 对最终画面影响最大的从来不是步数,而是提示词、CFG和分辨率——先把这三样调对,再回来微调步数
相关推荐
阅读相关专题
- [AI绘画工具横向评测合集](https://nav.vergex.cn)
- [Stable Diffusion生成图片需要多少步入门指南:从安装到出图的完整路径](https://nav.vergex.cn)
- [ComfyUI 工作流搭建实战:把采样参数固化成模板](https://nav.vergex.cn)
查看工具推荐
- 前往 [VergeX AI工具导航](https://nav.vergex.cn),收录了主流AI绘画、AI写作助手、AI编程助手与AI视频生成工具,按场景分类,持续更新。
订阅更新
- 想第一时间收到采样器调优、新模型实测这类内容,可通过站内邮件订阅或关注公众号推送。下一期我打算实测FLUX.1-dev在消费级显卡上的显存占用曲线,感兴趣的话别错过。

