SDXL sampler × scheduler: the pairing matrix that actually matters
2026. 6. 23. · 10:27

SDXL sampler × scheduler: the pairing matrix that actually matters

Hard pairing rules, full sampler×scheduler matrix, and copy-paste configs for ComfyUI, A1111, and Diffusers.

The default ComfyUI KSampler ships with sampler_name: euler and scheduler: normal. Those two dropdowns look like a single choice, but they're independent axes — and getting the wrong combination isn't just suboptimal, it can break generation entirely. Three hard rules govern SDXL pairing behavior. Everything else is preference.

The three rules that can break your generation

Before the preference conversation, there are constraints.
Rule 1 — DPM++ 2M SDE requires Karras on SDXL, not just benefits from it. The SDE variant of DPM++ 2M is more sensitive to model prediction noise than its non-SDE sibling. On SDXL, running dpmpp_2m_sde without scheduler: karras causes generation to fail outright — the Japanese community wiki documents this as "破綻する" (collapse). 1 The regular dpmpp_2m degrades in quality without Karras but doesn't break; the SDE variant does.
Rule 2 — DPM++ 3M SDE pairs with linear_quadratic, not karras. This is the most commonly misapplied SDXL setting. ComfyUI's official compatibility matrix lists dpmpp_3m_sde → linear_quadratic specifically for "complex scene generation, rich gradients, great for SDXL." 2 Swapping in Karras here doesn't match what the 3rd-order solver expects from its sigma distribution.
Rule 3 — euler_ancestral does not accept Karras, Beta, or Exponential schedulers. Ancestral samplers use their own built-in noise schedule. The SDNext capability matrix shows Euler a's Karras/Beta/Exponential columns as empty — no support. 3 Assigning scheduler: karras to euler_ancestral in ComfyUI doesn't cause an error message, but the scheduler setting is silently ignored; you're running Euler a's default schedule regardless.
The same hard-dependency pattern applies to res_multistep: like dpmpp_2m, it degrades without Karras on SDXL. 1
ComfyUI KSampler node — sampler_name and scheduler are independent parameters, not a combined setting. 4

Full compatibility matrix

ComfyUI's official guidance documents 13 key sampler-to-scheduler pairings. 2 The table below combines those with SDNext's capability matrix 3 and community consensus from Civitai 5 for SDXL-relevant samplers:
ComfyUI sampler_nameCorrect schedulerComfyUI descriptionHard requirement?
dpmpp_2mkarrasIndustry gold standardStrongly recommended (degrades without)
dpmpp_2m_sdekarrasFantastic for realism; shading/depthRequired (breaks without)
dpmpp_3m_sdelinear_quadraticComplex scenes, rich gradientsRequired (wrong scheduler type)
eulernormalFast, sharp, good for sketch/high-contrastNo hard req.
euler_ancestralexponentialDreamy, soft lighting, slow transitionsN/A (scheduler silently ignored — ancestral uses its own built-in schedule)
heunpp2karrasClean transitions between token shiftsSoft preference
uni_pckl_optimalHigh-resolution and SDXL workflowsSoft preference (simple/ddim_uniform produce flat output)
deissimpleClean, progressive samplingSoft preference
res_multistepkarrasAnimations and sequential inferenceStrongly recommended
lcmsgm_uniformOptimal fast sampling (4–8 steps)Required (fails with exponential/kl_optimal/linear_quadratic)
er_sdeexponentialSDXL variants and 3D-look renderingSoft preference
gradient_estimation_cfg_ppbetaSmooth transitions, CFG-heavy workflowsSoft preference
heunkarrasCleaner than Euler at half the step countAvoid with SDXL v-pred variants (breaks)
Anti-patterns to avoid: karras with euler or plain heun produces blurry results and artifacts. 2 uni_pc with simple or ddim_uniform generates "flat, lifeless outputs." dpmpp_sde_gpu with exponential or ddim_uniform causes chaos. 2

Per-use-case defaults

The full matrix is useful for troubleshooting; what most workflows need is a starting point per subject type. The following recommendations synthesize ComfyUI's official matrix 2, Civitai's ranked tables 5, Prompting Pixels 6, and the としあき diffusion wiki 1:
Subject typePrimary comboStepsCFGWhy
Portrait / photorealismdpmpp_2m_sde + karras25–355–7SDE noise injection smoothes skin texture; "fantastic for realism, handles shading and depth." 2
Landscape / architecturedpmpp_3m_sde + linear_quadratic25–355–73rd-order handles distant detail gradients; "complex scene generation, rich gradients." 2
Anime / illustrationeuler + karras20–305–7Anime-tuned SDXL checkpoints often prefer Euler over DPM++; Civitai ranks Euler+Karras as #3 for SDXL illustration at high steps. 5
Product photographydpmpp_2m + karras25–305–6Deterministic ODE convergence ensures reproducible edges and materials across seeds. 6
Two caveats from the data:
The portrait row uses the SDE variant (dpmpp_2m_sde) for texture, but if you need batch consistency across many seeds, the non-SDE dpmpp_2m + karras is more predictable. SDE samplers converge to an MSE floor of ~0.05 rather than approaching zero — the same seed at different step counts will produce slightly different images. 1 Non-SDE ODE samplers approach MSE ~0 at sufficient steps and are fully deterministic.
The Beta scheduler is commonly suggested as a portrait alternative but carries a risk: u/Major_Specific_23 on r/StableDiffusion (9 upvotes) describes how Beta57 "spends most of its time on high sigma steps and then dips very fast to 0 — good for structure/composition but sometimes bad for skin texture." 7 High-sigma steps control composition; low-sigma steps paint fine detail. Beta's distribution skews toward the former.
Also, Civitai's ranked tables place DDIM + Karras as the #1 combo in 3 of 4 SDXL categories (photorealistic low-step, photorealistic high-step, illustration high-step). 5 DDIM doesn't use Karras sigmas in the same way — it has its own internal mechanism — but the pairing performs well empirically. Worth testing on any checkpoint where DPM++ feels too sharp.
FSampler adaptive skip modes — baseline 175.6s vs adaptive 91.6s, showing 8 output variants at h2/s2 through h4/s4 configurations
FSampler adaptive vs. baseline: the rightmost panel (175.6s) is the no-skip baseline; center-bottom (91.6s) is adaptive skip mode. 8

Step-count economics

More steps don't always mean better images. Prompting Pixels' testing found that "going beyond 40–50 steps rarely improves output and can sometimes degrade it." 6 The per-sampler sweet spots for SDXL from multiple sources 6 9:
SamplerSDXL steps sweet spotNotes
dpmpp_2m + Karras20–30Quality stabilizes around 20; diminishing returns past 30
dpmpp_2m_sde + Karras25–35SDE never fully converges; more steps maintain quality longer
dpmpp_3m_sde + Linear Quadratic25–40Higher-order benefits from extra steps; heavier compute
euler + Normal25–35Lower approximation accuracy; needs more steps for quality
euler_ancestral + (default)20–30More steps increase randomness, not quality — adding steps creates variation, not refinement
heunpp2 + Karras15–20Each step calls the model twice — equivalent to 30–40 Euler steps in compute
uni_pc + KL Optimal20–30Designed for low-step efficiency
lcm + SGM Uniform4–8LCM-tuned models only; higher steps produce blur, not quality
The Karras scheduler directly affects how many steps you need. Without Karras, dpmpp_2m requires more steps to reach the same quality level because the sigma distribution provides less useful work per step. 1
통계 카드를 불러오는 중…
CFG interacts with step count too. SDXL's sweet spot is CFG 5–7 — lower than SD 1.5's 7–8. 6 10 At CFG > 10, some samplers (particularly DPM2 variants) converge noticeably slower, effectively requiring more steps for the same quality. 1

Platform syntax: ComfyUI, A1111, and Diffusers

The same combo is typed differently across platforms. A critical change happened in April 2024: A1111 split what was a single combined dropdown (e.g., DPM++ 2M Karras) into two separate dropdowns — Sampling method and Schedule type. 9 Old tutorials referencing DPM++ 2M Karras as a single selection are now outdated; the sampler and scheduler must be set independently.
Here are copy-paste configurations for the three main platforms: 4 9 11
ComfyUI KSampler — portrait / realism (gold standard):
sampler_name: dpmpp_2m
scheduler:    karras
steps:        30
cfg:          5.0
denoise:      1.0
ComfyUI KSampler — complex scene / landscape:
sampler_name: dpmpp_3m_sde
scheduler:    linear_quadratic
steps:        25
cfg:          7.0
denoise:      1.0
ComfyUI KSampler — fast preview:
sampler_name: euler
scheduler:    normal
steps:        20
cfg:          7.0
denoise:      1.0
A1111 — photorealism:
Sampling method: DPM++ 2M
Schedule type:   Karras
Sampling steps:  30
CFG Scale:       5
A1111 — creative / ancestral:
Sampling method: Euler a
Sampling steps:  25
CFG Scale:       7
(Schedule type: leave on Automatic — Euler a ignores the scheduler setting)
Diffusers / Python — DPM++ 2M Karras:
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
pipeline.scheduler = DPMSolverMultistepScheduler.from_config(
    pipeline.scheduler.config,
    use_karras_sigmas=True
)
image = pipeline(prompt="...", num_inference_steps=30, guidance_scale=5.0).images[0]
Diffusers — DPM++ 2M SDE Karras:
pipeline.scheduler = DPMSolverMultistepScheduler.from_config(
    pipeline.scheduler.config,
    algorithm_type="sde-dpmsolver++",
    use_karras_sigmas=True
)
In Diffusers, use_karras_sigmas=True is the boolean flag that activates Karras — not a scheduler string. There is no separate scheduler= parameter for this in Diffusers; Karras is a property of the DPMSolver scheduler class. 11

Two 2025–2026 additions worth knowing

RES4LYF (res_multistep) is available in ComfyUI's sampler dropdown now. The RES (Refined Exponential Solver) family was proposed by Chinese researchers as a fix for a structural flaw in DPM++: the DPM++ family assumes the model's prediction function is smooth enough to act as a differential equation, but in practice it isn't. RES uses exponential integration to solve the ODE's linear part exactly, giving it better robustness to prediction noise. 12 The としあき wiki (December 2025 update) calls res_multistep "one of the most stable and high-quality t2i samplers" currently available. 1 Pair it with karras. It won't look dramatically different from dpmpp_2m + karras in most cases, but it holds quality better at lower step counts.
FSampler v1.5.0 (January 2026, obisin/comfyui-FSampler, 131 GitHub stars) is a training-free acceleration layer that wraps existing samplers and reduces model calls by extrapolating between steps. In adaptive mode, it cuts NFE (number of function evaluations) by 40–60% on smooth runs. 8 It works as a ComfyUI custom node and is compatible with Euler, DPM++ 2M/2S, LMS, and res_multistep. The outputs in the comparison above (91.6s adaptive vs. 175.6s baseline) use a Flux model, but the mechanism is sampler-agnostic — the same NFE savings apply to SDXL samplers. The key caveat from the author: all formulas are deterministic, so high skip-ratio outputs look very similar to no-skip outputs; FSampler is most useful when you already have a settled workflow and want to reduce generation time without touching the sampler/scheduler configuration.

Today's action: If you're running any DPM++ 2M SDE workflow, confirm your scheduler is set to karras right now — not normal, not exponential. That one setting is the difference between the sampler performing as designed and generation collapsing. If you're building a new SDXL workflow from scratch, start with dpmpp_2m + karras at 30 steps, CFG 5. That's the configuration five independent sources call the industry gold standard — and it runs in 30 steps, not 50. 2 5 6

관련 콘텐츠

이 콘텐츠를 둘러싼 관점이나 맥락을 계속 보강해 보세요.

  • 로그인하면 댓글을 작성할 수 있습니다.