Nodes/ComfyUI-LTXShotRenderer/LTX Shot Upscaler
ComfyUI Node

LTX Shot Upscaler

The boring 200MB middle node that keeps your LTX shot alive

By yic03685·Created 3 months ago·Updated 3 months ago· 1
LTX Shot Upscaler
  • 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 (its video_latent output).
  • upscale_model - a LATENT_UPSCALE_MODEL, loaded with the standard LatentUpscaleModelLoader. The example workflow uses ltx-2.3-spatial-upscaler-x2-1.0.safetensors, which lives in your models/upscale_models folder. 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.safetensors in 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.

Categorysampling/ltxv

Inputs (3)

NameTypeDefaultDescription
video_latentLATENT
upscale_modelLATENT_UPSCALE_MODEL
vaeVAE

Outputs (1)

NameTypeDescription
video_latentLATENT