ComfyUI Node

Sampler SEEDS_2 Sharp

The sampler-sweep dark horse, plus one dial nobody has benchmarked

By envy-ai·Created 25 days ago·Updated 10 days ago· 6
Sampler SEEDS_2 Sharp
    • SAMPLER
    ◄solver_type▾►
    ◄eta1.00►
    ◄s_noise1.00►
    ◄r0.50►
    ◄sharpness0.15►

    Why anyone cares about SEEDS_2

    Here's the short version of how SEEDS_2 got a fan club: when someone ran a 62-sampler × 16-scheduler sweep on Z-Image Turbo - about a thousand images, the most systematic comparison in the community corpus - the one-line summary of what won was "Seeds_2, euler_ancestral or dpmpp_sde(_gpu) together with any scheduler but karras or exponential." Not DPM++ 2M. SEEDS_2.

    It's a stochastic exponential integrator - the citation is "Stochastic Exponential Integrators for Diffusion Models" (arXiv 2305.14267) - and ComfyUI ships it natively. It takes a partial step to an intermediate point on the trajectory, asks the model what it sees there, and combines both predictions. Two model evaluations per step, better trajectory estimate, less of the mush single-eval solvers leave in the last third of a run.

    This node is the manual-controls version of that sampler, with an experimental knob bolted on. Same pack as Sampler DPM++ 2M Sharp - same author, same install, same "no benchmark included" honesty.

    What "Sharp" adds, mechanically

    Native SEEDS_2 combines the current prediction with the intermediate one and blends them. This variant computes a ramp, 1 + sharpness * (i / N)^2, and subtracts a scaled slice of the first-stage prediction out of that blend - a weight difference of fac * (adjustment - 1) * denoised in the phi_1 path, or b2 * (adjustment - 1) * denoised under phi_2. The intermediate predictor is left exactly as SEEDS_2 computes it.

    Because the ramp is quadratic in step progress, early steps are barely touched and the effect piles up near the end, where you're deciding the fine detail. At sharpness = 0.0 the correction term is skipped entirely, which means this node matches native SEEDS_2 exactly - the README says so and the source agrees. That makes 0.0 a real baseline rather than an approximate one, which is rare and useful.

    What it doesn't touch: the model-call count, the final zero-sigma denoising step, or the seeded noise. This is a pure blend-weight tweak. And the author says outright it's experimental and has not been comparatively benchmarked, which is why the honest recommendation is "try it at 0.15 against 0.0 on a fixed seed and decide for yourself."

    The inputs that matter

    All five inputs are exposed here, which is the main reason to use this node instead of the seeds_2_sharp entry in the other node's dropdown - you only get sharpness there.

    solver_type picks phi_1 or phi_2, the order of the exponential-integrator coefficients used to combine the two predictions. phi_1 is the default behaviour; phi_2 weights the intermediate prediction using both phi_1 and phi_2 terms and is the more "second-order" of the two. Cheap thing to A/B.

    sharpness (default 0.15) is the new dial, described above. Go slow - the accepted range runs to 100, and past roughly 1 you're not sharpening, you're cooking.

    eta (default 1.0, "Stochastic strength"). The one to reach for when you want reproducibility: eta = 0.0 turns off injected noise and gives deterministic sampling, same seed same image. Above zero it's stochastic, which is where SEEDS_2's reputation comes from.

    s_noise (default 1.0, "SDE noise multiplier") scales that injected noise on top of the model's own noise_scale. Grainy or muddy output at high step counts usually traces here.

    r (default 0.5, "Relative step size for the intermediate stage (c2 node)") is where along the log-SNR interval the intermediate evaluation lands - 0.5 is halfway, lower values make the second evaluation a smaller probe.

    eta, s_noise and r are marked advanced in the schema, so they'll be collapsed under the node's advanced toggle. The output is a single SAMPLER - wire it into SamplerCustom or SamplerCustomAdvanced with your model, conditioning, latent and sigmas. This node replaces KSamplerSelect, nothing else.

    Install

    Same as the rest of the pack. Manager, search DPM++ 2M Sharp for Qwen Image 2.1, or:

    comfy node install dpmpp-2m-sharp
    

    Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/envy-ai/ComfyUI-DPMpp-2M-Sharp
    

    Restart ComfyUI. pyproject.toml declares no dependencies and there's no requirements file - it leans on the torch and tqdm ComfyUI already has - and there are no weights to download. seeds_2_sharp is also registered into ComfyUI's global sampler list on load, so it turns up in an ordinary KSampler dropdown too, with the native defaults frozen and sharpness at 0.15.

    Where people get stuck

    Nothing loads on an old ComfyUI. The pack imports comfy_api.latest; update ComfyUI if the node never appears.

    You're comparing against the wrong thing. If you benchmark this against dpmpp_2m_sharp and conclude SEEDS_2 Sharp is worse, you've compared two different solvers, not two sharpness settings. The baseline is sharpness = 0.0 on this node, fixed seed, everything else untouched.

    Two model calls per step. That's inherent to SEEDS_2, not something this pack added - a 20-step run costs 40 model evaluations. If your step time looks doubled, that's the receipt.

    It's stochastic and you didn't notice. With eta at its default 1.0, the same seed gives you a different image after any other change, including sharpness. Set eta = 0.0 when you're isolating variables, then put it back.

    A workflow won't load. Missing-node errors are the usual cause - the class is SamplerSEEDS2Sharp and the pack has to be installed. Manager → Install Missing Custom Nodes.

    And the honest caveat: the author's own README states this variant "has not been comparatively benchmarked." SEEDS_2 itself has community evidence behind it. The sharpening of it does not, yet. Treat 0.15 as a starting point someone chose, not a tuned value.

    Categorymodel/sampling/samplers

    Inputs (5)

    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)
    sharpnessFLOAT0.150–100Progressively scales the first prediction in the stage difference. 0 matches native SEEDS_2.

    Outputs (1)

    NameTypeDescription
    SAMPLERSAMPLER—