LTX2.5 Spatial Upscaler (CRT AutoDL)
LTX2.5's latent spatial upscaler, 2x, downloaded on first run
- model
Video resolution is a game of trade-offs, and LTX2.5's answer to "I want bigger" is a latent-space upscaler rather than a pixel-space one. LTX2.5 Spatial Upscaler (CRT AutoDL) loads the 2x latent spatial upscale model for LTX2.5 - auto-downloaded as ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors into ComfyUI/models/latent_upscale_models/ - and outputs it as a LATENT_UPSCALE_MODEL for the latent-upscale stage of your workflow.
If you've used LTX at all, the concept is familiar: LTX models render internally at half your requested resolution and then upscale, which is why "1080p" output is really ~540p upscaled, and why the quality-versus-resolution math is such a recurring theme in the LTX world. The upscaler is where a lot of that final sharpness comes from. The CRT node's job is to hand you the right one without a download hunt.
How latent upscaling works here
Latent upscalers work on the latent tensor before VAE decode, which is far cheaper than upscaling in pixel space - no 2x on a big image, just an upscale pass on the compressed representation. The LATENT_UPSCALE_MODEL output plugs into ComfyUI's latent-upscale machinery alongside a latent, and the model handles the 2x. Because it's bf16, it loads light and stays cheap to run.
The node itself has no inputs - add it, let it download, wire its output where your workflow expects a latent upscale model. In the CRT LTX2.5 stack it pairs naturally with the spatial-resolution side of things; its sibling Temporal Upscaler covers the time axis (frame interpolation), and the IC LoRA nodes cover the content-editing side.
Installing it
Standard CRT install:
cd ComfyUI/custom_nodes
git clone https://github.com/PGCRT/CRT-Nodes.git
pip install -r requirements.txt
or ComfyUI Manager → search CRT-Nodes, restart. First run downloads the model (a few hundred MB) - one of the faster AutoDL downloads in the pack.
Common issues
- Right socket, wrong type - this is a
LATENT_UPSCALE_MODEL, not aMODEL. If your upscale node expects a regular model, you're using the wrong stage; latent upscaling is its own step before decode. - No visible change - latent upscalers sharpen resolution, they don't add new detail the way a pixel-space model (Real-ESRGAN-style) does. If you want texture the latent upscaler can't invent, layer a pixel upscale after decode.
- Pair with the Temporal Upscaler for full 2x - spatial alone doubles width/height, not duration.
- Update breakage - red socket or
NaN→ right-click → Fix node (recreate).
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | LATENT_UPSCALE_MODEL | — |