π₯ Winnougan LTX Image Resize
Resize your reference image to LTX-valid dimensions, no math node needed
- image
- image
- width
- height
Any LTX-2.3 image-to-video workflow needs your reference image resized to dimensions the model will accept - width and height divisible by 32 - and it needs that size to match the latent you're generating into. In a plain ComfyUI graph that's two resize nodes, a math expression or two, and a prayer that the numbers line up. Winnougan LTX Image Resize collapses that into one node whose width and height inputs plug straight into the pack's Resolution & Frame Calculator, so the whole graph agrees on the same numbers without you doing arithmetic.
It's a purpose-built video-workflow resize rather than a general-purpose one, and the differences matter: the width and height inputs step by 32 and auto-snap, and the resize modes are the five aspect-ratio behaviors you actually want for video, not a menu of vague presets.
How it works
The node takes your image plus target width/height, snaps the targets to multiples of 32 (never below 32), and resizes with ComfyUI's own common_upscale using your chosen interpolation. Because it accepts plain integer inputs, you wire width and height outputs from the calculator directly - no text-to-int conversion nodes, no expression strings.
The mode input is where the real decisions live:
fit_inside(default) - scale to fit within the target, preserving aspect ratio. Letterboxes/pillarboxes. Right call when your source aspect differs from the target, e.g. a portrait image going to landscape video.fill_and_crop- scale to fill the target entirely and crop the excess from center. No black bars, but you lose the edges of your frame.stretch- ignore aspect ratio entirely. Only sane when the ratios already match.fit_width/fit_height- lock one dimension exactly and scale the other proportionally.
interpolation defaults to lanczos, which the tooltip flags as best for downscaling; bicubic is the pick when you're upscaling.
Inputs and outputs
image- your reference frame (IMAGE).width/height- defaults 768Γ512, wired from the calculator in practice; both snap to Γ·32.- Outputs:
image(the resized result), pluswidthandheightreporting the actual snapped size - useful downstream, and the honest way to discover your input got nudged.
Install
Part of the ComfyUI_WLTX_nodes pack, under Winnougan LTX:
cd ComfyUI/custom_nodes
git clone https://github.com/Winnougan/ComfyUI_WLTX_nodes
Restart ComfyUI, or search ComfyUI_WLTX_nodes in ComfyUI Manager. No extra dependencies - it's pure torch and ComfyUI's own upscale helper.
Common issues
The recurring failure is a mismatch between the resized image and the latent dimensions downstream: resize to 1280Γ736 but generate into a 1920Γ1088 latent and you get a composited mess. The clean habit is to wire this node's width/height from the same calculator outputs that feed EmptyLTXVLatentVideo, so the two can't drift apart. And if you're resizing a portrait image for a landscape video and hate the black bars, fill_and_crop exists precisely for that - just budget for the center crop chopping your subject's edges.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| width | INT | 76832β8192 | Target width in pixels. Wire from Winnougan LTX Calculator 'width' output. Auto-snapped to multiple of 32. |
| height | INT | 51232β8192 | Target height in pixels. Wire from Winnougan LTX Calculator 'height' output. Auto-snapped to multiple of 32. |
| mode | COMBO | fit_inside | fit_inside: scale to fit within target, preserving aspect ratio. fill_and_crop: scale to fill target, crop excess from center. stretch: ignore aspect ratio, fill target exactly. fit_width: match width exactly, scale height proportionally. fit_height: match height exactly, scale width proportionally. |
| interpolation | COMBO | lanczos | Interpolation method. Lanczos is best quality for downscaling. Bicubic for upscaling. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| width | INT | β |
| height | INT | β |