IAMCCS Motion Parts IC-LoRA Apply
The LTX-2 IC-LoRA applicator that glues motion control into conditioning
- positive
- negative
- vae
- latent
- control_frames
- guide_data
- model
- positive
- negative
- latent
- model
- latent_downscale_factor
- report
LTX's IC-LoRA ecosystem is how you steer the model with a reference image or control frames - it's the mechanism behind the official pose/depth/canny control LoRAs that pulled LTX into VFX workflows. IAMCCS_MotionPartsICLoRAApply is the heavy-duty version of that: it takes your conditioning, a VAE, a latent, and rendered control frames, then applies an IC-LoRA per the motion plan so the guide actually steers generation. It's the payoff node at the end of the Shotboard V4 motion chain.
From IAMCCS-nodes (author IAMCCS, the same person whose LTX-2.3 low-VRAM workflows got picked up across r/comfyui), this is the node where the plan becomes pixels. It's not subtle and it's not small - six outputs, a dozen inputs, a tiled-encode option. It's built for real motion-guided LTX-2 work.
How it works
The node fuses the IC-LoRA approach into your generation in one pass. control_frames (the rendered motion guide) are encoded through your vae and injected into the conditioning alongside your positive/negative, and the IC-LoRA - selected via ic_lora_name - is applied with ic_lora_strength. The motion_render_plan_json tells it which frames and which strength tiers to apply where; the default_strength and default_attention_strength fallbacks (0.75 / 0.65) cover anything the plan doesn't pin down.
The memory-conscious touches are the ones worth calling out. latent_downscale_factor (default 1) lets you encode the control at lower latent resolution - often fine for guidance and a big VRAM win. use_tiled_encode + tile_size/tile_overlap (256/64 default) do tiled VAE encoding for the control frames, which is your OOM escape hatch on big clips. scale_by and upscale_method resize the control frames to match. Optional model and guide_data hook the pack's wider pipeline in if present.
Inputs and outputs
Required: positive, negative (CONDITIONING), vae (VAE), latent (LATENT), control_frames (IMAGE), motion_render_plan_json, the strength defaults, encode settings.
Optional: guide_data, model, ic_lora_name (default None), ic_lora_strength, image_attention_strength, scale_by, upscale_method.
Outputs:
positive/negative(CONDITIONING) - the guided conditioning, into your sampler.latent(LATENT) - processed latent out.model(MODEL) - model out (patched if the IC-LoRA was applied at model level).latent_downscale_factor(FLOAT) - echo of what you set, so downstream nodes stay consistent.report(STRING) - what the apply actually did.
How to install
Ships in IAMCCS-nodes. ComfyUI Manager search "IAMCCS", or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart. You'll additionally need the IC-LoRA files (official LTX control LoRAs or your own) - they don't come with the pack. ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.
Gotchas
Start with latent_downscale_factor 1 and only push it if VRAM demands - encoding control frames at 1× is what keeps the guidance honest. If you OOM on long clips, enable use_tiled_encode before you start cutting quality elsewhere. And the ic_lora_name dropdown only lists what's present at load - put your IC-LoRAs in the models folder and refresh the page, or it'll show just None. On low-VRAM LTX-2 setups specifically, remember the pack's VAE-decode-to-disk and VRAM-flush siblings exist precisely because this kind of node balloons memory on long clips.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| latent | LATENT | — | |
| control_frames | IMAGE | — | |
| motion_render_plan_json | STRING | {} | — |
| default_strength | FLOAT | 0.750–1 | — |
| default_attention_strength | FLOAT | 0.650–1 | — |
| latent_downscale_factor | FLOAT | 11–10 | — |
| crop | COMBO | center | 2 options: disabled, center |
| use_tiled_encode | BOOLEAN | false | — |
| tile_size | INT | 25664–512 | — |
| tile_overlap | INT | 6416–256 | — |
| guide_dataopt | GUIDE_DATA | — | |
| modelopt | MODEL | — | |
| ic_lora_nameopt | COMBO | None | 1 options: None |
| ic_lora_strengthopt | FLOAT | 1.00-100–100 | — |
| image_attention_strengthopt | FLOAT | 1.000–1 | — |
| scale_byopt | FLOAT | 1.000.01–8 | — |
| upscale_methodopt | COMBO | bicubic | 5 options: nearest-exact, bilinear, area, bicubic, bislerp |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| model | MODEL | — |
| latent_downscale_factor | FLOAT | — |
| report | STRING | — |