Nodes/ComfyUI-Adept-Sampler/Adept Ancestral Sampler
ComfyUI Node

Adept Ancestral Sampler

Euler a with opinions about when it adds noise

By nawka12·Created 8 months ago·Updated 4 months ago· 4
Adept Ancestral Sampler
    • SAMPLER
    eta1.00
    s_noise1.00
    adaptive_etafalse
    phase_noisefalse
    enhanced_derivativefalse
    phase_strength0.5
    use_detail_enhancementfalse
    detail_strength0.05
    detail_radius0.5
    adaptive_noisefalse

    Plain Euler ancestral adds the same amount of noise at every step, forever. This sampler's whole thing is that noise timing is a decision, not a constant. It's an enhanced version of Euler ancestral that reshapes when and how much noise it injects as denoising progresses - more creative early, tighter mid-run, and it tries not to overshoot the cleanup phase at the end.

    The mechanism is layered on top of the standard ancestral step. The core loop is the usual sigma_up / sigma_down split with a noise sample scaled by s_noise, but three toggles change how that plays out:

    • adaptive_eta - instead of using your eta value blindly, it phases it: 8% hotter in the first 30% of steps, 5% cooler through the middle, slightly up again at the end. If you've ever felt like Euler a is either too chaotic or too flat, this is the knob that splits the difference automatically.
    • phase_noise - a scheduled multiplier on s_noise that nudges noise injection up slightly early and tapers it late, with phase_strength controlling how far the multiplier gets to move from 1.0.
    • enhanced_derivative - swaps the plain derivative for an ancestral-specific correction that's aware of the current phase and eta.

    There's also the pack's shared adaptive_noise toggle, which watches the model during a warmup pass, measures whether your s_noise is over- or under-shooting, then restarts generation with a per-phase correction. Handy when a model is unusually sensitive to noise, but know that it doubles effective runtime because the first pass is throwaway calibration.

    The detail-enhancement options (use_detail_enhancement, detail_strength, detail_radius) wrap the model so the sampler can boost fine detail - but they only activate if torchvision is importable, which it usually is in a ComfyUI install. Leave them off until you've dialed in the basics; they add a wrapper and another knob to fight with.

    Everything is optional except the basics: eta (default 1.0, 0 = deterministic), s_noise (default 1.0), and the three booleans. Output is a SAMPLER socket that feeds the sampler input of SamplerCustom.

    Where it fits: the README's recommendation for epsilon-prediction models is AOS-ε scheduler + this sampler at eta=1.0, adaptive_eta=on. That's a solid creative/anime pairing - the non-converging nature gives you variety across seeds, and the adaptive bits keep it from getting mushy. If your images come out too noisy or too samey, adaptive_eta is the first thing to flip, not eta itself.

    Install is the whole-pack one:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nawka12/ComfyUI-Adept-Sampler
    

    Restart, or grab it via ComfyUI Manager by searching "ComfyUI-Adept-Sampler". No requirements.txt, no model files, pure Python - the pack is a port of a reForge extension and installs in seconds. It'll print a 🚀 line to the console every run; that's the pack's personality, not a problem.

    The honest take: this is the sampler for people who already like Euler a's chaos and want a slightly smarter version of it. If you want converging, reproducible output, this isn't it - look at Adept Solver instead. But for exploration passes, the phase-aware noise genuinely does feel less finicky than raw Euler a at low step counts.

    Categorysampling/adept/samplers

    Inputs (10)

    NameTypeDefaultDescription
    etaFLOAT1.000–2
    s_noiseFLOAT1.000–2
    adaptive_etaBOOLEANfalse
    phase_noiseBOOLEANfalse
    enhanced_derivativeBOOLEANfalse
    phase_strengthoptFLOAT0.50–1
    use_detail_enhancementoptBOOLEANfalse
    detail_strengthoptFLOAT0.050–1
    detail_radiusoptFLOAT0.50.1–2
    adaptive_noiseoptBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER