LTX I2V Inplace & Upsample
Upscale and Inject Your Guide Image Into an LTX Latent, in One Step
- vae
- video_latent
- image
- upscale_models
- video_latent
Two LTX I2V chores, one node
Image-to-video on LTX usually means doing two fiddly things to the latent after you've built it: optionally upscaling the video latent so you sample at a higher resolution, and injecting your starting image into the latent at a specific frame so the model knows what frame 0 looks like. In stock ComfyUI that's the LTXVLatentUpsampler node and the LTXVImgToVideoInplace node, wired in sequence with a preprocessing step in between.
easy ltxI2VInplaceAndUpsample folds both into one node - "inplace" is doing real work in the name, since the image guide is written straight into the latent in place. It slots naturally into the pack's LTX chain: encode → this → easy ltxSamplerSimple.
How it works
The source is short and orderly:
- Upscale first. Every
upscale_modelsyou connect gets applied viaLTXVLatentUpsampler- you can chain several latent upscale models and they run in sequence. This happens unconditionally, before anything else. - Then the bypass check. If
bypassis true, it returns the (possibly upscaled) latent untouched - useful for keeping one graph that can run with or without the guide. - Then the image guide. If
imageis connected, it picksimages[img_index]from the batch, preprocesses it with yourimg_compression, and callsLTXVImgToVideoInplacewith yourstrength- writing the guide image into the latent so the first frame is anchored to it.
Note the ordering: the upscale runs even when bypass is on. So if you want upscale-without-guide, leave bypass on and keep your upscaler connected. If you want neither, bypass both and it's a pure pass-through.
The inputs that matter
video_latent- the LTX video latent you built earlier (e.g. fromeasy ltxMultiTrackEncode). Required.vae- required; the upsampler and the inplace step both need it.image- the guide image (optional). Without it, the node is just an upscaler / pass-through.upscale_models- aLATENT_UPSCALE_MODEL, typically from an LTX latent upscaler loader. Optional.img_index(0) - which image in the batch becomes the guide. Out of range → a clear error, not a silent grab.img_compression(18) - LTX's image preprocessing compression factor. Higher = more aggressive compression of the guide; the LTX community's CRF-style sweet spot tends to sit around 30–40 when tuning quality, and the default here is a mild 18.strength(0.7) - how strongly the guide image holds the first frame. Lower = more freedom for the model to drift from it; higher = stricter anchor.bypass(false) - skip the image injection (upscaling still runs).
The single output is the modified video_latent - same latent, now upscaled and/or guide-injected, ready for the sampler.
Wiring and traps
Install is the pack install (Manager → ComfyUI-Easy-Media, or git clone + restart). No extra dependencies beyond having LTX-2 core nodes in your ComfyUI.
The ways this bites people:
- Expecting upscale to be skipped by
bypass. It isn't. The bypass only skips the image injection. If you want a plain pass-through, disconnect the upscaler and flip bypass. img_indexoff the end of the batch. If your image batch has 4 frames and you ask for index 7, it raisesimage_index 7 is outside the available image range. Check your batch before blaming the node.- Feeding it a non-LTX latent. This uses LTX's own upsampler and inplace logic; a Wan or MiniMax latent will misbehave or error. It says LTX in the name, and it means it.
- No image, no upscaler, no bypass - you just get your latent back unchanged. Not a bug; that's the node being politely optional about everything.
For LTX-2.3's standard I2V path, this is genuinely the "one node to rule the fiddly parts" - the pack's own example workflows (Templates → ComfyUI-Easy-Media) lean on exactly this shape.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | — | |
| video_latent | LATENT | — | |
| img_index | INT | 0 | — |
| img_compression | INT | 180–100 | — |
| strength | FLOAT | 0.700–1 | — |
| bypass | BOOLEAN | false | — |
| imageopt | IMAGE | — | |
| upscale_modelsopt | LATENT_UPSCALE_MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_latent | LATENT | — |