LTX 2.5 Segment
LTX 2.5 Segment — the whole shot in one internal node
- model
- clip
- vae
- audio_vae
- duration_head
- prev_image
- prev_audio
- next_image
- next_audio
- model
- positive
- LATENT
- negative
Same disclaimer as the rest of this pack's internals: you don't add this node. MiniMaxLTX25Segment is the LTX 2.5 family's boundary in ComfyUI-Continuity - one self-contained card in, a ready-to-sample bundle out. When you write a shot, pick LTX 2.5 on the model pill, and press Render, the Creator node writes one of these into the graph per segment and walks away. Its description is refreshingly direct: "One segment of an LTX 2.5 piece. Written into the graph by the Creator node."
If you're used to building LTX workflows by hand - a loader, a CLIP encode, a latent, a KSampler, all wired together - this is the whole middle of that, compressed into one node that takes a single JSON string (segment_data) and hands back the four things a sampler needs: model, positive, latent, and negative.
Why it looks the way it does
Everything about this node exists because LTX is a different animal than the text-to-video models most people started on. LTX is the speed tier - the draft-and-refine workhorse - and 2.5 is the architectural jump: a new latent space with audio baked into the same model. That audio-video coupling drives the design here.
First, the negative is real. H3's checkpoints are CFG-distilled and skip the negative at a cfg of 1.0. LTX guides the video and audio modalities of a packed AV latent apart through LTXVDualCFGGuider, whose uncond pass always runs - so positive and negative get built together here and travel together.
Second, there's no soundless mode. vae and audio_vae are both required, always, because the family generates a packed AV latent, period. The audio stream is an empty latent shaped from the audio VAE's config, concatenated onto the picture after every guide - core's LTXVAddGuide.append_keyframe refuses a combined AV latent, and reversing the order throws a ValueError with nothing about guides in it.
Third, the conditioning is built in Python rather than emitted as core nodes. The number of guides - a keyframe, a last frame, one or two seams - depends on the payload, so a fixed graph couldn't express it. And the guide order is load-bearing: the reference sheet goes on first (it's the only guide that carries the IC-LoRA's parameters), then seams and keyframes in timeline order, with a continuing seam winning over a keyframe at the same end.
The inputs that matter
You'll set none of these directly, but here's what they mean when you inspect a workflow. model, clip, vae and audio_vae come from the pack's weights; segment_data is the JSON payload holding your prompt, references, sound lane and LoRA list - the cache key, so editing one card re-runs only that card's node. The optional slots are where the interesting stuff hides:
duration_head- LTX's duration head, wired in only when the seconds pill is set to auto and the model picks its own shot length. Loaded lazily through core'sModelPatchLoader.ic_lora- the Ingredients IC-LoRA filename. This is what makes a reference sheet mean anything to the transformer: the attached stills are composited into one panelled sheet, the adapter patches the model, and the sheet rides in as a guide carrying the adapter's ownreference_downscale_factor, read from the file's metadata. Only present when the card cites a reference.prev_image/next_image- the seams: an earlier segment's last frame to continue from, or the opening frames of a clip the segment runs into.prev_audio/next_audio- wired in, but the tooltips are honest: not yet conditioned on. Don't expect the sound to influence the generation.
The outputs are the sampler's four sockets: model, positive, LATENT, negative.
Installing it
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/roadmaus/ComfyUI-Continuity
Restart ComfyUI, nothing to pip install. The node itself is free - what costs you is the LTX 2.5 weight set: the 22B distilled transformer in models/diffusion_models, the Gemma 12B text encoder in models/text_encoders, and both VAEs (video and audio) in models/vae. Four files minimum, and the pack refuses before the queue starts if one's missing. Optional extras: the duration head (model_patches), the x2 latent spatial upscaler (latent_upscale_models), the ReDetail IC-LoRA, and - the one that surprises people - the Ingredients IC-LoRA is the 2.3 one, because Lightricks hasn't released a 2.5 Ingredients yet and 2.3 IC-LoRAs mostly load and work on 2.5. A shot with no references never asks for it.
Common issues
The pack's own gotchas are worth knowing before you blame the node. A segment that "continues from an earlier one" but gets no frame raises a clear error - the render loop should have wired one, so that's a graph bug, not your settings. Missing audio VAE, missing duration head when you asked for auto - each refusal names the field and the folder it looks in. The bigger real-world trap applies to all of LTX: prompt adherence is its weakest axis, so when a shot comes back wrong, seed-hunt before you prompt-hunt. And if a long render dies with a HostBuffer.read_file_slice CUDA OOM on recent ComfyUI, start it with --disable-dynamic-vram rather than buying a bigger card.
For the 99% use case, the workflow is the point: type, attach, Render, and this node quietly does the LTX-shaped work of holding the same person across shot 1 and shot 9 - which is, after all, the pack's entire reason for existing.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| audio_vae | VAE | — | |
| segment_data | STRING | — | |
| duration_headopt | MODEL_PATCH | LTX's duration head, when this shot's length is the model's to pick. | |
| ic_loraopt | STRING | Lightricks' Ingredients IC-LoRA, from models/loras — what makes a reference sheet mean anything. | |
| prev_imageopt | IMAGE | An earlier segment's last frame, when this segment continues from it. | |
| prev_audioopt | AUDIO | The tail of an earlier segment's soundtrack. Not yet conditioned on — see the node's source. | |
| next_imageopt | IMAGE | The opening frames of the supplied clip this segment runs into. | |
| next_audioopt | AUDIO | The opening of that clip's soundtrack. Not yet conditioned on. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| LATENT | LATENT | — |
| negative | CONDITIONING | — |