π π £π § Add Video IC-LoRA Guide
Feed a control video into LTX
- positive
- negative
- vae
- latent
- image
- positive
- negative
- latent
This is the node that actually hands your control signal to an LTX IC-LoRA. You've loaded a depth, pose, canny, or union control LoRA; now you need to feed it the depth map, pose video, or edge frames it should follow. Add Video IC-LoRA Guide takes those frames, encodes them, and injects them into the conditioning at the frame position you choose. It's the "here's the structure, now generate to match it" half of LTX's control workflow.
It's part of ComfyUI-LTXVideo, Lightricks' official pack. If you've used ControlNet on images, the mental model is similar - condition generation on a structural reference - but IC-LoRAs do it in context: the control video rides alongside the generation rather than through a separate network, which is why it plugs into conditioning rather than a control-apply node.
How it works
The node accepts a single image or a multi-frame video, VAE-encodes it, and adds it as conditioning frames starting at your chosen index. The key IC-LoRA feature is latent_downscale_factor: many control LoRAs are trained to work on a smaller latent grid (half size, third size, and so on) to cut memory and speed things up, so the node resizes your control input to that fraction. Match this to the factor the LoRA reports (the IC-LoRA loader reads it from metadata) and everything lines up.
The inputs that matter
- positive / negative - the conditioning you're augmenting; it flows through and comes back out modified.
- vae - used to encode the control frames.
- latent - the video latent being conditioned.
- image - your control frames (depth/pose/canny/etc.), one image or a whole clip.
- frame_idx - where the guide starts (default 0 = beginning).
- strength - how hard the guide bites (default 1, range 0β1).
- latent_downscale_factor - the grid fraction (1 = full, 2 = half, 3 = third...). Set it to match your IC-LoRA.
There's also use_tiled_encode with tile_size / tile_overlap for encoding big control videos without an OOM. Outputs are the modified positive, negative, and latent - chain them onward to your sampler.
Installing it
ComfyUI Manager β search LTXVideo β install β restart, or cd ComfyUI/custom_nodes && git clone https://github.com/Lightricks/ComfyUI-LTXVideo and restart. It's under Lightricks/IC-LoRA. You'll also need the matching IC-LoRA in models/loras (loaded via IC-LoRA Loader Model Only) - grab them from Lightricks' HuggingFace as the README lists.
Where people get burned
- Downscale mismatch. The number-one trap:
latent_downscale_factorhere must match what the LoRA was trained for. Wire it from the IC-LoRA loader'slatent_downscale_factoroutput rather than guessing, or the control comes in at the wrong scale. - Unprocessed control input. A depth LoRA wants a depth map, a pose LoRA wants a pose skeleton - feed it the raw RGB clip instead of the preprocessed control signal and you'll get mush. Run your source through the right preprocessor first.
- Frame count and grid rules. LTX-2.3 wants (8n+1) frames and divisible-by-32 dimensions; a control clip that's off-grid can misalign with the generation.
- Encoding OOM on long control clips. If VAE-encoding a long control video crashes, turn on
use_tiled_encodeand let it chunk the encode. - Strength as a cure-all. Pushing
strengthto 1 makes the control dominate and can bury your prompt. If the output rigidly copies the control and ignores your text, ease it down.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | β | |
| negative | CONDITIONING | β | |
| vae | VAE | β | |
| latent | LATENT | Video-only latent to condition. Must be a 5D video latent (batch, channels, frames, height, width). | |
| image | IMAGE | β | |
| frame_idx | INT | 0-9999β9999 | Frame index to start the conditioning at. For single-frame videos, any frame_idx value is acceptable. For videos, frame_idx must be 1 modulo 8, otherwise it will be rounded down to the nearest 1 modulo 8. Negative values are counted from the end of the video. |
| strength | FLOAT | 1.000β1 | β |
| latent_downscale_factor | FLOAT | 11β10 | For IC-LoRA on small grid. 1 means original size, 2 means half size, 3 means third, etc. |
| crop | COMBO | disabled | Crop mode when resizing. 'center' crops to fit, 'disabled' stretches to fit. |
| use_tiled_encode | BOOLEAN | false | Enable tiled VAE encoding for large resolutions/long videos to reduce memory usage. |
| tile_size | INT | 25664β512 | Spatial tile size for tiled encoding. Only used when use_tiled_encode is enabled. |
| tile_overlap | INT | 6416β256 | Overlap between tiles for tiled encoding. Only used when use_tiled_encode is enabled. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |
| latent | LATENT | β |