Skip to main content

Sampler_Name Options

TL;DR: The sampler_name defines how the denoising process interprets and walks through the noise space during diffusion. Each algorithm has its own way of dealing with noise, speed, coherence, prompt alignment, and quirks. Think of these like different chefs following the same recipe—some are minimalist Michelin stars, others are heavy-metal grillmasters. Each affects your results.

🤖 Table of Samplers

SamplerBest ForRecommended SchedulerNotesStrengthsWeaknesses
eulerFast deterministic generations, previewssimpleVery predictable, sharp at high stepsVery fast and consistentCan be harsh or noisy at high steps
euler_cfgSame as euler with better prompt controlsimpleSlightly better at following promptsAdds better control to classic EulerSlightly more resource usage
euler_ancestralTextured, slightly chaotic resultssimpleMore randomness, good for artCreates more textured, artistic outputsLess predictable
euler_ancestral_cfg_ppTextured creative results with better prompt adherencesimpleAdds CFG handlingBalanced creativity and prompt guidanceComplexity may increase render time
heunBalanced generations, alternative to EulerkarrasStable but slowerStable and smooth resultsSlower than Euler
heunpp2Better quality than Heun, improved CFGkarrasPhotorealistic scenesImproved quality with prompt fidelityStill underused and less tested
dpm_fastQuick drafts and prototypingexponentialFastest among DPMsExtremely fast renderingSacrifices image quality
dpm_adaptiveQuality-aware fast samplingexponentialAdjusts internally for better outputAuto-balances speed and qualityUnpredictable output fidelity
dpmpp_2s_ancestralHighly varied textures, creative imageskarrasGood for expressive scenesGreat for varied creative imageryMay over-randomize details
dpmpp_2s_ancestral_cfg_ppCreative + prompt fidelitykarrasMore guided variationBalances texture and prompt controlSlower due to CFG
dpmpp_sdeClean gradients, realismkarrasSmooth transitionsRealistic gradients and transitionsHigher VRAM usage
dpmpp_sde_gpuSame as above but faster on GPUkarrasGPU optimizedGPU-accelerated smooth renderingNeeds compatible hardware
dpmpp_2mBalanced realism and speedkarrasVersatile for many stylesBalanced, great for realismMore steps needed than ancestral samplers
dpmpp_2m_cfg_ppDetailed, prompt-loyal realismkarrasMost recommended general-purpose samplerBest for realism with tight prompt controlIncreased processing time
dpmpp_2m_sdeEven smoother realismkarrasGreat for portraitsExtremely smooth, clean outputSlower with high step counts
dpmpp_2m_sde_gpuSmooth realism, GPU-friendlykarrasHigh batch efficiencySmooth realism, GPU-friendlyNeeds VRAM headroom
dpmpp_3m_sdeHighest fidelity, complex detailkarrasSlow but premium outputUltimate detail and fidelityVery slow
dpmpp_3m_sde_gpuHigh-detail GPU acceleratedkarrasFor batch high-end generationHigh-detail GPU acceleratedHeavy on GPU resources
ddpmLegacy and experimentationddim_uniformSlow and stableStable and accurate to source diffusionVery slow and outdated
lcmUltra-fast low-step generationkarrasRequires LCM-tuned modelsLightning-fast generationRequires special models and low steps
ipndmExperimental, high coherencesgm_uniformUse with cautionHigh detail and structureExperimental and unstable
ipndm_vVariation of IPNDM, smoother resultssgm_uniformExperimentalMore stable than ipndmStill experimental
deisFast, lightweight qualityexponentialCompact generationQuick generation with decent qualityOccasional prompt drift
res_multistepArtistic, surreal imagesnormalNeeds higher stepsDreamlike stylized artUnstable and slow
res_multistep_ancestralDreamlike, unstable beautynormalChaos-drivenHyper-stylized artChaos-prone and unpredictable
re_multistep_ancestral_cfg_ppPrompt-driven surrealismnormalSlow and expressiveControlled surrealismHigh computational cost
gradient_estimationPrecision edge-case worklinear_quadraticVery slow, nichePrecision where others failExceptionally slow
gradient_estimation_cfg_ppSame as above with prompt fidelitylinear_quadraticUltra-nichePrompt-sensitive precisionSame slowness plus complexity
er_sdeStable, smooth realismkarrasBalance of all factorsBalanced realismSlower generation time
seeds_2Internal, unknown usenormalUndocumentedPossibly internal for seed processingUndocumented use
seeds_3Internal, unknown usenormalUndocumentedPossibly internal for seed controlUndocumented use
ddimAll-purpose generationddim_uniformBalanced across most needsFast, versatile, prompt-sensitiveCan lack texture or detail
uni_pcHigh-quality, stable outputskarrasModern, robust samplerHigh stability, great realismModerately slower

🧠 Detailed Sampler Breakdown

📌 Euler & Friends

  • euler: The OG. Fast, low-memory, deterministic.
    • Use for: Fast previews, consistent outputs.
    • Avoid if: You want dreamy aesthetics.
  • euler_cfg: Euler with better CFG control.
    • Use if: You find euler too rigid.
  • euler_ancestral: Adds randomness for richer textures.
    • Use for: More creative, slightly less predictable results.
  • euler_ancestral_cfg_pp: Post-prompt processing; blends chaotic charm with CFG wizardry.

⚙️ Heun Variants

  • heun: Like Euler but tries to be smarter. A compromise between speed and precision.
  • heunpp2: Heun, but updated with second-order CFG handling.
    • Pro tip: Works well for photorealism when Euler feels too harsh.

🚀 DPM Family (Euler on Steroids)

  • dpm_fast: Speed demon. Sacrifices some quality for rapid generation.
  • dpm_adaptive: Dynamically adjusts for better quality mid-run.
  • dpmpp_2s_ancestral: Two-stage, good for varied textures. More artistic.
  • dpmpp_2s_ancestral_cfg_pp: Same as above but with better prompt adherence.
  • dpmpp_sde: Introduces SDE smoothing—great for clean gradients and realism.
  • dpmpp_sde_gpu: GPU-optimized for large batches.
  • dpmpp_2m: Two-mode version. Think “midpoint-aware” sampler.
  • dpmpp_2m_cfg_pp: CFG-enhanced version. Best used with complex prompts.
  • dpmpp_2m_sde: Even smoother. Mixes SDE and midpoint sampling.
  • dpmpp_2m_sde_gpu: GPU-tuned for smoother multi-image workflows.
  • dpmpp_3m_sde: Three-mode version. Slower but higher fidelity.
  • dpmpp_3m_sde_gpu: GPU-optimized flavor for serious jobs.

🧪 Tip: The dpmpp samplers are your best bet for realism, complexity, and prompt fidelity. Try dpmpp_2m_cfg_pp with karras scheduler for S-tier output.


🧱 Basics and Benchmarks

  • ddpm: The original reverse diffusion. Good for understanding the roots of it all but slow for production.
  • ddim: A happy medium. Fast, decent quality, and widely supported.

🧠 Neural Wizardry

  • lcm: Latent Consistency Models.
    • Use for: Insanely fast generation (think < 6 steps).
    • Note: Needs LCM-tuned models/checkpoints. Use low steps (4–6).
  • ipndm, ipndm_v: Implicit noise prediction. High quality but needs babysitting.
    • Experimental: Try if you enjoy edge-case debugging.
  • deis: High-speed lightweight solver. Not always accurate but shockingly fast.
  • uni_pc: State-of-the-art. Combines stability with high detail.
    • Highly recommended for any polished workflow.

🎨 Artistic Samplers

  • res_multistep: Applies restarts during denoising for richer style changes.
  • res_multistep_ancestral: More chaotic cousin. Better for surrealism.
  • re_multistep_ancestral_cfg_pp: If you must marry surrealism and prompt obedience.

🧮 Math Nerd Specials

  • gradient_estimation: Gradient-based logic. Use when nothing else aligns.
  • gradient_estimation_cfg_pp: Adds prompt handling, but slow. Niche.

🤖 Oddballs

  • er_sde: SDE (Stochastic Differential Equation) method. Balanced but slow.
  • seeds_2, seeds_3: Basically undocumented, possibly used internally or experimentally. Avoid unless testing.

🔥 What-Not-To-Do-Unless-You-Want-a-Fire

  1. Using lcm with high steps.

    • Unless you're doing AI archaeology, LCM should be used at 4–6 steps. Higher values just waste time and return mushy nonsense.
  2. Combining samplers and schedulers randomly.

    • Yes, technically you can combine euler with karras, but also technically, you can eat soup with a fork. Stick to the scheduler designed for the sampler, or expect... unpredictable spaghetti.
  3. Assuming GPU samplers work on CPU.

    • *_gpu versions are not friendly with CPUs. Expect crashes, freezes, or your PC trying to roast marshmallows with its fan.
  4. Trying gradient_estimation for casual generations.

    • If you like waiting 30 minutes for an image that looks like the same image every other sampler does in 30 seconds… be my guest.
  5. Using experimental samplers in client work.

    • ipndm, ipndm_v, and seeds_* are not production-safe unless you enjoy gambling with broken renders mid-batch.
  6. Using high-CFG samplers (*_cfg_pp) with lazy prompts.

    • These samplers expect detailed, descriptive prompts. If you feed them “portrait of woman,” expect an AI-generated meme instead of a masterpiece.
  7. Assuming “ancestral” means “better.”

    • It means “more chaotic.” Sometimes that works. Sometimes it gives you spider limbs.
  8. Ignoring your VRAM budget.

    • Samplers like dpmpp_3m_sde_gpu will happily devour 12GB+ of VRAM like it’s brunch. Don’t say we didn’t warn you.

🧪 Best Pairings

SamplerSchedulerSuggested StepsNotes
dpmpp_2m_cfg_ppkarras25–35Excellent balance of speed/detail
uni_pckarras20–30Works well across styles
lcmlcm4–6Ultra fast, only with LCM-ready models
ddimexponential20–30Great for soft, coherent results
euler_ancestralsimple20–40Artistic, textured output

Want to learn more about schedulers? Check out even more documentation here!

💥 Summary

Choosing the right sampler_name is like picking the right brush for your AI-generated masterpiece. If you’re running basic txt2img? Euler or DDIM. Want hyper-realism? Go dpmpp_2m_cfg_pp. Want it now and fast? lcm is your guy.

Just don’t pick gradient_estimation_cfg_pp and wonder why your render time rivals the development of Elden Ring.