Nodes/FizzNodes/Batch Value Schedule (Latent Input) πŸ“…πŸ…•πŸ…
ComfyUI Node Runs on cloud

Batch Value Schedule (Latent Input) πŸ“…πŸ…•πŸ…

Value scheduling where the latent batch owns the frame count β€” and passes through untouched

By FizzleDorfΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 479
Batch Value Schedule (Latent Input) πŸ“…πŸ…•πŸ…
  • num_latents
  • FLOAT
  • INT
  • LATENT
β—„text0:(0), 11:(0), 23:(0), 35:(0), 47:(0), 59:(0), 71:(0), 83:(0), 95:(0), 107:(0), 119:(0) β–Ί
β—„print_outputfalseβ–Ί

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.

CategoryFizzNodes πŸ“…πŸ…•πŸ…/BatchScheduleNodes

Inputs (3)

NameTypeDefaultDescription
textSTRING0:(0), 11:(0), 23:(0), 35:(0), 47:(0), 59:(0), 71:(0), 83:(0), 95:(0), 107:(0), 119:(0) β€”
num_latentsLATENTβ€”
print_outputBOOLEANfalseβ€”

Outputs (3)

NameTypeDescription
FLOATFLOATβ€”
INTINTβ€”
LATENTLATENTβ€”