LTX-2.5 Crop Video Guide ⚡
The tiny cleanup node that keeps IC-LoRA guides from wrecking your upscale
- positive
- negative
- latent
- positive
- negative
- latent
In the LTX-2.5 video-to-video chain, this is the unglamorous node that saves your output. When LTXV25VidToVideo injects an IC-LoRA guide, it appends the reference clip's frames onto the video latent as extra tokens the model cross-attends to. Those tokens are scaffolding - they need to come back off before you finish, and this node is the thing that removes them, at exactly the right point in the chain.
The "right point" is the part that's easy to get wrong: crop after the distilled sampling pass and before the latent upscale. The upscaler has no idea which frames are guides, so if you let it run first it doubles the guide frames spatially, and then cropping the wrong count leaves artifacts baked into your final resolution. This node is a thin wrapper around ComfyUI core's get_keyframe_idxs machinery, applied to the video half of the joint AV latent - it counts how many keyframe tokens the conditioning carries, slices them off, and clears the keyframe_idxs/guide_attention_entries from the conditioning so nothing downstream tries to use them.
The comfort feature: it's a no-op when nothing was appended. If your latent came from a plain t2v/i2v prep node, there are zero guide frames, the crop does nothing, and the latent passes through unchanged. Which means you can leave this node permanently wired into a v2v-capable graph and never have to rewire it when you switch modes. That's a genuinely thoughtful design decision - the node is safe to leave in the chain.
The inputs
Three, all required, all passthrough: positive (CONDITIONING), negative (CONDITIONING), and latent (LATENT). Wire them from LTXV25KSampler's distilled pass. Outputs mirror them - positive, negative, latent - feeding straight into LTXV25LatentUpscale. It errors clearly if you hand it a non-joint latent (i.e. something that isn't the KSampler's AV output), which is the one way this node refuses to cooperate.
Where it fits
LTXV25VidToVideo → KSampler (distilled) → this node → LTXV25LatentUpscale → KSampler (refine) → LTXV25AVDecode. In the plain i2v/t2v chain it's simply omitted (or left wired, since it's a no-op).
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. No model downloads - this node only moves tokens around.
Common issues
There's essentially one mistake to make, and it's ordering: running this after the upscale instead of before. The README spells out why - the upscaler doubles guide frames, and cropping after removes the wrong count. If your v2v output has doubled-up or garbled frames at the start, check that this node sits between the distilled KSampler and LTXV25LatentUpscale. Beyond that, this is about as close to a set-and-forget node as this pack ships.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |