Batch Value Schedule (Latent Input) π π π
Value scheduling where the latent batch owns the frame count β and passes through untouched
- num_latents
- FLOAT
- INT
- LATENT
Batch Value Schedule (Latent Input) is the latent-derived-frame-count version of FizzNodes' numeric scheduler. Same frame:(value) keyframe format, same linear interpolation between keyframes, same FLOAT and INT outputs - but instead of typing max_frames, you feed it a latent tensor and it counts the batch. It's the natural companion to Batch Prompt Schedule (Latent Input) for AnimateDiff workflows where the latent batch defines the animation.
The one extra thing this variant does is hand the latents straight back through a third output - LATENT - so the node can sit inline in your graph: latents in, scheduled numbers out, latents out the other side unchanged.
The schedule and the mechanism
0:(0),
30:(1.0),
60:(0.5)
Frame number, colon, parenthesized value. Values interpolate linearly between keyframes, and you can drop numexpr math in for reactive curves - 0:(0), 60:(sin(t/20)) works. The outputs are FLOAT and INT, each holding the full per-frame series (the INT is the same values truncated). Frame count equals the latent batch size, so the series always lines up with whatever batch the latents came from - which is the entire point of this variant.
The footgun, again but louder
People reach for this node specifically to keyframe things like IPAdapter strength over an AnimateDiff run, and the most common real-world error is treating the FLOAT output as a single scalar. It isn't - it's a whole series of values, one per frame. Wiring it into a widget that wants one number throws errors like ValueError: The truth value of a Series is ambiguous, which is a known failure mode in the community when keyframing IPAdapter or ControlNet strength this way. The series needs a batch-aware consumer, or you index it per frame downstream. If you genuinely need one value at a time driven by a current frame, the non-batch Value Schedule node (same pack) is the correct tool.
Also worth remembering: because the frame count comes from the latent, feeding a differently-sized latent silently reschedules everything. That's usually the feature - batch and schedule can't drift apart - but it means a batch-size change is a schedule change.
Install
cd ComfyUI/custom_nodes && git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes.git
cd ComfyUI_FizzNodes && pip install -r requirements.txt
Or "FizzNodes" via ComfyUI Manager and restart. Just numpy, pandas, numexpr - nothing to download. If your numeric animations already have their length owned by a latent batch, this is the value scheduler you want.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | 0:(0), 11:(0), 23:(0), 35:(0), 47:(0), 59:(0), 71:(0), 83:(0), 95:(0), 107:(0), 119:(0) | β |
| num_latents | LATENT | β | |
| print_output | BOOLEAN | false | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | β |
| INT | INT | β |
| LATENT | LATENT | β |