Nodes/ComfyUI-GGUF-Loader/LTX-2.5 Video to Video (IC-LoRA) ⚡
ComfyUI Node

LTX-2.5 Video to Video (IC-LoRA) ⚡

LTX-2.5 video-to-video that loads its IC-LoRA in-node

By ChrisColeTech·Created 20 days ago·Updated about 14 hours ago· 7
LTX-2.5 Video to Video (IC-LoRA) ⚡
  • model
  • clip
  • vae
  • audio_vae
  • images
  • video
  • reference_audio
  • model
  • positive
  • negative
  • latent
  • frame_rate
modet2v
prompt
negative_prompt
width1280
height704
length121
frame_rate24.00
batch_size1
image_strength0.70
img_compression18
ic_loranone
ic_lora_strength1.00
guide_strength1.00
keep_original_audiotrue
latent_downscale_factor1
length_from_audiotrue

This is the do-everything prep node for LTX-2.5: text-to-video, image-to-video, and - the headline feature - video-to-video via an IC-LoRA task adapter that loads inside the node. No external LoraLoaderModelOnly wiring, no "is the LoRA attached" boolean to guess at. You pick a task adapter from a dropdown, feed it your source clip, and the node handles the whole guide-injection mechanism. Beard removal, HDR grading, motion tracking, deblurring - any LTX IC-LoRA trained on whole-video reference conditioning - this is the node for it.

The mechanism is genuinely different from the i2v first-frame hold. The source video's frames get VAE-encoded and appended as extra reference tokens the model cross-attends to at the same timeline position as what it's generating (ComfyUI core's keyframe_idxs RoPE mechanism), then cropped back off after sampling. The official examples wire that by hand across ~10 nodes; this node collapses all of it into one prep step. Because those guide tokens are appended, the family's Crop Video Guide node strips them off after the distilled pass - and before the latent upscale, because the upscaler can't tell guide frames from output frames and would double both.

The inputs that matter

The mode dropdown declares the base behavior and is validated against what's connected: t2v (nothing connected), i2v (images required), v2v (video required). Then the interesting set:

  • video - your source clip. When connected, length and frame_rate are taken from the clip rather than the widgets.
  • ic_lora - the task adapter, straight from your models/loras folder. Loaded onto the model here at ic_lora_strength. Set to none and a connected video is used only for length/frame-rate/audio - useful for A/B-ing whether the adapter is doing anything.
  • guide_strength - how hard the reference is held; 1.0 is the official default.
  • keep_original_audio (default on) - keeps the source clip's own audio unchanged in the output. Off means the model generates new audio from scratch.
  • reference_audio - drive generation from a voice or sound clip with no source video; length_from_audio sizes the video to it.
  • latent_downscale_factor - ignore it unless your IC-LoRA's model card says it was trained on a downscaled reference grid. Most use 1.0.
  • img_compression - the 2.5-specific widget, the H.264 CRF round-trip on i2v holds (official 18).

Outputs: model, positive, negative, latent, frame_rate. Chain: this node → KSampler (distilled)Crop Video GuideLatent Upscale x2KSampler (refine)AV Decode.

Installing it

Part of the ComfyUI-GGUF-Loader pack (ChrisColeTech's fork of city96's ComfyUI-GGUF). ComfyUI Manager: search "ComfyUI-GGUF-Loader". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
pip install --upgrade gguf

Restart. The IC-LoRA weights themselves go in models/loras.

Common issues

Two worth flagging. First, the on-disk IC-LoRA adapters are 2.3-trained - they load cleanly onto 2.5 (same key layout), but cross-version quality is whatever the weights give you; don't be shocked if a 2.3-tuned adapter behaves differently here. Second, remember the crop: feed the distilled output straight into the upscaler and the guide frames get doubled into the final resolution. The node's own recipe order exists for a reason.

Category🤖 CCTech/LTX-2.5

Inputs (23)

NameTypeDefaultDescription
modelMODEL
clipCLIP
modeCOMBOt2vWhich base behavior this call is. t2v: images/video must be disconnected. i2v: images required (video may still layer on top as an IC-LoRA guide). v2v: video required (images may still layer on top as a first-frame hold).
vaeVAEThe loader's vae (video VAE) output.
audio_vaeVAEThe loader's audio_vae output.
promptSTRINGWith ic_lora set: describe the OUTPUT you want - most IC-LoRAs are trained on an instruction-style caption describing the transformed result. Otherwise: describe the scene and its motion, a caption not an instruction.
negative_promptSTRING
widthINT128064–16384FINAL output width. Stage 1 samples at half this (the official recipe) and the latent upscaler doubles it back.
heightINT70464–16384FINAL output height - stage 1 runs at half, like width.
lengthINT1219–16384Frames; 8k+1 tiles exactly. Ignored (taken from the clip instead) when video is connected.
frame_rateFLOAT24.001–120Ignored (taken from the clip instead) when video is connected.
batch_sizeINT11–4096
imagesoptIMAGEFirst frame(s) for image-to-video (ordinary i2v hold, independent of video/ic_lora below) - resized and CENTER-CROPPED to the stage-1 grid.
image_strengthoptFLOAT0.700–1images only. How much of the init image(s) to keep. 0.7 is the official 2.5 stage-1 value; 1.0 locks the first frames hard.
img_compressionoptINT180–100i2v hold only (the one 2.5-specific widget). Core LTXVPreprocess's H.264 crf round-trip on the input image (official value 18; 0 = off).
videooptVIDEOSource clip for IC-LoRA video-to-video (see ic_lora) and/or its original audio (see keep_original_audio). Sets length/frame_rate from itself.
ic_loraoptCOMBOnonevideo only. The IC-LoRA task adapter (beard removal, HDR grading, motion tracking, ...) - loaded onto model HERE (no external LoraLoaderModelOnly needed) at ic_lora_strength, then drives the actual vid2vid guide-injection mechanism. "none" = video is used only for length/frame_rate/original audio, ignored for guidance - useful for A/B-ing whether the IC-LoRA is doing anything.
ic_lora_strengthoptFLOAT1.00-100–100ic_lora only. Same as LoraLoaderModelOnly's strength_model.
guide_strengthoptFLOAT1.000–1ic_lora only. How strongly the reference is held. 1.0 = fully held (official default).
keep_original_audiooptBOOLEANtruevideo only. On = output keeps the source clip's own audio unchanged. Off = the model generates new audio from scratch instead.
latent_downscale_factoroptFLOAT11–10ic_lora only. Only for IC-LoRAs trained on a downscaled reference grid (rare - check the LoRA's model card / reference_downscale_factor metadata; most use 1.0). Checked against the stage-1 half resolution, where the guide lands.
reference_audiooptAUDIODrive generation from a voice/sound clip with no source video. Not meant to be combined with video+keep_original_audio.
length_from_audiooptBOOLEANtrueWith reference_audio and no video: size the video to the clip.

Outputs (5)

NameTypeDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
frame_rateFLOAT