
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. 1ComfyUI KSampler node —
sampler_name and scheduler are independent parameters, not a combined setting. 4Full 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_name | Correct scheduler | ComfyUI description | Hard requirement? |
|---|---|---|---|
dpmpp_2m | karras | Industry gold standard | Strongly recommended (degrades without) |
dpmpp_2m_sde | karras | Fantastic for realism; shading/depth | Required (breaks without) |
dpmpp_3m_sde | linear_quadratic | Complex scenes, rich gradients | Required (wrong scheduler type) |
euler | normal | Fast, sharp, good for sketch/high-contrast | No hard req. |
euler_ancestral | exponential | Dreamy, soft lighting, slow transitions | N/A (scheduler silently ignored — ancestral uses its own built-in schedule) |
heunpp2 | karras | Clean transitions between token shifts | Soft preference |
uni_pc | kl_optimal | High-resolution and SDXL workflows | Soft preference (simple/ddim_uniform produce flat output) |
deis | simple | Clean, progressive sampling | Soft preference |
res_multistep | karras | Animations and sequential inference | Strongly recommended |
lcm | sgm_uniform | Optimal fast sampling (4–8 steps) | Required (fails with exponential/kl_optimal/linear_quadratic) |
er_sde | exponential | SDXL variants and 3D-look rendering | Soft preference |
gradient_estimation_cfg_pp | beta | Smooth transitions, CFG-heavy workflows | Soft preference |
heun | karras | Cleaner than Euler at half the step count | Avoid 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. 2Per-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 type | Primary combo | Steps | CFG | Why |
|---|---|---|---|---|
| Portrait / photorealism | dpmpp_2m_sde + karras | 25–35 | 5–7 | SDE noise injection smoothes skin texture; "fantastic for realism, handles shading and depth." 2 |
| Landscape / architecture | dpmpp_3m_sde + linear_quadratic | 25–35 | 5–7 | 3rd-order handles distant detail gradients; "complex scene generation, rich gradients." 2 |
| Anime / illustration | euler + karras | 20–30 | 5–7 | Anime-tuned SDXL checkpoints often prefer Euler over DPM++; Civitai ranks Euler+Karras as #3 for SDXL illustration at high steps. 5 |
| Product photography | dpmpp_2m + karras | 25–30 | 5–6 | Deterministic 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.

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:
| Sampler | SDXL steps sweet spot | Notes |
|---|---|---|
dpmpp_2m + Karras | 20–30 | Quality stabilizes around 20; diminishing returns past 30 |
dpmpp_2m_sde + Karras | 25–35 | SDE never fully converges; more steps maintain quality longer |
dpmpp_3m_sde + Linear Quadratic | 25–40 | Higher-order benefits from extra steps; heavier compute |
euler + Normal | 25–35 | Lower approximation accuracy; needs more steps for quality |
euler_ancestral + (default) | 20–30 | More steps increase randomness, not quality — adding steps creates variation, not refinement |
heunpp2 + Karras | 15–20 | Each step calls the model twice — equivalent to 30–40 Euler steps in compute |
uni_pc + KL Optimal | 20–30 | Designed for low-step efficiency |
lcm + SGM Uniform | 4–8 | LCM-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.ComfyUI KSampler — portrait / realism (gold standard):
sampler_name: dpmpp_2m
scheduler: karras
steps: 30
cfg: 5.0
denoise: 1.0ComfyUI KSampler — complex scene / landscape:
sampler_name: dpmpp_3m_sde
scheduler: linear_quadratic
steps: 25
cfg: 7.0
denoise: 1.0ComfyUI KSampler — fast preview:
sampler_name: euler
scheduler: normal
steps: 20
cfg: 7.0
denoise: 1.0A1111 — photorealism:
Sampling method: DPM++ 2M
Schedule type: Karras
Sampling steps: 30
CFG Scale: 5A1111 — 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. 11Two 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参考ソース
- 1としあきdiffusion Wiki: sampler
- 2ComfyUI Dev: Sampler and Scheduler Compatibility Matrix
- 3SDNext (vladmandic): Schedulers Wiki
- 4ComfyUI Built-in Nodes: KSampler
- 5Civitai: Understanding Stable Diffusion Samplers (QuadPipe)
- 6Prompting Pixels: Sampling Methods & Steps
- 7Reddit r/StableDiffusion: Scheduler recommendations?
- 8obisin/ComfyUI-FSampler GitHub README
- 9Stable Diffusion Art: Samplers Guide
- 10RunDiffusion: Juggernaut XL Guide
- 11HuggingFace Diffusers: Schedulers
- 12ClownsharkBatwing/RES4LYF GitHub README




このコンテンツについて、さらに観点や背景を補足しましょう。