LTX-2.5 Img to Video ⚡
One frame in, five seconds of moving (and talking) video out — LTX-2.5 i2v
- model
- clip
- vae
- audio_vae
- images
- model
- positive
- negative
- latent
- frame_rate
This is the node that turns one still image into an LTX-2.5 video: prompts, the half-resolution stage-1 latent, and the noise masks all in one place. It's the prep step for the whole text-to-video/image-to-video chain, and it's also the reason you don't have to hand-build the official recipe's a/2 resolution math yourself. Give it a model, a clip, the two VAEs, a prompt, and (for i2v) a first frame - it hands back a ready-to-sample latent plus conditioning.
The workflow it implements is the two-stage LTX-2.5 recipe. Stage 1 samples at half the resolution you actually want - width/height here are the final output size, and the node builds the stage-1 latent at half of it. The latent upscaler doubles it back between the distilled and refine passes. So the chain is: this node → KSampler (distilled) → Latent Upscale x2 → KSampler (refine) → AV Decode. Get used to it; every LTX-2.5 graph you see will be some variation of that.
The inputs that matter
Required: model, clip, vae (video VAE), audio_vae, mode, prompt, plus the geometry. The ones a beginner actually touches:
mode-i2v(default) needsimagesconnected;t2vrequiresimagesdisconnected. The node validates this and errors if you get it backwards.prompt- a caption, not an instruction. LTX punishes short prompts; describe the scene and the motion in a sentence or three.width/height- the FINAL resolution. 1280×720 is the sensible default; stage 1 runs at half and the upscaler restores it.length- frames, on the 8k+1 tile grid (9, 97, 121…). 121 at 24 fps is the 5-second default.images- the first frame. The node resizes and center-crops it to the stage-1 grid itself - the tooltip's advice is explicit: do not scale it upstream. You also wire the same image intoLTXV25LatentUpscalefor the refine-pass re-hold.image_strength- i2v only. How hard the first frame is held in stage 1; 0.7 is the official value. The refine pass re-holds at 1.0 (locked).img_compression- the H.264 CRF round-trip on the input image (official 18, 0 = off). It matches the compression statistics the model was trained on so the first frame doesn't pop.
Outputs: model, positive, negative, latent, and frame_rate - wire that last one into AV Decode's fps rather than typing a number, and you'll never drift audio out of sync.
Installing it
This node ships in the ComfyUI-GGUF-Loader pack (ChrisColeTech's fork of city96's ComfyUI-GGUF). ComfyUI Manager: search "ComfyUI-GGUF-Loader". Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
pip install --upgrade gguf
Restart. Nothing extra to download beyond the LTX-2.5 kit itself.
Common issues
The mode guard is the main failure mode: i2v with no images, or t2v with images connected, and it refuses to run - that's the node protecting you. Second classic: pre-scaling the first frame upstream, then getting surprised when it's center-cropped anyway. Let the node do its job. And if your video looks static, the fix is almost always a longer, more specific prompt, not more steps - LTX-2.5's distilled bake is trained for exactly 8 steps.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| mode | COMBO | i2v | Which base behavior this call is. i2v: images required (first-frame hold). t2v: images must be disconnected. |
| vae | VAE | The loader's vae (video VAE) output. | |
| audio_vae | VAE | The loader's audio_vae output. | |
| prompt | STRING | Describe the scene and its motion. A caption, not an instruction. | |
| negative_prompt | STRING | — | |
| width | INT | 128064–16384 | FINAL output width. Stage 1 samples at half this (the official recipe) and the latent upscaler doubles it back. |
| height | INT | 72064–16384 | FINAL output height - stage 1 runs at half, like width. |
| length | INT | 1219–16384 | Frames; 8k+1 tiles exactly (9, 97, 121...). 121 @ 24 fps = the workflow's 5 s default. |
| frame_rate | FLOAT | 24.001–120 | 24 is the LTX-2 convention. The frame_rate output carries it to LTXV25AVDecode. |
| batch_size | INT | 11–4096 | — |
| imagesopt | IMAGE | First frame. Resized and CENTER-CROPPED to the stage-1 grid here - do not scale it upstream. Wire the SAME image into LTXV25LatentUpscale for the refine re-hold. | |
| image_strengthopt | FLOAT | 0.700–1 | i2v only. How hard the first frame is held in stage 1. 0.7 is the official stage-1 value; the refine re-hold in LTXV25LatentUpscale uses 1.0 (locked). |
| img_compressionopt | INT | 180–100 | Core LTXVPreprocess's H.264 crf round-trip on the input image (official value 18; 0 = off). Matches the compression statistics the model was trained on so the first frame doesn't pop. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| frame_rate | FLOAT | — |