ComfyUI Sampler & Scheduler Guide
What each sampler and sigma scheduler does, when to use it, and how steps/CFG/denoise interact. Plain-language reference.
Quick answers
Just want a good default? dpmpp_2m + karras, 25-30 steps, CFG 5-7.
Fastest usable result? euler or lcm at 4-8 steps with low CFG (1-2).
Video (LTX/Hunyuan/Wan)? euler_ancestral or res_multistep with the model-recommended steps; keep CFG near 1-3 for distilled checkpoints.
Samplers
euler
The simplest solver: one correction per step. Deterministic - same seed, same image.
Use when: Fast drafts, video, and any time you want reproducibility. Excellent quality per step at 20-30 steps.
euler_ancestral
Euler plus fresh noise injected each step. Results vary slightly run to run even with a fixed seed.
Use when: Richer textures, video models (LTX, Hunyuan), and when deterministic looks too sterile.
heun
Second-order solver: two evaluations per step, roughly halves the steps needed for equal quality.
Use when: Quality-focused stills when compute is fine; use ~2/3 of your usual steps.
dpm_2 / dpm_2_ancestral
Second-order multistep family. Better convergence than euler, similar ancestral trade-off.
Use when: Still images where detail matters.
dpmpp_2m
Probability-flow predictor-corrector, multistep. The community default: fast, stable, deterministic.
Use when: Everyday default for SD1.5/SDXL with karras scheduler at 25-30 steps.
dpmpp_2m_sde
dpmpp_2m with stochastic (SDE) corrections. Grain and texture appear earlier in the schedule.
Use when: Photoreal skin, fabric, organic detail; slightly slower, non-reproducible.
dpmpp_3m_sde
Third-order SDE variant. Even smoother convergence, best at high step counts.
Use when: Final quality renders at 30-40 steps.
ddim
The classic deterministic solver from the original DDIM paper. Conservative and predictable.
Use when: Older SD1.5 workflows, training-style pipelines.
uni_pc
Unified predictor-corrector designed for few-step convergence.
Use when: Low step counts (5-10) on non-LCM models.
lcm
Solver for LCM-distilled models that generate in 2-8 steps at very low CFG.
Use when: LCM LoRA/model combos and real-time previews.
res_multistep
Multistep sampler tuned for video diffusion models.
Use when: LTX and Hunyuan video with their recommended step ranges.
ddpm
The original diffusion sampler with full noise scheduling per step.
Use when: Educational comparisons; rarely the practical choice.
Schedulers (sigma schedules)
normal - Linear spacing across the sigma range. The neutral default.
karras - Exponentially spreads sigmas toward the end of the schedule, spending more steps on fine detail. Best general companion to dpmpp samplers.
exponential - Aggressive decay; concentrates steps early. Good for high-noise-heavy styles and few-step runs.
sgm_uniform - Uniform spacing with the SGM tail; commonly used for video and SDXL turbo variants.
simple - Short, coarse schedule; pairs with turbo/lightning models.
beta - Beta-distributed sigmas; an alternative tail-heavy curve for artistic variance.
vp - Variance-preserving schedule from score-based diffusion papers; research workflows.
How steps, CFG and denoise actually interact
Steps is how many denoising passes the sampler makes. More steps = finer refinement, diminishing returns past the model sweet spot (SD1.5/SDXL: 20-30; distilled models: 4-8).
CFG scales how hard the model steers toward your prompt each step. Too low: ignores the prompt. Too high (8+ on SDXL, 3+ on video models): oversaturated, burnt, rigid. Flux/LTX style models often want CFG 1-3 because they were distilled with guidance baked in.
Denoise (img2img and refiners) is how much of the step budget actually changes the image. 1.0 = full generation, 0.5 = roughly half the schedule runs, keeping composition. Lower denoise needs fewer steps to be effective: effective steps = steps x denoise.
Seed fixes the starting noise. Same seed + same everything else = same image; change seed only to explore variations.
About
Samplers are numerical solvers for the diffusion ODE/SDE - deterministic ones (euler, dpmpp_2m) give reproducible results for a seed; ancestral ones (euler_ancestral, dpmpp_2m_sde) inject noise each step for more varied texture at the cost of exact reproducibility.