π CR Simple Value Scheduler
Drive a number by frame, no scheduling pipeline required
- INT
- FLOAT
- show_help
Comfyroll's animation system has a whole pipeline for this: CR Simple Schedule writes a typed SCHEDULE, CR Central Schedule merges several of them, CR Value Scheduler reads one back out. CR Simple Value Scheduler skips all of that. It's one node - type your frame/value pairs directly in, tell it what frame you're on, get a number back. If you've got a single value that needs to change over an animation and don't want to wire up three nodes to make that happen, this is the one you reach for.
How it works
The schedule box takes multiline text in the format the default placeholder hints at: frame_number, value, one keyframe per line, comma-separated. Something like:
0, 1.0
30, 2.5
60, 1.0
sets the value at 1.0, changes it at frame 30 to 2.5, and back to 1.0 at frame 60. Feed current_frame (0β9999) and the node reads through your lines and hands back whatever applies at that point. current_frame is normally wired from whatever's actually counting frames in your loop - CR Current Frame, or an external counter - not typed by hand before every render.
Both outputs fire off the same read: INT and FLOAT. That's a small but genuinely handy touch - you don't need a separate converter depending on whether the thing downstream wants an integer (a step count, a frame offset) or a float (denoise strength, CFG, a LoRA weight). Wire whichever socket needs it.
When to reach for this instead of CR Value Scheduler
They look alike and do overlapping jobs, but the Simple version is deliberately the lightweight one. CR Value Scheduler needs a SCHEDULE-typed input built somewhere else in the graph, is built to plug into CR Central Schedule for merging several schedules together, and carries a mode switch to fall back to a static default value when you're not scheduling at all. CR Simple Value Scheduler has none of that - no schedule_alias, no default-value fallback, no merge system, just text and a frame number. Reach for the Simple version when you have one number to animate on its own; reach for the full Value Scheduler once you're combining several parameter schedules into one coordinated animation.
Inputs and outputs that matter
schedule- yourframe_number, valuelines. This is the entire content of the node.current_frame- where "now" is in your animation.
Outputs: INT, FLOAT, and the standard show_help link to the pack's wiki.
How to install it
ComfyUI Manager - search "Comfyroll Studio", install, restart. Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart. No models, no extra dependencies - this is pure text parsing.
Common issues
If the value coming out looks wrong, check your schedule text first: a stray blank line, a missing comma, or a mistyped frame number throws off the read. Copy it somewhere you can eyeball it before assuming the node itself is broken.
Second, current_frame actually has to move for this to do anything. If it's hardwired to a constant, you'll get the same output every single run no matter what your schedule says - wire it from whatever's driving your frame loop, not a fixed widget value.
And the pack-wide one that catches everybody eventually: Comfyroll registers its entire node set from one shared file at startup, so a single class failing to import takes every CR node down with it, this one included. If it's missing from your node search, check the console for Comfyroll Studio: Failed to load ... nodes followed by a NameError further down - that's almost always a Pillow version conflict pulled in by another custom node, fixed by reinstalling Pillow (pip install --upgrade --force-reinstall pillow) or updating the pack through Manager, which pulls the maintainers' compatibility fixes.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| schedule | STRING | frame_number, value | β |
| current_frame | INT | 00β9999 | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| INT | INT | β |
| FLOAT | FLOAT | β |
| show_help | STRING | β |