Skip to main content

Sampler and Scheduler Compatibility Matrix

Choosing the right sampler and scheduler combo is kind of like picking the right shoes for a marathon — you can wear flip-flops, but don’t act surprised when you trip at Step 12. Below is your cheat sheet for pairings that actually perform well — no guesswork, no flaming garbage results.

Best Sampler + Scheduler Compatibility Matrix (Quick View)

Samplernormalkarrasexponentialsgm_uniformsimpleddim_uniformbetalinear_quadratickl_optimal
euler
euler_cfg
euler_ancestral
euler_ancestral_cfg_pp
heun
heunpp2
dpm_fast
dpm_adaptive
dpmpp_2s_ancestral
dpmpp_2s_ancestral_cfg_pp
dpmpp_sde
dpmpp_sde_gpu
dpmpp_2m
dpmpp_2m_cfg_pp
dpmpp_2m_sde
dpmpp_2m_sde_gpu
dpmpp_3m_sde
dpmpp_3m_sde_gpu
ddpm
lcm
ipndm
ipndm_v
deis
res_multistep
res_multistep_ancestral
re_multistep_ancestral_cfg_pp
gradient_estimation
gradient_estimation_cfg_pp
er_sde
seeds_2
seeds_3
ddim
uni_pc

✅ Quick Legend:

  • = Best known scheduler pairing for this sampler.
  • Blank = Not recommended / niche use / no clear benefit pairing.

Pairing the right scheduler with the right sampler in ComfyUI isn't just a “nice to have” — it's the difference between buttery-smooth masterpieces and noisy, incoherent messes. While most samplers technically work with most schedulers, that doesn’t mean they should. Each sampler has unique mathematical characteristics — some prioritize precision, others speed, others realism — and the scheduler determines how that sampling process unfolds over time. The wrong combination can undermine your output quality, tank performance, or worse, make your beautifully engineered workflow behave like it just rolled out of a chaos factory. Choosing the best pairings ensures you get faster generations, better detail retention, smoother gradients, and more consistent results — especially in high-stakes workflows like SDXL, animations, or multimodal conditioning. Trust us: aligning your scheduler with the sampler’s strengths is the easiest quality boost you can make without touching a single prompt.

📚 Detailed Best Pairing List

SamplerBest SchedulerWhy This Pairing WorksSampler DocsScheduler Docs
eulernormalFast and sharp results, good for sketch-style or high-contrast work.eulernormal
euler_cfgkarrasMaintains CFG-weighted detail well, stable under long prompts.euler_cfgkarras
euler_ancestralexponentialBest for dreamy, soft lighting and slow transitions.euler_ancestralexponential
dpmpp_2mkarrasHigh-quality, well-balanced — the industry gold standard.dpmpp_2mkarras
dpmpp_2m_cfg_ppbetaCFG-enhanced DPM++ with excellent edge preservation.dpmpp_2m_cfg_ppbeta
dpmpp_2m_sdekarrasFantastic for realism; handles shading and depth extremely well.dpmpp_2m_sdekarras
dpmpp_3m_sdelinear_quadraticComplex scene generation, rich gradients, great for SDXL.dpmpp_3m_sdelinear_quadratic
heunpp2karrasCleaner transitions between token weight shifts, good for intricate prompt detail.heunpp2karras
lcmsgm_uniformOptimal fast sampler; pairs with low step configs.lcmsgm_uniform
uni_pckl_optimalAdaptive and smart. Excels at high-resolution and SDXL workflows.uni_pckl_optimal
deissimpleVery clean, progressive sampling. Pairs well with text-to-image.deissimple
ipndmddim_uniformGreat compromise for noise-controlled diffusion steps.ipndmddim_uniform
res_multistepkarrasWorks well for animations and sequential inference.res_multistepkarras
gradient_estimation_cfg_ppbetaSmooth transitions, precise edge definition for CFG-heavy workflows.gradient_estimation_cfg_ppbeta
er_sdeexponentialBest used for SDXL variants and 3D-looking renders.er_sdeexponential

🧩 Notes on Exclusions

  • ddpm, seeds_2, seeds_3, dpm_adaptive, and dpm_fast were excluded for being legacy/utility samplers or having no strong "best" pairing — they work, but aren't ideal for quality-first workflows.
  • If you don’t see a combo listed here, assume it’s okay but not optimal unless you have a very specific reason to use it.
  • We’re skipping raw CFG samplers unless you're explicitly building a custom pipeline that depends on parallel prompt/latent conditioning.

🧯 What-Not-To-Do-Unless-You-Want-a-Fire

  • ❌ Pair lcm with exponential, kl_optimal, or linear_quadratic. It's meant for speed and doesn't behave well with over-complicated schedulers.
  • ❌ Use uni_pc with simple or ddim_uniform unless you like flat, lifeless outputs.
  • ❌ Stack CFG samplers (*_cfg_pp) without a prompt setup that supports dual CLIP encoders. You'll lose all that enhanced guidance precision you paid for.
  • ❌ Apply dpmpp_sde_gpu with high noise schedulers (exponential, ddim_uniform) unless you're tuning for chaos.

📚 Additional Resources