Nodes/ComfyUI-ClybsChromaNodes/SamplerClyb_GeomExtrap
ComfyUI Node

SamplerClyb_GeomExtrap

Three evals per step, for when quality beats speed

By Clybius·Created about a year ago·Updated about a month ago· 13
SamplerClyb_GeomExtrap
    • SAMPLER
    eta1.00
    s_noise1.00
    sigma_calcclyb

    Every sampler in this pack is a bet on a different trade. TaylorFlow bets you can re-use history to act smarter than one evaluation per step; the BDF sampler bets on a midpoint + linear algebra. GeomExtrap bets on spending the compute: three model evaluations per step, using two geometric midpoints to build a quadratic extrapolation of the denoised prediction. It's the expensive member of the family, and it's the one you reach for when you've got a nice image and you want to wring the last drop of coherence out of a low step count.

    How it works

    The name is the whole game - it's extrapolation through geometry rather than polynomial history. Between your current sigma and the target sigma_down, the sampler picks two geometric midpoints (square roots, not averages) and does this per step:

    1. Evaluate the model at the current sigma.
    2. Integrate to the first geometric midpoint, evaluate there.
    3. Linearly extrapolate through those two denoised predictions to estimate sigma_down.
    4. Integrate to the second geometric midpoint, evaluate there.
    5. On all but the final step, run a three-point quadratic extrapolation through the three denoised points and integrate that into the latent. The final step (where sigma_down collapses to 0) just integrates the last prediction directly, since the quadratic degenerates.

    Same math lineage as the rest of the pack: flow models (Chroma, FLUX, SD3) are detected automatically and get the flow-aware ancestral update.

    The inputs that matter

    • eta (default 1.0) - ancestral stochasticity; 0 is deterministic, 1.0 is the author's tuned default.
    • s_noise (default 1.0) - noise scaling, leave it.
    • sigma_calc (default clyb) - the four ancestral-sigma modes shared with TaylorFlow: clyb (log-based, default), taylor-expansion, ancestral (stock k-diffusion), and adaptive (cuts noise as the denoised history converges).

    Output is a SAMPLER for a KSampler's sampler input; it's also registered as the string geom_extrap in the standard sampler dropdown.

    The honest take

    Three evals per step is genuinely slow - on a big flow model this is the sampler you run while you go make tea. The argument for it is that high-order accuracy buys you quality at low step counts: 8 steps at 3 NFEs each is ~24 evaluations, but with far better trajectory fidelity than a stock Euler at 24 steps. If your only goal is fastest good image, pick something else from this pack. If you've got a stubborn composition that blurs or drifts at low steps, this is worth the wait.

    Installing

    Same pack, same story:

    cd /path/to/ComfyUI/custom_nodes
    git clone https://github.com/Clybius/ComfyUI-ClybsChromaNodes.git
    # restart ComfyUI
    

    Or ComfyUI Manager → search "ComfyUI-ClybsChromaNodes". No extra dependencies, no model downloads - it's pure code from the same author who maintains the Chroma-GGUF quantizations.

    Common issues

    Don't A/B it against another sampler at the same step count and call it a fair fight - it's doing three times the work per step. Compare on quality-per-compute instead. And because eta > 0 makes it ancestral, changing steps changes the image, so keep your seed fixed while you tune.

    Categorysampling/custom_sampling/samplers

    Inputs (3)

    NameTypeDefaultDescription
    etaFLOAT1.000–100Ancestral sampling stochasticity (0=deterministic, 1=full stochastic)
    s_noiseFLOAT1.000–100Noise scaling factor
    sigma_calcCOMBOclybAncestral sigma calculation method: clyb (original log-based), taylor-expansion (exponential+quadratic), ancestral (standard k-diffusion), adaptive (history-based convergence-aware)

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER