LTX Shot Upscaler
The boring 200MB middle node that keeps your LTX shot alive
- video_latent
- upscale_model
- vae
- video_latent
LTXShotUpscaler is the most forgettable node in this pack, and that's kind of the point. It sits between LTXShotRenderer and LTXShotRefiner in the yic03685/ComfyUI-LTXShotRenderer chain, does exactly one thing - a 2x spatial upscale of your video latent - and has literally no knobs. No steps, no seed, no sampler. Three input wires, one output wire, done.
It exists because of VRAM accounting. The renderer runs the main LTX model, which is huge; the upscaler model is tiny (on the order of 200MB). By splitting the upscale into its own node, ComfyUI offloads the main model before this runs, does the cheap upscale, and only reloads the big model for the refiner pass. The author's single commit message says it outright: "Split into 3 nodes for proper VRAM management." That's the whole design philosophy of this pack, and this is the node that makes it work.
How it works
It's a latent-space upscale, not a pixel upscale - there's no VAE decode to images and back. The node un-normalizes the latents through the VAE's per-channel statistics, pushes them through the loaded upscale model, normalizes the result back, and returns a fresh LATENT. It even frees memory from the current device before it starts, and shoves the upscale model back to CPU when it's done. All of that is the author's way of keeping a 24GB card from drowning in the middle of a two-pass pipeline.
The three wires
- video_latent - from
LTXShotRenderer(itsvideo_latentoutput). - upscale_model - a
LATENT_UPSCALE_MODEL, loaded with the standardLatentUpscaleModelLoader. The example workflow usesltx-2.3-spatial-upscaler-x2-1.0.safetensors, which lives in yourmodels/upscale_modelsfolder. That's the one real "download" this node needs, and it's a Lightricks file you'd want for any LTX 2.3 upscale anyway. - vae - the LTX video VAE (the
LTX23_video_vae_bf16.safetensorsin the example, not the audio one).
Output: a single video_latent, which goes into LTXShotRefiner. The audio latent doesn't pass through here - the refiner gets it straight from the renderer. Easy to miss if you're wiring by hand.
Install and gotchas
Same story as its siblings: git clone https://github.com/yic03685/ComfyUI-LTXShotRenderer into custom_nodes (or grab it from ComfyUI Manager), restart, done. No requirements.txt, nothing to pip install.
Two things worth knowing. First, the README is stale copy-paste from an older pack (ComfyUI-LTXDirectorSimple) - ignore it, the code is the documentation. Second, don't be tempted to skip this node and upscale in pixels afterward; the latent upscale here is what keeps the refiner's second pass working on the same compressed space the model actually understands. If you're coming from LTX 2.3's known weakness of soft detail at lower resolutions, this quiet little upscale pass is part of how you fix it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_latent | LATENT | — | |
| upscale_model | LATENT_UPSCALE_MODEL | — | |
| vae | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_latent | LATENT | — |