Images to Video Timeline
Turn your storyboard frames into timestamps
- image_inputs
- image batch
- images
- timestamps
- timestamps text
- timeline text
- video runtime
- structured timeline text
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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| duration | FLOAT | 5.00 | Length of the video in seconds. |
| focus_areas | INT | 00–3 | How many parts to split the video into. 0 spaces images evenly. |
| focus_one | FLOAT | 0.500–1 | Where images group in the first part. 0 is early, 0.5 is balanced, 1 is late. |
| focus_two | FLOAT | 0.500–1 | Where images group in the second part. 0 is early, 0.5 is balanced, 1 is late. |
| focus_three | FLOAT | 0.500–1 | Where images group in the third part. 0 is early, 0.5 is balanced, 1 is late. |
| last_image_is_final | BOOLEAN | false | Turn on only when the last image is the final video frame. |
| resize_images | BOOLEAN | true | Make all images the same size as the first image. Turn off to keep their original sizes. Image batch becomes black. |
| timestamp_format | COMBO | 00.000s | How timestamps look in text outputs. |
| timeline_style | COMBO | H3 alignment prefix | How timeline text is written. |
| index_offset | INT | 0 | Skip this many Picture numbers before the first image. |
| image_inputs | COMFY_AUTOGROW_V3 | Add images in order. Each image in a batch gets its own timestamp. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image batch | IMAGE | All images in one batch. Black when Resize Images is off. |
| images | IMAGE | Images in order, one output each. |
| timestamps | STRING | One timestamp for each image. |
| timestamps text | STRING | All timestamps in one line. |
| timeline text | STRING | Timeline text ready for a prompt. |
| video runtime | FLOAT | Length of the video in seconds. |
| structured timeline text | STRING | Text with video length and Picture timestamps. |