LTX25 Latent Upscale Params
The tiny node that tells LTX25 Ultimate Upscale how big to go
- upscale_model
- vae
- upscale_param
LTX25 Latent Upscale Params doesn't do any work itself. It's a settings bundle - a dict on a wire - that tells the pack's LTX25 Ultimate Upscale node whether to upscale and to what size. You create it, fill in three things, and connect its single output to the main node's latent_upscale_param input. Leave it unconnected and the upscale stage is skipped entirely.
That's the whole design philosophy of this pack, and it's worth internalizing: the big node is a pipeline, and each optional stage gets its own little "params" node that can be added or dropped without rewiring anything.
The three inputs that matter
upscale_model- the LTX2.5 latent spatial upscaler. This is a real checkpoint, a fixed 2x upscaler. You load it with ComfyUI'sLatentUpscaleModelLoader(or the pack's workflow does), and the file lives inComfyUI/models/latent_upscale_models- drop yourltx-2.5-latent-spatial-upscalerfiles there. The node won't download it for you.vae- the LTX2.5 video VAE, not the audio one. It's used for theper_channel_statisticsnormalize/un-normalize around the upscale step, and getting the audio VAE in here is a classic mix-up that silently produces garbage.width/height- the overall upscaled frame size you're aiming for, in pixels, snapped to a multiple of 32 (the LTX VAE's 32x grid). Defaults are 1280x704. The tooltip's warning matters: this must match the conditioning's generation size - the size the video was conditioned at after upscaling - or you get conditioning/latent mismatches downstream.
How the upscale actually happens
The LTX2.5 latent upscaler is a fixed 2x spatial model, so the node does a two-step dance per chunk: run the 2x model upscale, then bilinear-interpolate the result to your requested width/height. If your target is exactly 2x the input, the interpolation is a no-op. Anything else - 1.5x, 2.5x, an unusual aspect ratio - gets the model upscale plus a resize to land on your number. Audio is untouched throughout; only the video half of the AV latent is upscaled.
There's also a VRAM nicety worth knowing: when the upscaler runs, the diffusion model is unloaded from VRAM first, so the two models are never resident at the same time. The main node reloads the diffusion model for the sampling stages automatically.
Installing
Same pack, same install: ComfyUI Manager, search "Comfyui-MMH3-UltimateUpscale", or
cd ComfyUI/custom_nodes
git clone https://github.com/bbaudio-2025/Comfyui-MMH3-UltimateUpscale
then restart. No pip dependencies; the only real requirements are a current ComfyUI and the LTX2.5 upscaler checkpoint in latent_upscale_models. The whole LTX25 line is marked "highly experimental" by the author, so don't expect polish.
Gotchas
- Values snap to multiples of 32 on execution - 1283 becomes 1280. Don't fight it; that's the LTX grid.
- A common failure is a target smaller than your spatial tile size, which the main node rejects with a clear "Upscale width must be >= tile_width" error. If you see that, either drop the tile size in
LTX25 Spatial Split Paramsor raise the target here. - If you're only using this node to upscale without tiling (no spatial params connected), keep in mind it still runs per chunk, so chunk length in the temporal params still bounds your VRAM.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| upscale_model | LATENT_UPSCALE_MODEL | The LTX2.5 latent spatial upscaler (2x). Place ltx-2.5-latent-spatial-upscaler files in the latent_upscale_models folder. | |
| vae | VAE | The LTX2.5 VIDEO VAE (used for per_channel_statistics normalize/un_normalize during upscale). Must be the video VAE, not the audio VAE. | |
| width | INT | 128064–4096 | Target overall pixel width of the upscaled frame (snapped to a multiple of 32, the LTX VAE 32x grid). The 2x model upscale is followed by interpolation to this size. Must match the conditioning's generation size. |
| height | INT | 70464–4096 | Target overall pixel height of the upscaled frame (snapped to a multiple of 32, the LTX VAE 32x grid). The 2x model upscale is followed by interpolation to this size. Must match the conditioning's generation size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscale_param | LTX_UPSCALE_PARAM | LTX2.5 upscale settings consumed by 'LTX25 Ultimate Upscale'. |