Nodes/FizzNodes/Image Select Schedule πŸ“…πŸ…•πŸ…
ComfyUI Node Runs on cloud

Image Select Schedule πŸ“…πŸ…•πŸ…

Pick images out of a batch on a schedule β€” the frame-selector you didn't know you needed

By FizzleDorfΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 479
Image Select Schedule πŸ“…πŸ…•πŸ…
  • images
  • IMAGE
β—„text"0" :"", "11" :"", "23" :"", "35" :"", "47" :"", "59" :"", "71" :"", "83" :"", "95" :"", "107" :"", "119" :"" β–Ί
β—„current_frame0β–Ί
β—„max_frames120β–Ί
β—„print_outputfalseβ–Ί

Image Select Schedule is the FizzNodes node that does for images what the other schedulers do for prompts and values: it decides which images from a batch should appear at which frame. Feed it a batch of images, a keyframe-style text schedule, and a current_frame, and it returns the images your schedule says belong to that frame. It's the node you reach for when you've generated a batch - say a run of AnimateDiff frames - and you want to keep some frames, drop others, or re-time them according to a curve instead of doing it by hand.

The schedule format is the familiar one, but the values are image indices:

"0" :"1",
"30" :"12, 24",
"60" :"48"

Quotes on the frame numbers, comma-separated entries, and the values are image positions in the input batch - single indices, comma-separated lists, or ranges like "1:20". The node interpolates the schedule the same way the prompt scheduler does, then at current_frame selects the images those indices point to. It supports max_frames to define the animation length and print_output for console debugging.

The mechanism and the fine print

Under the hood, the selection logic is borrowed from SLAPaper's ComfyUI-Image-Selector (Apache-2.0, credited in the source). A couple of behaviors are worth knowing. Indices in the schedule are 1-based - index 1 is the first image - and anything out of range is silently ignored. If nothing is selected for a frame, the node just prints a "selected no images, passthrough" message and returns nothing useful, so an empty schedule frame will trip you up mid-workflow rather than fail loudly. The output is a single IMAGE batch: the selected images for the current frame.

Where it fits

The honest use case is post-processing animation frames: generate a batch, use a schedule (possibly audio-synced, via framesync.xyz exports) to pick which frames survive into the final cut, then feed the result to a video encoder. If you never need to cherry-pick from a batch, you'll never touch this node - but it's the exact tool when "keep every third frame here, all of them there" is your problem.

Install

cd ComfyUI/custom_nodes && git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes.git
cd ComfyUI_FizzNodes && pip install -r requirements.txt

Or install "FizzNodes" via ComfyUI Manager and restart. No models - it's pure tensor indexing plus the pack's usual light dependencies.

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

Inputs (5)

NameTypeDefaultDescription
imagesIMAGEβ€”
textSTRING"0" :"", "11" :"", "23" :"", "35" :"", "47" :"", "59" :"", "71" :"", "83" :"", "95" :"", "107" :"", "119" :"" β€”
current_frameINT00–999999β€”
max_framesINT1201–999999β€”
print_outputBOOLEANfalseβ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”