LTX Video Image Scaler MXD
The scaler that knows LTX wants a 32-aligned Stage 1 and a /64 final
- image
- image
- width
- height
LTX-Video has a specific problem that vanilla image scalers ignore: the distilled two-stage workflow renders Stage 1 at exactly half the final resolution, and both sizes have to land on the right alignment for the model's latent constraints. This node bakes that whole juggling act into one drop-down - pick a tier, feed it an image, and it returns the correctly-sized Stage 2 image plus the Stage 1 dimensions you're supposed to render into.
Why the weird half-size thing? LTX-2's distilled pipeline drafts at low resolution and then upscales - the pack's docs describe it as a two-stage pass where finals are /64 aligned so the Stage 1 stays /32 (the LTX latent constraint). If you've ever hand-computed those numbers and gotten a "latent shape mismatch" error at queue time, you know exactly why this node exists.
How it works
Pick a tier - 1080p (1920×1088-class buckets), 720p (1280×704-class), or 576p (1024×576-class) - and the node rescales your image to the tier's final bucket. crop_to_fit is the mode switch:
- on (default, "Crop Edges") - resize-to-cover then center-crop to the exact bucket. Nothing wasted, but edges get cut.
- off ("Closest Fit (No Crop)") - proportional resize, alignment-checked, but may come out smaller than the full bucket.
Square sources (within ~3% of 1:1) map to the tier's square bucket, so portrait, landscape, and square all land correctly.
Inputs and outputs
Inputs: image (IMAGE), tier, crop_to_fit. Outputs:
image- the rescaled image at the final (Stage 2) size.width/height- the Stage 1 dimensions, exactly half. This is the subtle bit: you wire these into the LTX empty latent for the low-res pass, run Stage 1, then the spatial upscaler ×2 brings it back to the final size.
Installing it
Part of the ComfyUI-MaxedOut pack. ComfyUI Manager search Maxed Out, or:
cd ComfyUI\custom_nodes
git clone https://github.com/Maxed-Out-99/ComfyUI-MaxedOut.git
Restart ComfyUI. No extra dependencies, no model downloads.
Where people get burned
The classic mistake is wiring the image output into a stock "scale to size" node and using its reported dimensions instead of this node's width/height. Those two INT outputs exist for a reason - they're the Stage 1 numbers the empty latent needs. Also, crop_to_fit on is the safe default for I2V because LTX likes exact buckets; if you're turning off crop to avoid cutting your subject, expect the latent to be smaller than the full tier, which is fine for Stage 1 but changes your final upscale math.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| tier | COMBO | 1080p | 3 options: 1080p, 720p, 576p |
| crop_to_fit | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| width | INT | — |
| height | INT | — |