Nodes/SP-Nodes/SP_FluxUnsampler_ForwardODESampler
ComfyUI Node

SP_FluxUnsampler_ForwardODESampler

The controlled-forward-ODE settings behind SP-Nodes' unsampling

By bananasss00·Created 2 years ago·Updated 10 days ago· 20
SP_FluxUnsampler_ForwardODESampler
    • flux_unsampler_sampler
    gamma0.50
    eta0.90
    start_step0
    end_step9
    eta_trend
    seed0

    This node doesn't sample anything by itself - it produces a flux_unsampler_sampler config object that plugs into the pack's SP_FluxUnsampler node, which does the actual work. What it configures is a specific technique: "unsampling," running a diffusion model's ODE forward instead of backward to push a real image toward noise along a controlled path, so a second, forward pass can regenerate it under a new prompt while keeping the original composition. It's a genuine, community-established Flux technique - people reach for it (and its cousin RF-Inversion) specifically because a plain low-denoise img2img can regenerate the source image but "fails to do anything else" once you push past small changes, where a properly controlled unsampling pass holds prompt adherence while still staying anchored to the source.

    The parameter names here - gamma, eta, with tooltips reading "the paper leaves this at 0.5" and "the paper does not decrease this below 0.7" - line up closely with the RF-Inversion paper's controlled forward-ODE formulation, which uses exactly those two terms to interpolate between deterministic and stochastic inversion. That's a reasonable read of where this implementation comes from, though the node itself doesn't cite anything by name - treat the RF-Inversion connection as an informed inference rather than a stated fact.

    How it works

    gamma and eta control the character of the forward pass - gamma at the paper's suggested 0.5, eta as the strength of the guidance pulling the trajectory back toward controlled behavior rather than pure noise. start_step/end_step restrict that guidance to a window of steps rather than the whole pass (the tooltip is explicit that end_step is not inclusive), and eta_trend lets that guidance strength ramp up, ramp down, or stay flat across the window instead of being a single flat number the whole way through.

    Inputs and outputs

    • gamma (FLOAT, default 0.5, tooltip: "the paper leaves this at 0.5") - leave it alone unless you're deliberately experimenting.
    • eta (FLOAT, default 0.9, tooltip: "the strength of the guidance. The paper does not decrease this below 0.7") - the main knob; the tooltip itself is telling you the safe floor.
    • start_step / end_step (INT, defaults 0 / 9) - the step window guidance applies over; the end is exclusive.
    • eta_trend (enum, required: constant, linear_increase, linear_decrease) - how eta changes across that window.
    • seed (optional, INT, default 0).
    • Output: flux_unsampler_sampler - feed this straight into SP_FluxUnsampler's matching input; it has no other use on its own.

    Installing it

    ComfyUI Manager - search "SP-Nodes", install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
    

    then restart ComfyUI.

    Common issues

    This node alone does nothing visible. It only produces a config object - you need SP_FluxUnsampler downstream actually consuming flux_unsampler_sampler for any of this to affect an image. If your graph seems to ignore these settings entirely, check that connection first.

    Pushing eta below the paper's floor breaks reconstruction. The tooltip's own warning ("the paper does not decrease this below 0.7") is worth respecting - go lower and, per how this class of technique generally behaves, expect the unsampled/resampled result to drift away from the source image rather than staying anchored to it.

    Widening start_step/end_step over the whole run changes character, not just strength. Since end_step is exclusive and the trend can ramp, small changes to this window shift where in the sampling process the guidance is strongest - worth adjusting one variable (window vs. eta vs. eta_trend) at a time rather than several together, or it gets hard to tell which change caused which result.

    CategorySP-Nodes/Group Nodes

    Inputs (6)

    NameTypeDefaultDescription
    gammaFLOAT0.500–100the paper leaves this at 0.5
    etaFLOAT0.900–100the strength of the guidance. The paper does not decrease this below 0.7
    start_stepINT00–1000the step that the sampler starts guiding the sampling towards the image in "latent_image"
    end_stepINT90–1000the last step for guiding the sampling (not inclusive)
    eta_trendCOMBOhow the eta should increase/decrease/stay constant between start_step and end_step
    seedoptINT00–18446744073709550000

    Outputs (1)

    NameTypeDescription
    flux_unsampler_samplerflux_unsampler_sampler