Nodes/ComfyUI Inspire Pack/Float Range (Inspire)
ComfyUI Node Runs on cloud

Float Range (Inspire)

A list of evenly-stepped floats for sweeps and XY plots

By ltdrdata·Created 3 years ago·Updated 11 months ago· 819
Float Range (Inspire)
    • FLOAT
    ◄start0►
    ◄stop1►
    ◄step0►
    ◄limit100►
    ◄ensure_endtrue►

    If you've ever wanted to test denoise at 0.3, 0.4, 0.5, 0.6, 0.7 without wiring five separate values by hand, this is your node. Float Range is Python's range() for floats: give it a start, a stop, and a step, and it produces a list of evenly-spaced numbers. Because it outputs a list, ComfyUI will then run your workflow once per value automatically - which makes it the backbone of parameter sweeps.

    That's the real use. You want to see how CFG from 4 to 9, or IP-Adapter weight from 0.4 to 0.9, changes an image. Feed a Float Range into that parameter and let ComfyUI iterate. Pair it with a List Counter to label each result and you've got a tidy sweep with zero manual fiddling.

    How it works

    It walks from start toward stop, adding step each time, collecting the values into a list. There's a safety cap so a tiny step can't accidentally generate a million values, and an option to force the final value to land exactly on stop instead of stopping just short. The list it emits is a genuine ComfyUI list, which is what triggers the per-value repeated execution downstream.

    The inputs and outputs that matter

    • start (default 0) - the first value.
    • stop (default 1) - where the range ends.
    • step (default 0.01) - the increment between values. Smaller step = more values = more generations, so mind the count.
    • limit (default 100) - the maximum number of values the node will produce, a guardrail against a too-small step blowing up into thousands of runs. If your range plus step would exceed this, it's capped here.
    • ensure_end (default on) - when on, the last item in the list is forced to be exactly stop. Without it, floating-point stepping often stops a hair short (you'd get ...0.98, 0.99 but not a clean 1.0). Leave it on unless you specifically want the raw stepping.

    The single output is FLOAT, and it's a list (not a single number). That list-ness is the whole point - it's what makes downstream nodes iterate.

    How to install it

    ComfyUI Manager: search ComfyUI Inspire Pack, install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ltdrdata/ComfyUI-Inspire-Pack
    

    then restart. Dr.Lt.Data's pack (ComfyUI-Manager, Impact Pack).

    Common issues & troubleshooting

    It only ran once instead of sweeping. The downstream node has to actually accept a list and iterate. Most native widgets do when fed a list input, but if a node collapses the list to its first element, you'll get a single run. Check that the parameter you're feeding is wired as a proper input (converted from a widget) and that nothing between here and there is flattening the list.

    Fewer values than I expected. That's limit doing its job. A start/stop/step combination that would produce more than limit values gets truncated. Raise limit, or use a bigger step.

    The range never reaches the end value. Floating-point stepping is imprecise, which is exactly why ensure_end exists - turn it on and the final value snaps to stop. If it's already on and you're still short, your step might be dividing the range unevenly; that's fine, ensure_end still appends the clean endpoint.

    step of 0 hangs or errors. A zero step can't advance the range. Give it a real positive increment.

    Huge number of generations kicked off. You set a small step over a wide range. Each value is a full generation, so 0 to 1 at step 0.01 is 100 runs. Sanity-check (stop - start) / step before you queue it.

    CategoryInspirePack/List

    Inputs (5)

    NameTypeDefaultDescription
    startFLOAT0-100–100—
    stopFLOAT1-100–100—
    stepFLOAT00–100—
    limitINT1002–4096—
    ensure_endBOOLEANtrue—

    Outputs (1)

    NameTypeDescription
    FLOATFLOAT—