π CR Value Cycler
Build a repeating sequence of numbers for animation and scheduling
- FLOAT
- INT
- show_text
CR Value Cycler takes a short list of values and expands it into a longer repeating sequence - the kind of thing you feed a batch or an animation where each frame wants the next value in a pattern. Type a few numbers, tell it how many times to repeat each one and how many times to loop the whole set, and it fans them out into a list you can drive downstream.
It lives in the same corner of Comfyroll as the schedulers and cyclers used for animation work. If you're stepping a parameter across frames in a cyclic pattern rather than a straight ramp, this is the generator for it.
How it works
You give it newline-separated values plus two counts. It reads your values, repeats each one repeats times, then repeats that whole expanded block loops times, and emits the result as a list. Because ComfyUI lists drive one execution per element, wiring this into a batch means each run picks up the next value in the cycle. It outputs the sequence as both floats and ints so you can plug it into whichever numeric input you're animating.
The inputs and outputs that matter
values(multiline STRING) - your source values, one per line.repeats(INT, default 1) - how many times each individual value repeats before moving to the next.loops(INT, default 1) - how many times the whole expanded set cycles.
Outputs:
FLOATandINT- the generated sequence, as lists. Use whichever type your target wants.show_text(STRING) - the sequence rendered as text, useful for sanity-checking what you actually built.
Installing it
Comfyroll Studio (Suzie1 / RockOfFire) is a large, established utility pack. Via ComfyUI Manager: search "Comfyroll Studio," install, restart. Or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git
then restart. No models, no dependencies.
Common issues
Wire show_text into a display node while you set this up - the interaction of repeats and loops is easy to get wrong, and seeing the actual expanded sequence saves you guessing. Total length is (number of values x repeats x loops), so those two multipliers grow the list fast.
Keep the values clean and one per line; a blank line or stray character can become an unexpected entry. And mind the INT output with fractional values - it'll truncate, so read the FLOAT output when you need decimals. This produces a cyclic pattern; if you want a smooth ramp from A to B instead, you want an interpolation/gradient node, not a cycler. If the pack won't load at startup with a traceback, reinstall it cleanly through Manager.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| values | STRING | β | |
| repeats | INT | 11β99999 | β |
| loops | INT | 11β99999 | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | β |
| INT | INT | β |
| show_text | STRING | β |