Image Size Adjuster V2
The node that never touches a pixel
- image
- adjusted_width
- adjusted_height
- applied_scale
- original_width
- original_height
Every model family has a "native" resolution, and feeding it the wrong size is how you get baked-in artifacts, weird crops, or that subtle quality loss you can't quite name. ImageSizeAdjusterV2 is a math node that solves exactly one problem: what size should this image be so the model is happy? It takes your image, figures out the ideal dimensions for the target model, and hands you back the width and height as numbers - it doesn't resize anything. It's the boring utility that quietly saves you from a hundred small mistakes.
The inputs that matter
- model_type - the dropdown with ten targets:
SD(512×512 territory),SDXL(1024²),QWEN,1440x,WAN22,Cascade,3072x,4K,8K,16K. Each carries its own target pixel count, which is the whole point - you pick the model you're about to feed. - downscale_factor (default 64) - the number both dimensions must be divisible by. This is the real "model happy" knob: SD/SDXL latent sizes and tiled setups like multiples of 8 or 64, and sticking to them avoids the "resolution not divisible" warnings that silently degrade results.
- rounding_method -
up,down, ornearestfor snapping to that multiple. - preserve_original (
none/width/height) - keep one original dimension if it's already divisible, and only adjust the other. - force_square - output a square.
- Optional: scaling_factor (0.1–10) multiplies the target pixel count for overscan or underscan, and max_width/max_height cap the result.
The outputs
Five outputs, and they're the entire value of the node: adjusted_width (INT), adjusted_height (INT), applied_scale (FLOAT - the ratio that was actually applied, useful for compensating elsewhere), original_width, and original_height. Wire adjusted_width and adjusted_height into an Empty Latent Image's size inputs, or into a latent resize / conditioning node, and the sampler gets exactly what the model wants.
How it works
It's arithmetic with aspect-ratio handling: compute the target pixel count from the model, scale by scaling_factor, derive dimensions from the aspect ratio (square if forced), preserve a dimension if asked, round to the downscale factor, clamp to the maxes, and report the scale actually applied. Deterministic, instant, no image data changes hands.
The honest take
The original ImageSizeAdjuster already did the basics; V2's additions are the extra model presets (WAN22, QWEN, 4K/8K/16K), the applied_scale output, and the preserve/max clamping. If you build workflows for multiple backbones, this is the kind of node you drop in once and stop thinking about - the "compute correct size for the model" step becomes a wire instead of a mental calculation. Just don't confuse it with a resizer: it calculates, it doesn't apply. Pair it with an ImageScale/Resize node downstream when you actually want the pixels changed.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model_type | COMBO | 10 options: SD, SDXL, QWEN, 1440x, WAN22, Cascade, +4 | |
| downscale_factor | INT | 641–128 | — |
| rounding_method | COMBO | 3 options: up, down, nearest | |
| preserve_original | COMBO | 3 options: none, width, height | |
| force_square | BOOLEAN | false | — |
| scaling_factoropt | FLOAT | 1.00.1–10 | — |
| max_widthopt | INT | 204864–8192 | — |
| max_heightopt | INT | 204864–8192 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| adjusted_width | INT | — |
| adjusted_height | INT | — |
| applied_scale | FLOAT | — |
| original_width | INT | — |
| original_height | INT | — |