LTX Sampler Simple
One Sampler for the Whole Audio-Video Latent Stack
- model
- positive
- negative
- video_latent
- audio_latent
- sigmas
- positive
- negative
- video_latent
- audio_latent
Sampling LTX-2 means sampling both latents at once
The thing that makes LTX-2's synced audio work is also the thing that makes its sampler annoying: the video latent and the audio latent are denoised together as one combined stack, then split apart afterward. Do it in stock ComfyUI and you're juggling LTXVConcatAVLatent, SamplerCustomAdvanced, LTXVSeparateAVLatent, and LTXVCropGuides - four nodes, and getting the wiring wrong produces videos with no sound or sound with no video.
easy ltxSamplerSimple is the pack's answer: one node that concatenates, samples, separates, and crops. It's the direct counterpart to easy ltxMultiTrackEncode - that node builds the conditioning and latents, this one turns them into a video.
How it works
Read the source and it's a clean pipeline, matching the four core nodes:
- Concatenate -
LTXVConcatAVLatentstacks yourvideo_latentandaudio_latentinto one combined latent. - Sample -
Noise_RandomNoise(seed)+CFGGuiderwith yourcfg, run throughSamplerCustomAdvancedwith thesampler_nameandsigmasyou provide. - Separate -
LTXVSeparateAVLatentsplits the result back into video and audio. - Crop guides -
LTXVCropGuidestrims the guide frames out of the video output and updates the conditioning to match.
Everything you see in the outputs comes out of that final crop step, which is why the node returns conditioning again even though you fed it in.
The inputs that matter
model,positive,negative- fromeasy ltxMultiTrackEncode(or any LTX conditioning path).video_latent+audio_latent- the pair from the encode node. Both are required; there's no "video only" mode here.sigmas- a required SIGMAS input, which surprises people. You need a scheduler node (BasicScheduler, or an LTX-specific one) feeding it. For LTX, the flow-matching schedule is what you want.sampler_name- defaults toeuler_ancestral, which is the community default for LTX-2. It's a full list of ComfyUI samplers, so you can experiment.cfg- defaults to 1. Do not treat this like a Stable Diffusion KSampler. LTX-2 is a flow-matching model and cfg 1 is the norm; crank it to 7 and you'll get overcooked garbage. The KB's LTX guidance is consistent: these models want low or unity CFG.seed- with the usual control_after_generate widget. Remember the classic trap: the seed shows what will be used next, not what just rendered. Flip it tofixedthe moment you get a keeper.
Outputs and wiring
The four outputs mirror the inputs: positive, negative, video_latent, audio_latent - the sampled, cropped result. The video latent goes to your VAE decode → save. The audio latent goes to the audio VAE decode → audio save (or the pack's SaveVideo, which combines both).
Setup and gotchas
Install is the pack install (Manager or git clone + restart). Since this node wraps ComfyUI core LTX nodes, you need a ComfyUI build that ships LTX-2 support - practically everyone running LTX-2 has that already.
The recurring beginner failures, all of which are just wiring discipline:
- No
sigmasconnected → the node won't run. It's a required socket, and it's the most common "why is this stuck" report. - Cfg above ~2 → mushy or blown-out video. Unity is correct here.
- Mixing latents from different encode runs → a video latent from one graph with an audio latent from another. They must share the same length/geometry or the concat step complains (or worse, silently produces garbage).
- Silent output → check that
audio_latentactually made it through; if you fed the encode node no audio, you sampled silence by design.
Used with its encode sibling, it's the closest thing LTX-2 has to a one-node sampler - and it makes the audio/video workflow feel almost as simple as the old image samplers.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| video_latent | LATENT | — | |
| audio_latent | LATENT | — | |
| sampler_name | COMBO | euler_ancestral | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| sigmas | SIGMAS | — | |
| cfg | FLOAT | 1.00–100 | — |
| seed | INT | 00–18446744073709550000 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| video_latent | LATENT | — |
| audio_latent | LATENT | — |