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)
Sampler | normal | karras | exponential | sgm_uniform | simple | ddim_uniform | beta | linear_quadratic | kl_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
Sampler | Best Scheduler | Why This Pairing Works | Sampler Docs | Scheduler Docs |
---|---|---|---|---|
euler | normal | Fast and sharp results, good for sketch-style or high-contrast work. | euler | normal |
euler_cfg | karras | Maintains CFG-weighted detail well, stable under long prompts. | euler_cfg | karras |
euler_ancestral | exponential | Best for dreamy, soft lighting and slow transitions. | euler_ancestral | exponential |
dpmpp_2m | karras | High-quality, well-balanced — the industry gold standard. | dpmpp_2m | karras |
dpmpp_2m_cfg_pp | beta | CFG-enhanced DPM++ with excellent edge preservation. | dpmpp_2m_cfg_pp | beta |
dpmpp_2m_sde | karras | Fantastic for realism; handles shading and depth extremely well. | dpmpp_2m_sde | karras |
dpmpp_3m_sde | linear_quadratic | Complex scene generation, rich gradients, great for SDXL. | dpmpp_3m_sde | linear_quadratic |
heunpp2 | karras | Cleaner transitions between token weight shifts, good for intricate prompt detail. | heunpp2 | karras |
lcm | sgm_uniform | Optimal fast sampler; pairs with low step configs. | lcm | sgm_uniform |
uni_pc | kl_optimal | Adaptive and smart. Excels at high-resolution and SDXL workflows. | uni_pc | kl_optimal |
deis | simple | Very clean, progressive sampling. Pairs well with text-to-image. | deis | simple |
ipndm | ddim_uniform | Great compromise for noise-controlled diffusion steps. | ipndm | ddim_uniform |
res_multistep | karras | Works well for animations and sequential inference. | res_multistep | karras |
gradient_estimation_cfg_pp | beta | Smooth transitions, precise edge definition for CFG-heavy workflows. | gradient_estimation_cfg_pp | beta |
er_sde | exponential | Best used for SDXL variants and 3D-looking renders. | er_sde | exponential |
🧩 Notes on Exclusions
ddpm
,seeds_2
,seeds_3
,dpm_adaptive
, anddpm_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
withexponential
,kl_optimal
, orlinear_quadratic
. It's meant for speed and doesn't behave well with over-complicated schedulers. - ❌ Use
uni_pc
withsimple
orddim_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.