Nodes/ComfyUI-LTXVideo/πŸ…›πŸ…£πŸ…§ Add Video IC-LoRA Guide
ComfyUI Node Runs on cloud

πŸ…›πŸ…£πŸ…§ Add Video IC-LoRA Guide

Feed a control video into LTX

By LightricksΒ·Created 2 years agoΒ·Updated about a month agoΒ· 3,956
πŸ…›πŸ…£πŸ…§ Add Video IC-LoRA Guide
  • positive
  • negative
  • vae
  • latent
  • image
  • positive
  • negative
  • latent
β—„frame_idx0β–Ί
β—„strength1.00β–Ί
β—„latent_downscale_factor1β–Ί
β—„cropdisabledβ–Ί
β—„use_tiled_encodefalseβ–Ί
β—„tile_size256β–Ί
β—„tile_overlap64β–Ί

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_factor here must match what the LoRA was trained for. Wire it from the IC-LoRA loader's latent_downscale_factor output 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_encode and let it chunk the encode.
  • Strength as a cure-all. Pushing strength to 1 makes the control dominate and can bury your prompt. If the output rigidly copies the control and ignores your text, ease it down.
CategoryLightricks/IC-LoRA

Inputs (12)

NameTypeDefaultDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
vaeVAEβ€”
latentLATENTVideo-only latent to condition. Must be a 5D video latent (batch, channels, frames, height, width).
imageIMAGEβ€”
frame_idxINT0-9999–9999Frame 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.
strengthFLOAT1.000–1β€”
latent_downscale_factorFLOAT11–10For IC-LoRA on small grid. 1 means original size, 2 means half size, 3 means third, etc.
cropCOMBOdisabledCrop mode when resizing. 'center' crops to fit, 'disabled' stretches to fit.
use_tiled_encodeBOOLEANfalseEnable tiled VAE encoding for large resolutions/long videos to reduce memory usage.
tile_sizeINT25664–512Spatial tile size for tiled encoding. Only used when use_tiled_encode is enabled.
tile_overlapINT6416–256Overlap between tiles for tiled encoding. Only used when use_tiled_encode is enabled.

Outputs (3)

NameTypeDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
latentLATENTβ€”