十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Stable Diffusion 三采样器实测:20步够不够,DDIM和PLMS差在哪

Stable Diffusion 三采样器实测:20步够不够,DDIM和PLMS差在哪 Stable Diffusion 三采样器实测20步够不够DDIM和PLMS差在哪【免费下载链接】stable-diffusionA latent text-to-image diffusion model项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion用 stable-diffusion 做文生图入口的第一个抉择就是选哪个采样方法。文档只给用法不给对比三个采样器在步数、画质、支持面上的答案各不相同。仓库里没有模型权重耗时数据需要自行上卡复测下面的结论基于 assets/ 内的官方样本图和代码路径逐行核对条件统一SD v1configs/stable-diffusion/v1-inference.yaml/ 512×512 / scale 7.5 / seed 42。三采样器速览入口与默认方式方案一句话定位代码入口默认启用方式DDIM基线离散时间步去噪唯一支持随机采样etaldm/models/diffusion/ddim.py默认不加参数PLMS四阶多步外推复用历史噪声预测低步数更稳ldm/models/diffusion/plms.py--plmsDPM-Solver二阶多步 ODE 求解器少步数即可收敛ldm/models/diffusion/dpm_solver/sampler.py--dpm_solver为什么是这三个scripts/txt2img.py L251-256 的分支里只有它们。if opt.dpm_solver: sampler DPMSolverSampler(model) elif opt.plms: sampler PLMSSampler(model) else: sampler DDIMSampler(model)ldm/models/diffusion/ddpm.py 里的 DDPM 是训练侧 1000 步采样器不进推理入口直接排除。实测过程三个采样器各自长什么样DDIM默认路径没有意外50 步、eta0脚本默认下跑出的官方样本如下五行输出风格统一、纹理粒度正常颜色偏中性。三个采样器里只有 DDIM 认--ddim_eta。eta0 时同 seed 结果完全确定这对对比实验是刚需。PLMS 低步数质量与 eta 地雷同样 50 步的样本整体更亮、对比更强远山细节略糊。它每步也只调一次模型速度收益不在单步更快而在低步数下四阶 Adams-Bashforth 外推见p_sample_plmsplms.py L161-162 滚动保留最近 3 次 eps让画质掉得更慢。DPM-Solver 20步质量验证官方样本里 DPM-Solver 的输出在低步数下结构完整度明显更好光影过渡更干净。一个反直觉的点sampler.py L80 写死了methodmultistep, order2, skip_typetime_uniform也就是说推理入口走的是均匀网格二阶求解dpm_solver.py 里的自适应步长函数dpm_solver_adaptive并没有被接进来。别按自适应预期它。踩坑记录三个反直觉行为第一条最伤img2img 用不了 PLMS。scripts/img2img.py L205-206 里--plms直接抛NotImplementedError且脚本里根本没有--dpm_solver参数。官方草图转成片的样本只能靠 DDIM 跑出来第二PLMS 与 eta0 不兼容plms.py L25-26 直接raise ValueError(ddim_eta must be 0 for PLMS)想开随机采样只能回 DDIM。第三DPM-Solver 的步数参数仍然叫--ddim_stepstxt2img.py L303 透传S改步数时别找错参数名。量化对比差距在支持矩阵不在画质指标维度DDIMPLMSDPM-Solver备注等效质量步数5050~20基于官方样本描述仓库未提供 benchmark每步模型前向次数111三家单步 NFE 相同随机采样eta0支持不支持ValueError不支持eta 参数被忽略plms.py L25-26img2img 支持支持不支持NotImplementedError无该参数img2img.py L205-209求解阶数一阶四阶 Adams-Bashforth二阶多步见各文件 p_sample / sample最大差异在最后两行画质打平的前提下工程支持不齐——一旦需求切到 img2img选项直接只剩 DDIM。这张官方图是四个模型版本在不同 cfg 下的 FID-CLIP 曲线不是采样器对比但有两个决策参考点默认 scale 7.5 只落在曲线中段cfg 拉高不必然更好v1.1 在低 cfg 下 FID 明显占优。选型结论场景对答案如果你的场景是 txt2img 批产且在意延迟 → 选 DPM-Solver二阶多步在 20 步左右达到 50 步水平基于官方样本描述步数少直接省前向次数。如果你的场景是可复现的对比实验 → 选 DDIM 且 eta0同 seed 同步数下结果完全确定。如果你的场景是 img2img 或草图转画 → 没有选择只有 DDIM因为 img2img.py 里 PLMS 分支尚未实现。如果你的场景是 10-20 步低步数探质量 → 选 PLMS四阶外推在低步数下比一阶更稳。没有明确场景时的默认推荐DDIM它就是 txt2img.py 不加参数时的路径下游支持面也最全。延伸入口想改哪里改 DPM-Solver 的阶数与时间网格策略ldm/models/diffusion/dpm_solver/sampler.py L80 的dpm_solver.sample(...)调用。接入新采样器修改 scripts/txt2img.py L251-256 的 if/elif 链新类实现与DDIMSampler.sample同签名的接口即可。已知局限仓库没有统一的采样器抽象三个类各自独立且 img2img 脚本比 txt2img 落后一代——没有 PLMS 也没有 DPM-Solver。【免费下载链接】stable-diffusionA latent text-to-image diffusion model项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表