Nodes/ComfyUI-Easy-Media/LTX MultiTrack Encode
ComfyUI Node

LTX MultiTrack Encode

The LTX Node That Does Four Jobs So Your Graph Doesn't Have To

By yolain·Created 3 months ago·Updated about 17 hours ago· 158
LTX MultiTrack Encode
  • model
  • clip
  • audio_vae
  • audio
  • model
  • positive
  • negative
  • video_latent
  • audio_latent
local_prompt
global_prompt
epsilon0.001
width512
height512
frame_rate24.00
video_length73
half_latent_sizetrue

LTX-2 changed the game: audio and video, one model

Here's the thing about LTX-2 (and 2.3): it isn't a video model with audio bolted on. The same DiT samples the video and the audio latents together, which is why it became the local pick for lipsync and music-video work. But that also means a working LTX-2 graph needs four things built before you can sample - a prompt-conditioned model, a video latent, an audio latent, and the conditioning to drive both. In a stock ComfyUI graph that's four or five nodes of wiring. This node collapses them into one.

easy ltxMultiTrackEncode builds the full kit in a single shot: it creates the empty (or audio-loaded) LTX video latent, encodes your audio track into the audio latent, and produces the positive/negative conditioning - including Prompt Relay conditioning, the segment-wise prompt system the pack borrowed from kijai's ComfyUI-PromptRelay.

How it works

The source reads like a checklist of core LTX nodes being called in the right order:

  • Empty video latent via EmptyLTXVLatentVideo at your width/height (halved if half_latent_size is on, which is the LTX-2 way of working).
  • Audio: if you connect audio, it merges the valid tracks, encodes them with LTXVAudioVAEEncode through your audio_vae, and sets a solid noise mask so the sampler knows where audio lives. No audio → LTXVEmptyLatentAudio gives you a silent latent.
  • Prompt Relay: _encode_relay patches the model and encodes global_prompt + local_prompt into conditioning; negative is the zeroed-out positive (the flow-matching convention).
  • LTXVConditioning pins the frame rate onto the conditioning.

The model comes back patched for relay-style conditioning, which is why the model output matters as much as the latents.

The inputs that matter

  • model, clip, audio_vae - all required. Note audio_vae is mandatory even when you have no audio; it's how the node builds the silent latent.
  • audio - optional. Connect a track and it becomes the audio latent.
  • local_prompt / global_prompt - the Prompt Relay pair. Local is per-segment detail, global is the scene-wide description. If you don't know which is which, treat global as the master prompt and local as the accent.
  • width / height (512), frame_rate (24), video_length (73) - generation geometry. video_length steps by 8.
  • half_latent_size (true) - LTX-2 renders internally at half resolution and upscales; leave it on unless you know why you'd turn it off.
  • epsilon (0.001) - a relay detail; leave it alone until you're deep in Prompt Relay tuning.

Outputs: model (patched), positive, negative, video_latent, audio_latent - everything the sampler needs.

Wire it up and what goes wrong

This node pairs with the pack's easy ltxSamplerSimple - that's the sampler that takes these five outputs (minus model) and actually denoises the combined audio+video latents. It also plays perfectly with the pack's MultiTrack/Timeline editors, which feed it per-segment prompts and audio.

Practical traps:

  • Missing audio_vae is the #1 error - it's a required input even on a silent generation, and people used to "VAE only for images" forget it.
  • Silence isn't failure. If you connect no audio, the audio latent is empty and your video is mute - that's correct behavior for a T2V/I2V run, not a bug.
  • Width/height don't match the latent. half_latent_size halves them internally; if you also half them yourself in your head, you'll double-divide. Let the node do the math.

It's the load-bearing node of the pack's whole LTX story, and once you've used it, the stock four-node dance feels like a museum exhibit.

CategoryEasyUse/LTX

Inputs (12)

NameTypeDefaultDescription
modelMODEL
clipCLIP
audio_vaeVAE
local_promptSTRING
global_promptSTRING
epsilonFLOAT0.0010–100
widthINT51264–16384
heightINT51264–16384
frame_rateFLOAT24.000.01–1000
video_lengthINT73
half_latent_sizeBOOLEANtrue
audiooptAUDIO

Outputs (5)

NameTypeDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
video_latentLATENT
audio_latentLATENT