π LTX Latent Upsampler (Tiled)
The memory-safe way to 2Γ an LTX latent without wrecking extreme aspects
- samples
- upscale_model
- vae
- LATENT
LTX Latent Upsampler (Tiled) is the "wait, it was never the upscaler's fault" node. It's a drop-in replacement for ComfyUI's stock LTXVLatentUpsampler that processes the upscale in spatial tiles instead of all at once. The original reason was fixing color shifts and distortion at extreme aspect ratios - and then the pack author's own investigation found the upscaler wasn't actually the source of upscale-pass color drift. The sampler operating on upscaled token counts was (that's what the LTX Tiled Sampler fixes).
So what's left? A genuinely useful memory-safety tool. For big or extreme-aspect latents, tiling the upscale keeps only one tile in VRAM at a time, so the same upscale that OOMs on a portrait 1080Γ1920 latent just works. In safe-aspect cases the output is virtually identical to the non-tiled version, which is exactly what you want from a drop-in.
How it works
The upscale model runs on tiles with cosine-windowed overlap blending, and the node handles the bookkeeping for you. It un-normalizes the latent once using the VAE's per-channel statistics, tiles and upscales, then re-normalizes once on the full output - so you don't get the per-tile normalization seams that cheaper tiling implementations leak.
The hidden gem is rotate_for_landscape. The theory, per the source: the upscale model's training distribution is biased toward landscape (most video data is wider than tall), so tall portrait inputs are out-of-distribution and drift. Enable it and the node transposes H/W before the upscale forward - making your portrait a "landscape" for the model - then transposes back. It's a lossless geometric transform, and for portrait work it's the difference between clean upscales and color drift. I'd leave it on for anything portrait.
The inputs that matter
samples,upscale_model,vae- required. Theupscale_modelis the LATENT_UPSCALE_MODEL from an Upscale Model Loader,vaeis your LTX2 VAE.tile_size(default 24) andoverlap(default 8) - tile geometry in latent tokens. Ifoverlapis >=tile_sizethe node clamps it for you.max_size_for_no_tile(default 32) - inputs at or below this skip tiling entirely and run the stock non-tiled path, so small latents don't pay the tiling tax.debug- verbose console output for first-time verification.
Output is a single LATENT, ready for your refinement sampler (the tiled one pairs naturally).
Installing it
Same TenStrip pack:
cd ComfyUI/custom_nodes
git clone https://github.com/TenStrip/10S-Comfy-nodes.git 10S_Nodes
or ComfyUI Manager β "10S". Restart, no extra dependencies.
When to actually use it
Reach for this when your latent is big or tall and the stock upsampler chokes or drifts: extreme portrait aspects, 4K+ targets, or 12β16GB VRAM cards where a full-latent upscale forward is asking for trouble. If you're on a 24GB card at normal aspects, the stock LTXVLatentUpsampler is fine and you can skip this - but once your upscale pass starts throwing OOM or your vertical videos start looking like a different color grade, remember it was never the upscaler's fault, and this node exists to keep the upscaler honest anyway.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | β | |
| upscale_model | LATENT_UPSCALE_MODEL | β | |
| vae | VAE | β | |
| tile_sizeopt | INT | 248β128 | β |
| overlapopt | INT | 82β32 | β |
| max_size_for_no_tileopt | INT | 328β256 | β |
| rotate_for_landscapeopt | BOOLEAN | false | β |
| debugopt | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | β |