Number Range
Generate a list of numbers to sweep a value across a run
- int_range
- float_range
This node generates a sequence of numbers - a start, an end, and a step - just like Python's range(). Give it 1, 10, 1 and you get 1, 2, 3, … up toward 10. The point isn't the numbers themselves; it's that the output is a list, and in ComfyUI a list makes the downstream branch run once per value. That's how you sweep a parameter without queuing ten separate prompts by hand. In the menu it's Number Range.
If you've ever wanted to see the same seed at cfg 4, 5, 6, 7, 8 in one go, or step a value across a range to find the sweet spot, this is the node that feeds that.
How it works
It builds the sequence from start to end in increments of step and outputs it as a list. Because both outputs are marked as lists, wiring one into an input that expects a single number triggers ComfyUI's list execution: the node graph downstream runs once for each item in the list. Five numbers in the list means five executions, five images. That's the whole mechanism, and it's more powerful than it looks - it turns one queued prompt into a parameter sweep.
The inputs and outputs that matter
start- the first value.end- where the sequence heads toward.step- the increment. It's an integer with a minimum of 1, so no fractional steps.
Outputs: int_range (a list of INTs) and float_range (the same sequence as FLOATs). Pick whichever type the input you're feeding wants - a float parameter like cfg takes float_range, an integer like step count takes int_range.
Installing it
ComfyUI Manager: search ComfyUI_Nimbus-Pack, install, restart. Small pack - if it's not listed, clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack.git
pip install -r ComfyUI_Nimbus-Pack/requirements.txt
Restart. Pure Python, no models. The requirements.txt is for the pack's video node.
Common issues & troubleshooting
Suddenly everything runs N times. That's the list doing its job - and it's a shock the first time. Because the output is a list, the entire downstream branch executes once per value. If you plugged this into a KSampler's cfg and got eight renders, that's eight cfg values being swept, exactly as intended. If you only wanted one number, this is the wrong node.
The step won't go fractional. step is an integer with a floor of 1, so you can't ask for 0.5 increments directly, even though there's a float_range output - that output is your integer sequence cast to floats, not a finer grid. To sweep, say, cfg from 4 to 8 in half-steps, you'd generate 8–16 with step 1 and divide by 2 downstream (the pack's Math Operation node can do the divide).
Check whether the endpoint is included. Whether end itself lands in the list depends on the implementation; the safe move is to eyeball the count on a small range first, then trust it. Off-by-one at the end of a range is the classic surprise with any range generator.
Downstream node can't take a list. Not every input accepts list execution cleanly. If a node errors when fed the range, it doesn't support being run per-item that way - sweep a parameter that does, like a sampler's cfg, steps, or seed.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| start | INT | 1-100000–100000 | — |
| end | INT | 10-100000–100000 | — |
| step | INT | 11–100000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| int_range | INT | — |
| float_range | FLOAT | — |