Nodes/comfyui-extend/LTX Flow - Scene Builder
ComfyUI Node

LTX Flow - Scene Builder

Stitch up to six LTX clips into one video, duplicate joins cut free

By balarooty·Created 4 months ago·Updated 4 months ago· 0
LTX Flow - Scene Builder
  • clip_1
  • clip_2
  • clip_3
  • clip_4
  • clip_5
  • clip_6
  • merged_frames
  • total_frames
  • duration_seconds
deduplicate_joinstrue
fps24

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_2 through clip_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_joins on. 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. fps here 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.

CategoryLTXFlow/Scene Tools

Inputs (8)

NameTypeDefaultDescription
clip_1IMAGE
deduplicate_joinsBOOLEANtrue
fpsINT241–240
clip_2optIMAGE
clip_3optIMAGE
clip_4optIMAGE
clip_5optIMAGE
clip_6optIMAGE

Outputs (3)

NameTypeDescription
merged_framesIMAGE
total_framesINT
duration_secondsFLOAT