Skip to content
,

ComfyUI Samplers and Schedulers Explained: Which to Use for Every Model (2026)

12โ€“18 minutes

The KSampler node in ComfyUI offers more than 40 samplers and 9 schedulers, plus steps, CFG and denoise. Most people leave them on whatever the template used, and that is often fine, until a new model gives blurry, burnt or noisy images and the fix is a single dropdown. This guide explains what every sampler and scheduler in current ComfyUI does, which ones are slow, which ones change the image every time, how steps, CFG, denoise and shift interact, and the settings that work for each model family, from SD 1.5 and SDXL to Flux, Qwen Image, MOSS-Image, Wan and MiniMax H3 video.

TL;DR

  • Modern flow models (Flux, Qwen Image, MOSS, Krea, Wan, H3): euler + simple (or beta). Use the template’s steps and CFG.
  • SD 1.5 and SDXL: dpmpp_2m + karras, 20 to 30 steps, CFG 5 to 7. dpmpp_2m_sde for more detail.
  • Turbo, Lightning, LCM and distill LoRAs: CFG 1, the LoRA’s step count, and euler or lcm as the card says.
  • “Ancestral” and “SDE” samplers add new noise every step, so the image keeps changing with the step count.
  • heun, dpm_2 and other “2” samplers run the model twice per step: same quality in fewer steps, but each step costs double.
  • CFG above 1 doubles the work per step. Distilled models need CFG 1.

How Sampling Works in 60 Seconds

Every image or video starts as pure noise. At each step the model predicts what the clean image looks like, and the sampler uses that prediction to remove some of the noise. The scheduler decides how much noise is left after each step: lots of big early steps for composition, or more small late steps for fine detail. Put simply:

  • Sampler = how each step is taken (the maths method).
  • Scheduler = how the total denoising is split across the steps.
  • Steps = how many times the model is asked.
  • CFG = how strongly the result is pushed towards your prompt and away from the negative prompt.
  • Denoise = how much of the starting image is replaced (1.0 = all of it).

The noise level at each step is called a sigma. The scheduler produces the list of sigmas; the sampler walks through them.

Best Settings by Model (Cheat Sheet)

Start here. Values are typical starting points from official templates, model cards and our own guides. When a model’s template or card gives different numbers, use those.

Model family Sampler Scheduler Steps CFG
SD 1.5 dpmpp_2m karras 20 to 30 6 to 8
SDXL and SDXL fine-tunes dpmpp_2m or dpmpp_2m_sde karras 25 to 35 5 to 7
SDXL Lightning, Turbo, Hyper euler (or lcm) sgm_uniform 4 to 8 1 to 2
LCM LoRA models lcm sgm_uniform 4 to 8 1 to 2
Flux.1 dev (guidance-distilled) euler simple or beta 20 to 30 1 (FluxGuidance about 3.5)
FLUX 3 Image Klein (distilled) template template template 1
MOSS-Image euler simple 50 (25 drafts) 3, with shift 5
Qwen Image 2.1 euler simple about 40 above 1 (template value)
Krea 2 Turbo euler simple 8 1
Fibo 2 Dev / Edit Turbo template template 50 / 4 5 / 1
Wan 2.x video uni_pc or euler simple 20 to 30 5 to 6, shift about 8
MiniMax H3 video template template 25 to 28 template
Any Turbo / distill LoRA as the card says (often euler or lcm) simple or custom sigmas 3 to 8 1

Model-specific guides with full settings: FLUX 3 Image Klein, MOSS-Image, Qwen Image 2.1 in 6 steps, Krea 2 in 3 steps, Fibo 2 and MiniMax H3 LoRAs.

Every Sampler Explained

This is the full list from the current ComfyUI source, grouped by type. “Cost” is how many times the model runs per step compared with euler. “Converges” means the image settles as you add steps instead of changing.

First-order samplers (fast, 1 model call per step)

Sampler Cost Converges What it is and when to use it
euler 1x Yes The simplest method. The standard choice for flow-matching models (Flux, SD3, Qwen Image, MOSS, Krea, Wan, most 2026 models) and for distill LoRAs
euler_ancestral 1x No Euler plus fresh noise each step. Softer, more varied images; popular on SD 1.5 anime models
dpmpp_2m 1x Yes DPM-Solver++ multistep: uses the previous step to take a better next step. The best all-rounder for SD 1.5 and SDXL, especially with karras
dpmpp_2m_sde / _gpu 1x No Multistep with added noise. More fine detail and texture than dpmpp_2m on SDXL; needs a few more steps
dpmpp_2m_sde_heun / _gpu 1x No A variant of 2m_sde using a Heun-style solver type
dpmpp_3m_sde / _gpu 1x No Uses three previous steps. Good detail at higher step counts (30+); can be noisy at low steps
uni_pc / uni_pc_bh2 1x Yes UniPC predictor-corrector. Very good at low step counts; used in Wan video templates. bh2 is a slightly different variant that some prefer at very low steps
deis 1x Yes Multistep exponential integrator. Strong at 10 to 20 steps
ipndm / ipndm_v 1x Yes Pseudo-numerical multistep methods. Good quality at low step counts
res_multistep 1x Yes A multistep sampler added alongside NVIDIA Cosmos support; works well on many flow models as an alternative to euler
res_multistep_ancestral 1x No res_multistep with added noise
gradient_estimation 1x Yes An improved euler that estimates the gradient from previous steps; can match euler in fewer steps
er_sde 1x No Extended reverse-time SDE solver. Fine detail, good on SDXL and flow models at moderate steps
sa_solver 1x No Stochastic Adams solver: a multistep SDE method with controllable noise
lms 1x Yes Linear multistep, an older method. Rarely the best today
ddim 1x Yes The classic DDIM sampler. Pair with ddim_uniform; mostly for older models
ddpm 1x No The original stochastic sampler. Needs many steps
lcm 1x No For LCM, Turbo, Lightning and some video distill LoRAs (for example Pika H3 Flex). Use with CFG 1 to 2 and 4 to 8 steps

Second-order and higher (better per step, slower per step)

Sampler Cost Converges Notes
heun about 2x Yes Very accurate. 15 heun steps cost about the same as 30 euler steps
heunpp2 up to 3x Yes Heun with an extra correction
dpm_2 about 2x Yes DPM-Solver 2nd order
dpm_2_ancestral about 2x No dpm_2 with added noise
dpmpp_2s_ancestral about 2x No Popular for SD 1.5 portraits; soft, varied results
dpmpp_sde / _gpu about 2x No High detail, good at low step counts on SDXL, but slow per step
exp_heun_2_x0 / _sde about 2x Yes / No Exponential Heun variants
seeds_2 / seeds_3 about 2x / 3x No SEEDS stochastic solvers
sa_solver_pece about 2x No sa_solver with an extra correction call

Adaptive and special

  • dpm_fast: DPM-Solver with a fixed schedule of its own.
  • dpm_adaptive: chooses its own step count based on error, so it ignores your steps value and can be very slow.
  • cfgpp_ud10_ab: an experimental CFG++ variant; see below.

The _gpu versions create the random noise on the GPU instead of the CPU. They are slightly faster, but the same seed gives a different image than the non-GPU version, and results can differ between GPU models.

Ancestral, SDE and “Converging” Samplers

Samplers with ancestral or sde in the name inject new random noise at every step. That has three effects:

  • The image does not converge: 20 steps and 40 steps give noticeably different pictures, even with the same seed.
  • They often look more detailed or more “alive”, and can fix the plastic look of some models.
  • They are worse for workflows that need consistency, such as comparing settings, animation frames or reproducible results.

Converging samplers (euler, dpmpp_2m, uni_pc, deis, heun and so on) settle on one image; extra steps only refine it. Use them when you want predictable results or are tuning other settings.

The _cfg_pp Samplers

Samplers ending in _cfg_pp (euler_cfg_pp, euler_ancestral_cfg_pp, dpmpp_2m_cfg_pp, dpmpp_2s_ancestral_cfg_pp, res_multistep_cfg_pp, gradient_estimation_cfg_pp and others) use CFG++, a different way of applying guidance. They are designed for a much lower CFG, usually around 1 to 2. At a normal CFG of 7 they over-cook the image. Try them when a model looks oversaturated at normal CFG but weak at low CFG.

They have no effect on models run at CFG 1, because there is no guidance to change.

Every Scheduler Explained

Scheduler How it spreads the steps Best for
simple Evenly through the model’s own noise table Default for Flux, Qwen Image, MOSS, Krea, Wan and most flow models
normal Evenly in time Safe general choice; close to simple
karras More steps at low noise, for fine detail SD 1.5 and SDXL with DPM++ samplers. Usually worse on flow models
exponential Exponential spacing in noise level SDXL; similar to karras but smoother
sgm_uniform Like normal but without the final zero step LCM, Turbo, Lightning and SDXL distilled models
beta More steps at the start and the end (beta distribution) Flux and other flow models; good balance of structure and detail
ddim_uniform DDIM’s original uniform timesteps The ddim sampler
linear_quadratic Linear at first, then quadratic Some video models (it was introduced for Mochi)
kl_optimal A schedule from a KL-optimal formula Worth testing on SDXL and flow models

Safe pairings: dpmpp_2m + karras for SD 1.5 and SDXL, euler + simple or euler + beta for flow models, lcm + sgm_uniform for LCM. A mismatched scheduler, such as karras on a Flux-family model, is one of the most common causes of grainy or noisy output.

How Many Steps?

  • Base models with CFG: 20 to 30 for SD 1.5 and SDXL, 25 to 50 for large 2026 image models, 20 to 30 for video.
  • Turbo, Lightning and distill LoRAs: exactly what the card says (3, 4, 6 or 8). More steps often makes them worse, not better.
  • Second-order samplers (heun, dpm_2): about half the steps of euler for similar quality.
  • Converging samplers stop improving after a point. If 30 and 50 steps look the same, use 30.
  • Drafts: halve the steps to explore prompts, then render the keeper at full steps with the same seed (use a converging sampler for this).

CFG, Guidance and Negative Prompts

CFG (classifier-free guidance) runs the model twice per step, once with your prompt and once with the negative prompt (or empty), and pushes the result away from the negative. Higher CFG follows the prompt more strictly; too high burns colours and adds harsh contrast.

  • CFG 1 turns guidance off. The negative prompt is ignored and each step is about twice as fast.
  • Distilled models and speed LoRAs (Turbo, Lightning, distill, DMD) are trained for CFG 1. Raising it usually ruins the image.
  • Guidance-distilled models such as Flux.1 dev take a separate “guidance” value (the FluxGuidance node, about 3.5) and run at CFG 1.
  • Typical ranges: 5 to 8 for SD 1.5 and SDXL, about 3 for MOSS-Image, 5 for Fibo 2 Dev, 5 to 6 for Wan video.

If you need a negative prompt with a CFG 1 model, some workflows use NAG (normalized attention guidance) from the ComfyUI-NAG custom node pack instead of raising CFG.

Why Some Settings Are Twice as Slow

Model calls per imageSteps x CFG passes x sampler cost. Fewer calls = faster.SDXL, heun, 30 steps + CFG120MOSS-Image, 50 steps + CFG100Qwen Image 2.1, 40 steps + CFG80SDXL, dpmpp_2m, 30 steps + CFG60Guidance-distilled, 28 steps, CFG 128Turbo LoRA, 8 steps, CFG 183-step distill LoRA, CFG 13CFG above 1 runs the model twice per step. heun, dpm_2 and other 2nd-order samplers also run it twice.
Model calls per image: 120 for SDXL with heun at 30 steps and CFG, 100 for MOSS-Image at 50 steps with CFG, 60 for SDXL with dpmpp_2m, 28 for a guidance-distilled model at CFG 1, 8 for a Turbo LoRA and 3 for a 3-step distill LoRA.

Generation time is roughly proportional to the number of times the model runs. That number is:

model calls = steps x (2 if CFG is above 1, otherwise 1) x sampler cost

So SDXL at 30 steps with CFG and dpmpp_2m is 60 calls, but the same settings with heun are about 120. A distilled model at CFG 1 and 8 steps is just 8 calls, which is why speed LoRAs feel so much faster.

Estimate for a 16 GB card like the RTX 5080: if one model call on a 1024×1024 image takes about 0.15 seconds, 60 calls is about 9 seconds and 8 calls is about 1.2 seconds, plus text encoding and VAE decode. This is an estimate, not a measured result.

Denoise for img2img, Inpainting and Upscaling

Denoise sets how much of the input image is replaced. With an Empty Latent Image it should be 1.0. With an input image or a second “hires fix” pass:

Denoise Result Typical use
0.1 to 0.3 Small cleanup; layout and colours stay Sharpening an upscale, fixing small artefacts
0.3 to 0.5 Adds detail; composition stays Hires fix and latent upscale second passes
0.5 to 0.75 Big changes in style and detail; rough layout stays Restyling a photo, turning a sketch into a render
0.75 to 1.0 Mostly or fully new image Inpainting large areas, loose variations

With denoise below 1, ComfyUI only runs the last part of the schedule. At 20 steps and denoise 0.5, roughly 10 steps actually run. For video upscales, too low a denoise is the usual reason a second pass adds no detail; our H3 2K/4K upscale guide shows a working two-pass setup.

KSamplerAdvanced uses start_at_step and end_at_step instead of denoise. Starting at step 10 of 20 is the same idea as denoise 0.5, and splitting one generation between two models (for example a high-noise and a low-noise video model) works by giving each one part of the steps.

Shift (ModelSampling Nodes)

Flow-matching models often have a shift value, set with nodes such as ModelSamplingSD3, ModelSamplingAuraFlow or ModelSamplingFlux placed between the model loader and the sampler. Shift moves more of the steps towards high noise levels:

  • Higher shift: more effort on overall structure and motion. Helps at high resolutions and in video, where a low shift can give duplicated limbs, broken layouts or messy motion.
  • Lower shift: more effort on fine detail. Can look sharper at small sizes but less coherent at large ones.

Use the template’s value first (for example about 8 for Wan video and 5 for MOSS-Image). Many distill LoRAs say to remove the shift node entirely because their schedule is already built in.

Custom Sigmas and Advanced Sampler Nodes

KSampler bundles everything into one node. For more control, ComfyUI splits it into parts:

  • SamplerCustom or SamplerCustomAdvanced: takes a sampler, sigmas, a guider and noise as separate inputs.
  • KSamplerSelect: picks the sampler.
  • BasicScheduler: makes sigmas from a scheduler name, steps and denoise.
  • AlignYourStepsScheduler: NVIDIA’s optimized schedules for SD 1.5, SDXL and SVD, good at 10 steps.
  • ManualSigmas: type the exact sigma list a LoRA was trained with. Several 2026 speed LoRAs need this, and a generic schedule gives worse results. See our Pruna 6-step guide and Pika H3 Flex guide for examples.
  • CFGGuider and BasicGuider: CFGGuider applies CFG with a negative prompt; BasicGuider is the CFG 1 equivalent.
  • SplitSigmas: divides a schedule into two parts, for two-pass or two-model workflows.

Fixing Bad Results

Problem Likely cause Fix
Burnt, oversaturated, high-contrast image CFG too high (or above 1 on a distilled model) Lower CFG; set CFG 1 for Turbo or distill models
Grainy or noisy image Too few steps, or wrong scheduler (karras on a flow model) Add steps; switch to simple or beta
Blurry, washed-out, low-detail image CFG too low on a non-distilled model, or too few steps Raise CFG towards the template value; add steps
Image changes completely when you change steps Ancestral or SDE sampler Use euler, dpmpp_2m or uni_pc
Speed LoRA gives mush Wrong steps, CFG or sigmas Match the card exactly: steps, CFG 1, sampler, and ManualSigmas if given
Same seed gives a different image on another PC _gpu sampler, different GPU or different precision Use the non-GPU sampler and the same model file
Generation is very slow 2nd-order sampler, dpm_adaptive, or CFG above 1 Switch to euler or dpmpp_2m; use a speed LoRA
Duplicated subjects at high resolution Shift too low or resolution too far above training size Raise shift; generate smaller and upscale

For crashes and red error boxes rather than bad images, see ComfyUI errors and fixes.

FAQ

What is the best sampler in ComfyUI?

There is no single best. euler with simple is the standard for modern flow models, and dpmpp_2m with karras is the standard for SD 1.5 and SDXL. Start with those and only change if you see a problem.

What is the difference between a sampler and a scheduler?

The sampler is the method used for each denoising step. The scheduler decides how much noise is removed at each step.

Is euler_ancestral better than euler?

Not better, just different. It adds noise each step, which gives softer and more varied images but does not converge. Use euler when you need repeatable results.

Why does my Turbo LoRA look worse with more steps?

Distilled models are trained for a fixed number of steps and CFG 1. Use the exact values from the LoRA card.

Does the sampler affect speed?

Yes. Second-order samplers like heun, dpm_2, dpmpp_sde and dpmpp_2s_ancestral run the model about twice per step. dpm_adaptive ignores your step count and can be very slow.

Does the seed give the same image with a different sampler?

No. The seed sets the starting noise, but each sampler takes a different path from it.

Final Thoughts

For most people, two pairings cover almost everything: euler with simple (or beta) for modern flow models, and dpmpp_2m with karras for SD 1.5 and SDXL. Match steps and CFG to the model card, keep CFG at 1 for anything distilled, and remember that CFG and second-order samplers each double the work per step. When an image looks wrong, check CFG, the scheduler and the step count first, in that order.

More ComfyUI reference guides:

Sources