Nodes/ComfyUI/SamplerEulerAncestral
ComfyUI Node Runs on cloud

SamplerEulerAncestral

The sampler that never settles down — and that's the point

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 130,947
SamplerEulerAncestral
    • SAMPLER
    eta1.00
    s_noise1.00

    If you came from Automatic1111, you know this one as Euler a - the sampler everyone's anime LoRA card told you to use at 25-35 steps. In ComfyUI's custom-sampling pipeline it's SamplerEulerAncestral, a bare building block that outputs a SAMPLER you feed into SamplerCustomAdvanced. Same math, same personality: it adds fresh noise at every step, which means it never fully converges. Same seed, add a few steps, and you get a variation, not a refinement. That's not a bug - it's the whole reason people reach for it.

    How it works

    Each step does a plain Euler jump, but not all the way to the next sigma. ComfyUI's get_ancestral_step splits the step into a clean sigma_down (where the Euler step actually lands) and a leftover sigma_up - the extra noise this sampler injects. The result is the classic formula x + d*dt + noise*s_noise*sigma_up: take the step, then sprinkle fresh noise on top.

    Two knobs control the sprinkle:

    • eta (default 1.0, 0-100) - how much extra noise each step carries. This is the ancestral-ness dial. Crank it and you get more variation but rougher texture; drop it toward 0 and you're converging on plain Euler.
    • s_noise (default 1.0, 0-100) - a plain multiplier on that injected noise. 0 makes it effectively deterministic.

    That's the whole node. One SAMPLER output, wired to SamplerCustomAdvanced's sampler input. One detail worth knowing: on flow-matching models (Flux, Z-Image) ComfyUI quietly swaps the inner math for an RF variant of the same idea, so you can't read too much into tiny parameter changes across model families.

    Why you'd actually use it

    Ancestral samplers have one superpower: cheap variations. Find a seed you like with a fast converging sampler, then bump the step count and the image drifts into something related but different - a trick the community has been using since 2022. It's also still the house style on SDXL anime checkpoints, where "Euler a" at 25 steps is a family convention.

    Where people get burned

    • It never settles. Changing steps changes the image instead of polishing it, so it's useless for A/B testing one setting. For that you want a converging sampler like SamplerLMS or DPM++ 2M.
    • It's not for distilled models. Turbo/Lightning/LCM checkpoints were trained on a fixed schedule; an ancestral sampler feeding them random noise per step is a recipe for artifacts. Give those a SDTurboScheduler or dedicated schedule instead.
    • Don't crank eta blindly. The 1.0 default is already strongly stochastic; going to 2+ on a photoreal model just adds grain. It's an advanced input for a reason.

    You won't need to install anything - it ships with ComfyUI core. If a downloaded workflow shows a sampler you don't recognize, this is usually the one hiding under the hood.

    Categorymodel/sampling/samplers

    Inputs (2)

    NameTypeDefaultDescription
    etaFLOAT1.000–100
    s_noiseFLOAT1.000–100

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER