LTX Flow - Scene Builder
Stitch up to six LTX clips into one video, duplicate joins cut free
- clip_1
- clip_2
- clip_3
- clip_4
- clip_5
- clip_6
- merged_frames
- total_frames
- duration_seconds
Every Flow-style pipeline ends the same way: a pile of clips that need to become one video. Scene Builder is the pile-organizer. It merges up to six IMAGE batches into a single frame batch - cutting the duplicate frame at each join, counting the total, and telling you how long the result is - so you can hand it straight to VHS_VideoCombine and be done.
If you've been stitching clips by hand with a batch merge node, you know the annoyance it's removing: when clip A's last frame and clip B's first frame are the same frame (which is exactly what happens when you extend by conditioning on a tail), a naive concat doubles it and you get a visible freeze at every cut. This node drops that duplicate for you.
How it works
It concatenates the clips along the frame dimension. With deduplicate_joins on (the default), each clip after the first contributes everything except its first frame - that's the duplicate join frame gone. It also checks that every clip shares the same height, width, and channel count, and raises a clear error if they don't. The fps input doesn't resample anything; it's only used to compute duration_seconds.
The inputs that matter
clip_1- required. The others,clip_2throughclip_6, are optional; any you leave unplugged are skipped.deduplicate_joins- keep it on for continuation clips (where each clip starts by re-rendering the previous tail). Turn it off if you're stitching unrelated shots and every frame counts.fps- 24 by default. Purely for the duration readout; the actual frame rate of your export is set on the video-saver node.
Outputs: merged_frames (feed it to VHS_VideoCombine or any saver), total_frames, and duration_seconds - the last one is nice for sanity-checking before you commit to an encode.
Install
Search "comfyui-extend" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/balarooty/comfyui-extend
Restart ComfyUI. No Python dependencies - this node is torch.cat plus a couple of checks, and it loads no models. It'll happily merge clips from any model, not just LTX.
Common issues
- "All clips must have the same height, width, and channel count." The exact error you'll get for mismatched resolutions. LTX clips can silently differ in size if you resized mid-pipeline - normalize them before Scene Builder, not after.
- A missing frame per join with
deduplicate_joinson. That's the feature, not a bug - but if you're stitching distinct scenes, it's silently eating a frame at every boundary. Flip it off for cuts. - Duration looks short.
fpshere only affects the reported seconds. If the number looks wrong, you set fps differently than your saver - not a data problem. - Do the trimming first. Feed Scene Builder clips that already had their overlaps trimmed; the join-dedup handles the one shared frame, not a whole overlapping tail.
workflows/03_scene_builder.json is the standalone demo, and 00_ltxflow_utilities_combined.json puts it on the same canvas as Extract Frame and Extract Tail so you can chain the whole continuation loop in one place.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_1 | IMAGE | — | |
| deduplicate_joins | BOOLEAN | true | — |
| fps | INT | 241–240 | — |
| clip_2opt | IMAGE | — | |
| clip_3opt | IMAGE | — | |
| clip_4opt | IMAGE | — | |
| clip_5opt | IMAGE | — | |
| clip_6opt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| merged_frames | IMAGE | — |
| total_frames | INT | — |
| duration_seconds | FLOAT | — |