Nodes/ComfyUI-SEEDS3Sampler/SEEDS-3 Sampler (eta control)
ComfyUI Node

SEEDS-3 Sampler (eta control)

The grain is seeds_3's noise term — this node lets you turn it off

By lookuters22·Created 3 months ago·Updated 3 months ago· 0
SEEDS-3 Sampler (eta control)
    • SAMPLER
    eta0.00
    s_noise1.00
    r_10.33
    r_20.67

    ComfyUI's seeds_3 sampler is genuinely good at holding an image together - it's the order-3 SEEDS exponential SDE solver, and it preserves composition and text remarkably well at high denoise. That's why it keeps showing up in refiner and upscale workflows. But there's a catch the docs never tell you: the grain is baked in. Every stochastic SDE sampler re-injects noise as it goes, and seeds_3 is the most aggressive of the lot - people's informal sampler taxonomy literally buckets it in the "3x" noise-reinjection tier alongside heunpp, one step worse than seeds_2's 2x. ComfyUI ships a configurable node for seeds_2 (SamplerSEEDS2), but none for seeds_3, so if you pick seeds_3 from the KSampler dropdown you're stuck at eta=1, s_noise=1 - full-strength noise injection, every time, which reads as grain on smooth surfaces.

    This single-node pack fixes exactly that hole. It wraps the public comfy.samplers.ksampler("seeds_3", ...) API and hands you the stochasticity knobs that ComfyUI never exposed.

    How it works

    In comfy/k_diffusion/sampling.py, sample_seeds_3 gates all of its noise injection on one line:

    inject_noise = eta > 0 and s_noise > 0
    

    Set eta = 0 and every stochastic term collapses. seeds_3 stops being an SDE solver and runs as a clean, fully deterministic third-order exponential ODE solver - you keep its high-denoise structure preservation and text fidelity, and the grain simply stops existing. Same seed, same pixels, every run. The solver does the work of holding composition together, so you can run a tiled refine at denoise 0.35+ without the usual composition drift. The README's pitch is a detail-injection refiner: SEEDS-3 Sampler (eta=0) → feed its SAMPLER into something like Detail Daemon → into UltimateSDUpscaleCustomSample, with an ays scheduler, so micro-detail comes from deterministic detail injection instead of noise.

    The inputs that matter

    Four inputs, and only one you'll touch most days:

    • eta (default 0.0) - the whole reason this node exists. 0 = deterministic, no grain. Raise it if you actually want stochastic texture or variety in a region; the price is grain.
    • s_noise (default 1.0) - SDE noise multiplier. Does nothing until eta > 0.
    • r_1 / r_2 (defaults 0.333 / 0.667) - positions of the two intermediate stages along the trajectory. Leave them alone unless you know why you're moving them.

    The single output is a SAMPLER, the same kind of object ComfyUI's own custom-sampler nodes produce - wire it into SamplerCustomAdvanced, or any third-party node with a SAMPLER input. One gotcha: this only works in the custom sampling flow. The KSampler dropdown's seeds_3 still runs at its hard-coded defaults no matter what you set here, because the dropdown doesn't take an external sampler.

    Install

    It's a two-file package with no requirements.txt, no model downloads, no dependencies - it only calls the public sampler API, which is why the whole thing is so small and safe to eyeball before installing. Via ComfyUI Manager, search "ComfyUI-SEEDS3Sampler". Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/lookuters22/ComfyUI-SEEDS3Sampler
    

    Restart ComfyUI and you'll find the node under sampling/custom_sampling/samplers. MIT licensed.

    Where people get burned

    Two things, both real and both out of your control: it's slow, and it's noisy at defaults. On a 50-step Chroma comparison, seeds_3 took over an hour for a grid that every other sampler did in ~30 minutes, and at 50 steps on an Ernie base model people report ~12 minutes per image. That slowness is inherent to a 3rd-order solver, not a bug in this node. The noisiness is the whole reason to set eta = 0. If you're seeing speckle and it's set to 1, you found the knob - that's the feature.

    Categorysampling/custom_sampling/samplers

    Inputs (4)

    NameTypeDefaultDescription
    etaFLOAT0.000–100Stochastic strength. 0.0 = fully deterministic (no injected grain). Raise for more stochastic texture/variety at the cost of grain.
    s_noiseFLOAT1.000–100SDE noise multiplier. Only has an effect when eta > 0.
    r_1FLOAT0.330.01–0.99First intermediate stage position (default 1/3).
    r_2FLOAT0.670.01–0.99Second intermediate stage position (default 2/3).

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER