Nodes/ComfyUI/SamplerSEEDS2
ComfyUI Node Runs on cloud

SamplerSEEDS2

One solver, three samplers in a trench coat

By Comfy-Org·Created 4 years ago·Updated about 11 hours ago· 130,663
SamplerSEEDS2
    • SAMPLER
    solver_type
    eta1.00
    s_noise1.00
    r0.50

    SamplerSEEDS2 is a second-order exponential SDE solver, and it's the rare node whose own description is the best explainer. It can represent three named samplers depending on how you set it: seeds_2 (the defaults), exp_heun_2_x0, and exp_heun_2_x0_sde. SEEDS stands for Stochastic Explicit Exponential Derivative-free Solvers - it's the family behind the "exponential Heun" samplers, aimed at getting high-quality output in relatively few steps on DDPM-style (SD 1.5/SDXL) models. If you've been meaning to try the fancy solver class that everyone keeps mentioning, this is the built-in door into it.

    How it works

    Regular samplers integrate the denoising ODE with polynomial approximations (Euler is a first-order one, DPM++ is fancier polynomial fitting). SEEDS instead treats the noise decay as exponential - which it literally is in log-SNR space - and integrates it with exponential integrators (the ei_h_phi functions in the source). That's a mathematically more honest way to step down a noise schedule, and it's why these solvers get good results at fewer steps.

    The node's parameters:

    • solver_type (phi_1 / phi_2) - the order of the exponential integrator. phi_2 is the higher-order one and what you'll want for quality; phi_1 is the simpler fallback.
    • eta (default 1.0, tooltip "Stochastic strength") - how much stochastic noise to inject. 0 makes it deterministic.
    • s_noise (default 1.0, "SDE noise multiplier") - scales that injected noise.
    • r (default 0.5, "Relative step size for the intermediate stage (c2 node)") - where the solver places an intermediate denoise within each step. It does two model passes per step, and r decides how far in the intermediate one sits.

    The three presets it can reproduce, straight from the node's description:

    | Sampler | solver_type | r | eta | s_noise | |---|---|---|---|---| | seeds_2 (default) | phi_1 | 0.5 | 1.0 | 1.0 | | exp_heun_2_x0 | phi_2 | 1.0 | 0.0 | - | | exp_heun_2_x0_sde | phi_2 | 1.0 | 1.0 | 1.0 |

    Output is a single SAMPLER for SamplerCustomAdvanced.

    Why you'd reach for it

    You're chasing quality at modest step counts on an SD-family model and you've already gone through the usual suspects. exp_heun_2_x0 (set solver_type=phi_2, r=1.0, eta=0) is the deterministic one that gets compared favorably to DPM++ class samplers. It also does two model evaluations per step, so it's more expensive than the step count alone suggests - that's not a bug, that's the cost of the second-order method.

    Where people get burned

    • It's a solver, not a drop-in default. On flow-matching models (Flux, Z-Image) most of the exponential-in-log-SNR cleverness doesn't transfer the same way; the sampler knowledge base keeps Euler-family on those. Treat SEEDS as an SDXL/SD 1.5 tool.
    • phi_2 costs double. Two forward passes per step. If you were expecting 20 steps to feel like 20 steps, it won't.
    • Don't set eta and s_noise blind. The defaults are tuned for the SDE variant; for the deterministic exp_heun_2_x0 behavior both need to be 0.

    Ships with ComfyUI core - search "sde" or "exp heun" and it'll show up. It's a niche tool, but it's the good kind of niche: a real solver family with a real paper behind it, available with zero setup.

    Categorymodel/sampling/samplers

    Inputs (4)

    NameTypeDefaultDescription
    solver_typeCOMBO2 options: phi_1, phi_2
    etaFLOAT1.000–100Stochastic strength
    s_noiseFLOAT1.000–100SDE noise multiplier
    rFLOAT0.500.01–1Relative step size for the intermediate stage (c2 node)

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER