Nodes/10S-Comfy-nodes/πŸ”€ Latent Cross Fade Auto Concat
ComfyUI Node

πŸ”€ Latent Cross Fade Auto Concat

Stitch two video clips in latent space without a visible seam

By TenStripΒ·Created 4 months agoΒ·Updated 26 days agoΒ· 244
πŸ”€ Latent Cross Fade Auto Concat
  • frames_0
  • frames_1
  • latent
β—„match_spatialtrueβ–Ί
β—„interpolate_modenearest-exactβ–Ί
β—„cross_fade_frames6β–Ί
β—„fade_curvelinearβ–Ί

LTX is a seconds-per-clip model, and the classic workaround for longer narratives is to generate a few clips and stitch them. The naive approach - decode both, crossfade in pixel space - works but forces the VAE round-trip and can smear. LatentCrossFadeAutoConcat does the joining before decoding, on the 5D latent tensors, and smooths the boundary with a proper crossfade so you don't get a hard cut between two independently-sampled videos.

It's a small, no-fuss node. Two latents in (frames_0, frames_1), one latent out.

What it does under the hood

The "auto" in the name is doing real work: it checks the two latents' spatial dimensions and, if match_spatial is on (default True), resizes the second clip to match the first using interpolate_mode (nearest-exact default, or bilinear/bicubic). LTX's latent space is 32Γ— compressed spatially, so a mismatch in H/W is common when the two clips came from differently-sized requests.

Then it concatenates along the temporal (frame) axis. If cross_fade_frames is above 0 (default 6), the tail of clip A and head of clip B get blended over that many frames with the chosen fade_curve (linear, ease_in, ease_out, ease_in_out). The fade happens in latent space, which is exactly where you want it - a smooth latent-space transition decodes to a smooth video transition, with no double-decode artifacts.

When you'd reach for it

  • Joining two i2v clips into a longer take (LTX's practical clip length is ~10-12 seconds before quality sags; stitch two short ones instead of pushing one long one).
  • Connecting a T2V intro clip to an i2v main clip - resize handles the resolution jump automatically.
  • Building a multi-shot edit where you plan to upscale the joined latent in one pass afterward.

The honest limitation: latent-space concat assumes both clips live in roughly the same visual world. Two clips from wildly different seeds/prompts will still show a content jump at the boundary - the fade just makes it a smooth jump instead of a hard one. For true semantic continuity you want a model with cross-shot memory (the JoyAI-Echo family this pack orbits); this node is the plumbing around it.

The few inputs that matter

  • cross_fade_frames - the overlap length. 6 is a good default; go higher (10-12) for slow, cinematic transitions, lower for punchy cuts.
  • match_spatial - leave on unless you've already matched resolutions yourself.
  • fade_curve - ease_in_out feels most natural for slow fades; linear is fine for short ones.

Output is a standard LATENT you can feed straight to a VAE decode, another temporal op, or a sampler for a light refinement pass. No install drama beyond the pack itself - clone 10S_Nodes into custom_nodes, restart (or ComfyUI Manager β†’ "10S-Comfy-nodes"). This one isn't LTX2-specific in the same way the hook-based nodes are, but it's tuned for LTX's 5D latent layout, so keep it in that lane.

Category10S Nodes/Latents

Inputs (6)

NameTypeDefaultDescription
frames_0LATENTβ€”
frames_1LATENTβ€”
match_spatialoptBOOLEANtrueβ€”
interpolate_modeoptCOMBOnearest-exact3 options: nearest-exact, bilinear, bicubic
cross_fade_framesoptINT60–24β€”
fade_curveoptCOMBOlinear4 options: linear, ease_in, ease_out, ease_in_out

Outputs (1)

NameTypeDescription
latentLATENTβ€”