π π £π § LTXV In Context Sampler
The sampler that drives LTX-2 IC-LoRA control
- vae
- guider
- sampler
- sigmas
- noise
- guiding_latents
- optional_cond_images
- denoised_video
- positive
- negative
If you're running any of LTX-2's IC-LoRA control workflows - depth, pose, canny/edges, the union control LoRA, motion tracking - this is the sampler that ties the control signal to your generation. "In context" is the key phrase. LTX's control LoRAs are InContext LoRAs: instead of a separate ControlNet model, they take a control video (or reference latents) as part of the same context the model generates in, and condition the output on its structure. LTXVInContextSampler is the node that samples with those guiding latents wired in.
This is a big part of why LTX got taken seriously by VFX-adjacent people. The KB traces it: Lightricks shipped official pose, depth, and canny control LoRAs, then a union LoRA that folds depth and edge control into one model and runs on downsampled latents to save memory and speed things up. The whole point of the CEO's "models as rendering engines" pitch is feeding structured inputs - depth, motion - into the generation. This sampler is where that happens in ComfyUI.
How it works
Rather than a plain KSampler, it's a custom-sampling node that takes the decomposed pieces - a guider, a sampler, a sigmas schedule, and a noise source - plus the guiding latents that carry your control signal. It runs the denoise with those guiding latents held in context, so the output follows the control structure. It returns the denoised video latent and the updated positive/negative conditioning, so you can chain it into a second stage (upscaling, refinement) without re-encoding.
The inputs and outputs that matter
The wired-in machinery: vae, guider (GUIDER), sampler (SAMPLER), sigmas (SIGMAS), noise (NOISE), and guiding_latents (LATENT - the control signal, usually your control video encoded, or downsampled reference latents for the union LoRA).
The two optional inputs you might actually set:
optional_cond_images(IMAGE) - extra conditioning images when your workflow supplies them (e.g. a keyframe alongside the control track).num_frames(INT, default β1) - how many frames to generate; β1 lets it derive the length from the guiding latents rather than forcing a count. Leave it at β1 unless you specifically need to override.
Outputs: denoised_video (LATENT, into your VAE Decode or a second stage), plus positive and negative conditioning to carry forward.
How to install it
ComfyUI Manager: Ctrl+M, Install Custom Nodes, search LTXVideo, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Lightricks/ComfyUI-LTXVideo
then restart. Lightricks' official pack. On top of the LTX-2.3 checkpoint and Gemma 3 text encoder you'll need whichever IC-LoRA you're controlling with - union control, motion-track, pose, depth, etc. - in your loras folder. The pack ships example workflows for each; start from those, because the guider/sampler/sigmas wiring is not something to assemble from scratch.
Common issues & troubleshooting
The output ignores your control input. Check that guiding_latents actually carries your encoded control video (or the downsampled reference for the union LoRA) and that the matching IC-LoRA is loaded. No LoRA, no in-context control - the sampler will just generate freely.
Frame count mismatches / errors. With num_frames at β1 the length is inferred from the guiding latents, which is usually what you want. If you hardcode a number that disagrees with your control video's length, you'll get shape errors. Match them or go back to β1.
Union control feels slow or heavy. The union LoRA is specifically built to run on downsampled reference latents to cut memory and speed things up - if your workflow feeds it full-resolution guiding latents, you're throwing away that advantage. Use the pack's union-control example resolutions.
It's still not great on people. Structural control doesn't fix LTX's fidelity ceiling - Wan remains stronger on faces and bodies. Control LoRAs buy you structure (pose, depth, motion), not final human quality. Draft here, refine elsewhere if you need it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | The VAE to use. | |
| guider | GUIDER | The guider to use, must be a STGGuiderAdvanced. | |
| sampler | SAMPLER | The sampler to use. | |
| sigmas | SIGMAS | The sigmas to use. | |
| noise | NOISE | The noise to use for the sampling. | |
| guiding_latents | LATENT | The latents to use for guiding the sampling, typically with an IC-LoRA. | |
| optional_cond_imagesopt | IMAGE | The image to use for conditioning the sampling, if not provided, the sampling will be unconditioned (t2v setup). The image will be resized to the size of the first frame. | |
| num_framesopt | INT | -1-1β1000 | If -1, the number of frames will be based on the number of frames in the guiding_latents. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| denoised_video | LATENT | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |