Quick Image Sequence Process
Pad, trim, and re-time a frame batch by hand
- images
- image
- width
- height
- count
If you've ever had a batch of frames that's almost the right length but not quite, this is the node for that. It doesn't generate anything and it doesn't interpolate motion - it just reshapes an IMAGE batch by duplicating, padding, or trimming frames, deterministically, with no model involved. Think of it less as an AI node and more as a very specific numpy slice-and-stitch operation wearing a ComfyUI wrapper.
Where this actually earns its keep is frame-count math. A lot of video-model pipelines are picky about exact frame counts - Wan and LTX want 4n+1 (or 8n+1 on LTX 2.3), AnimateDiff's native context window is 16 frames, and plenty of VFI/interpolation setups just want a clean round number to chew on. Getting there by hand usually means re-running your source generation with a different length, which is wasteful if the content is already fine and only the count is off. Quick Image Sequence Process lets you pad or trim the batch you already have instead - duplicate the last frame twice to hit a target count, or drop the first frame to knock it down by one, without touching the pixels of the frames you're keeping.
How it works
It runs up to two operations on the incoming batch, in an order you control. One is between-frame insertion: it walks the sequence and inserts extra frames between each existing pair. The other is first/last frame processing: it adds or removes frames at the very start and/or end of the batch. Whatever gets inserted or added isn't necessarily a duplicate - a fill_mode setting decides whether new frames are copies of a real frame or flat solid-color frames (handy if you want an obvious visual marker of where padding happened, or a hard cut to black/white for editing purposes downstream).
The inputs and outputs that matter
- images - the
IMAGEbatch you're reshaping. - frames_between (default
1) - how many frames to insert between each pair in the sequence.0skips this step entirely. - copy_frame -
previousornext: whenfill_modeiscopy_frame, which neighbor gets duplicated into the gap. - fill_mode -
copy_frame,white, orblack. Applies to both the between-frame insertions and the first/last padding - it's one global switch, not per-operation. - quick_process_first_frames / quick_process_last_frames (default
0) - positive adds frames at that end (duplicates or solid frames, perfill_mode), negative removes that many frames from that end. This is the pair you'll actually use most for hitting a target count. - process_F_L_frames_first -
yesruns the first/last padding before the between-frame insertion,nodoes it after. Sinceframes_betweenmultiplies whatever's already in the sequence, the order changes your final count.
Outputs are the reshaped image batch, plus width, height, and count - the last one is a straight readout of frames-after-processing, useful for a quick sanity check or for wiring into a downstream node that needs the number explicitly.
How to install it
Through ComfyUI Manager: search ComfyUI-QuickImageSequenceProcess, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess.git
then restart ComfyUI and look for "Quick Image Sequence Process" in the node menu, under image/sequence. Worth knowing: the clone command printed in the pack's own README still has yourusername in the URL - a leftover from whatever template it was written from. Use the real path above, not what's on the README page. No models to download and nothing beyond ComfyUI's own image/tensor stack - it's a small, dependency-free pack, so the restart really is the whole install.
Common issues & troubleshooting
Frame count doesn't come out where you expected. This is almost always process_F_L_frames_first. If frames_between is set, padding frames in before that step means they get multiplied along with everything else; padding after means they don't. Toggle it and check the count output rather than guessing.
Padding looks wrong for what you wanted. Remember fill_mode is one setting for the whole node - if you set it to white to mark padded frames clearly, that also changes what gets inserted between existing frames, not just at the ends. If you only want padding at one end, set frames_between to 0 so the between-insertion step doesn't fire at all.
Node's not showing up after a manual clone. Check the folder under custom_nodes is named ComfyUI-QuickImageSequenceProcess (not -main from a zip download), and do a full ComfyUI restart rather than a browser refresh.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frames_between | INT | 1 | — |
| copy_frame | COMBO | 2 options: previous, next | |
| fill_mode | COMBO | 3 options: copy_frame, white, black | |
| quick_process_first_frames | INT | 0 | — |
| quick_process_last_frames | INT | 0 | — |
| process_F_L_frames_first | COMBO | 2 options: yes, no |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| width | INT | — |
| height | INT | — |
| count | INT | — |