ComfyUI Node Runs on cloud

Number Range

The node that makes ComfyUI run a graph once per number

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Number Range
  • start
  • stop
  • ARRAY
  • NUMBER
  • floats
  • ints
  • count
mode
count10
step0.10
easing
endpointtrue
decimals6

Number Range is where half the interesting WAS Node Suite workflows start. It produces a series of numbers between start and stop - and because each number leaves on a list output, every node wired below it runs once per value. That one trick turns "type ten denoise values by hand" into "render ten frames," step a camera move, sweep a CFG, or build a 24-frame animation loop. It's the poor man's scheduler, and most of the time it's enough.

You've probably seen the pattern in someone else's graph already: a Number Range feeding a KSampler's denoise or a batch of frames, with the whole thing looping until the list runs out. This is the node doing that heavy lifting, dressed up as a simple calculator.

How it works

Set start and stop, then pick a mode. In count mode the node spreads exactly count values across the whole span - start 0, stop 1, count 10 gives 0, 0.1, 0.2 … 1. In step mode it walks by step instead, and the direction of the step is read from start-to-stop, so 0.1 and -0.1 behave the same.

A few details that will save you a confused five minutes:

  • endpoint decides whether the last value lands exactly on stop. Turn it off for a seamless animation loop - the last frame of a loop is the first frame of the next, so you don't want to render it twice.
  • easing redistributes the values in count mode: ease_in_out starts and ends slow, which is what makes a camera move look deliberate instead of mechanical. back and elastic overshoot past both ends on purpose.
  • decimals controls rounding. This is what keeps 0.30000000000000004 out of your filenames and logs.
  • count of 1 gives you start alone. A step of 0 stops with an error, because there's no sensible answer.

The outputs that matter

The NUMBER socket is the one beginners actually wire. It's a list - one NUMBER per value - so anything downstream runs once for each. That's the socket that drives a series of renders or frames. floats and ints carry the same values as decimals and whole numbers (ints are cut off, not rounded, so they're handy for seeds and frame numbers), and count tells you how many runs to expect.

The ARRAY output is the quieter half of the node: the whole series on one wire, for list nodes like Text List Get or for feeding Number Easing if you want to reshape it further. The trio Number Range → Number Easing → a sampler is the WAS-native way to write a denoise or strength schedule by hand.

Installing it

Number Range ships in WAS Node Suite v3 - search ComfyUI Manager for WAS Node Suite v3, or clone it manually:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui

Then restart ComfyUI. You need ComfyUI 0.14.0+ and Python 3.10+. This is the notable part: v3 installs nothing. No pip packages, no weights downloaded at startup. The original v2 of this pack shipped twenty dependencies and was notorious for breaking after ComfyUI updates; the 2026 v3 rewrite runs everything on torch and ComfyUI's own device, so the old "Import Failed" class of problem is gone. First startup just takes a second or two longer while it compiles.

Where people get burned

The two classic mistakes are leaving endpoint on for a loop (you render the join frame twice) and expecting step mode to end exactly on stop - a step that doesn't divide the span cleanly ends on the last whole step before it. And remember the outputs are lists: if a node downstream only takes a single number and it runs twenty times, that's the list semantics working as designed, not a bug.

CategoryWAS Suite/Number/Operations

Inputs (8)

NameTypeDefaultDescription
startFLOAT,NUMBER,INT0-1000000000–1000000000The first value of the series.
stopFLOAT,NUMBER,INT1-1000000000–1000000000The value the series runs to. Lower than start counts downwards, which is how a fade-out is written.
modeCOMBOWhat decides the values. `count` produces exactly that many, spread across the whole span, the mode to use when the number of frames is what is fixed. `step` walks from start towards stop by a fixed amount and produces however many values fit, for a series where the spacing is what matters.
countINT101–10000How many values to produce, read in `count` mode. A count of 1 gives start alone. Every node below this one runs this many times, so a large count is a large queue.
stepFLOAT0.10-1000000000–1000000000The gap between one value and the next, read in `step` mode. A step of 0 stops with an error.
easingCOMBOHow the values are distributed across the span, in `count` mode. `linear` spaces them evenly. Not read in `step` mode, where the spacing is fixed.
endpointBOOLEANtrueWhether the last value is exactly stop, in `count` mode. Turn it off for a seamless loop: the final frame of a loop is the first frame of the next pass, so emitting both repeats it.
decimalsINT60–12How many decimal places each value is rounded to. This is what keeps 0.30000000000000004 out of a filename or a log line. 0 rounds to whole numbers.

Outputs (5)

NameTypeDescription
ARRAYARRAYEvery value on one wire, for Number Easing, Text List Get, Text List Length and the other list nodes.
NUMBERNUMBEROne NUMBER per value. Because this is a list, a node reading it runs once for each. This is the socket that drives a series of renders.
floatsFLOATThe same values as decimals, one per run.
intsINTThe same values as whole numbers, cut off rather than rounded, one per run. For a step count, a frame number or a seed.
countINTHow many values were produced, which is how many times the graph below this node runs.