Nodes/ComfyUI-UtilsCollection/Images to Video Timeline
ComfyUI Node

Images to Video Timeline

Turn your storyboard frames into timestamps

By silveroxides·Created 3 months ago·Updated a day ago· 36
Images to Video Timeline
  • image_inputs
  • image batch
  • timestamps text
  • timeline text
  • video runtime
  • structured timeline text
duration5.00
focus_areas0
focus_one0.50
focus_two0.50
focus_three0.50
last_image_is_finalfalse
resize_imagestrue
timestamp_format00.000s
timeline_styleH3 alignment prefix
timeline_text_structureFor the target video, at <<time>> into the target video, <<picture>> (from <<shot>>) is fully referenced.
structured_timeline_text_structureTarget video duration is <<duration>> seconds divided into <<segments>> segments. Reference each image with <<references>>.
index_offset0

The modern image-to-video models - MiniMax H3 especially - don't just take a pile of reference images; they want to know when each image matters. H3's prompt format references images as <Picture N> entries with timestamps. If you've ever counted seconds by hand to place eight storyboard frames across a 12-second clip, UC_ImagesToVideoTimeline is the node that does that counting for you, in several output formats at once.

Feed it ordered images and a duration, and it emits per-image timestamps, a full timeline prompt ready for a model, a plain text line, and a combined batch - everything you need to wire a storyboard into an H3 or similar prompt without a calculator. It's the bridge between "I have frames" and "here's a video prompt with a real timeline."

How it works

The core behavior is even spacing: with focus_areas at 0, images are distributed evenly across duration. Set focus_areas to 1–3 and the node splits the video into parts, letting focus_one/focus_two/focus_three (0 = early, 0.5 = balanced, 1 = late) cluster images within each part - so you can pack more frames into the moment where the action is. last_image_is_final pins the last frame to the end of the video, and index_offset skips Picture numbers (useful when your prompt already uses some). timestamp_format (default 00.000s) controls how times look, and timeline_style picks the text shape - default H3 alignment prefix, or H3 pictures, indexed, or timestamps only.

resize_images (default on) normalizes all images to the first image's size for a clean batch; turn it off and the batch goes black, with each image kept at its own size on separate outputs.

The outputs that matter

  • timeline text - the H3-style prompt text, ready to paste into a video prompt.
  • structured timeline text - video length plus Picture timestamps in a structured form.
  • timestamps - one timestamp per image, for wiring into per-image conditioning.
  • images / image batch - the ordered frames, either individually or batched.
  • video runtime - the duration in seconds, handy as a float downstream.

Inputs are duration, focus_areas, the focus sliders, plus the image_inputs autogrow sockets where you add frames in order (each image in a batch gets its own timestamp).

Installing it

ComfyUI Manager → search "ComfyUI-UtilsCollection", or:

cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection

Restart. Light deps (opencv-python, typing-extensions), no models, no API keys. Newer-API pack - keep ComfyUI updated.

The gotcha: those focus_* values are placement hints in a prompt, not hard frame anchors - the model treats Picture timestamps as instructions, so results stay stochastic and a "late" cluster won't be surgically precise. And if you see a black image batch, resize_images is off and you're expected to use the individual images outputs instead. That's by design, not a bug.

Categoryimage/video

Inputs (13)

NameTypeDefaultDescription
durationFLOAT5.00Requested video duration in seconds. Rounds up to H3's supported length at 24 fps before placing image timestamps.
focus_areasINT00–3How many parts to split the video into. 0 spaces images evenly.
focus_oneFLOAT0.500–1Where images group in the first part. 0 is early, 0.5 is balanced, 1 is late.
focus_twoFLOAT0.500–1Where images group in the second part. 0 is early, 0.5 is balanced, 1 is late.
focus_threeFLOAT0.500–1Where images group in the third part. 0 is early, 0.5 is balanced, 1 is late.
last_image_is_finalBOOLEANfalseTurn on only when the last image is the final video frame.
resize_imagesBOOLEANtrueMake all images the same size as the first image. Turn off to keep their original sizes. Image batch becomes black.
timestamp_formatCOMBO00.000sHow timestamps look in text outputs.
timeline_styleCOMBOH3 alignment prefixBuilt-in timeline syntax, or custom to use the timeline text structure.
timeline_text_structureSTRINGFor the target video, at <<time>> into the target video, <<picture>> (from <<shot>>) is fully referenced.One structure repeated for every image when timeline style is custom. Use <<time>> or <<timestamp>>, <<picture>>, and <<shot>>.
structured_timeline_text_structureSTRINGTarget video duration is <<duration>> seconds divided into <<segments>> segments. Reference each image with <<references>>.One whole-timeline structure. Use <<duration>>, <<segments>>, <<timestamps>>, and <<references>>. One <<shot>> … <<timestamp>> section repeats for every image.
index_offsetINT0Skip this many Picture numbers before the first image.
image_inputsCOMFY_AUTOGROW_V3Add images in order. Each image in a batch gets its own timestamp.

Outputs (5)

NameTypeDescription
image batchIMAGEAll images in one batch. Black when Resize Images is off.
timestamps textSTRINGAll timestamps in one line.
timeline textSTRINGTimeline text ready for a prompt.
video runtimeFLOATActual H3 generation duration in seconds at 24 fps. The image timeline and duration text use this same rounded value.
structured timeline textSTRINGText with video length and Picture timestamps.