ComfyUI Node

Scaler | Fixed

Resize to an exact resolution — and the aspect-ratio trap inside it

By wmpmiles·Created 2 years ago·Updated about a year ago· 5
Scaler | Fixed
    • scaler
    width1024
    height1024

    Scaler | Fixed is the bluntest sizing tool in the pack: give it a width and a height, and it resizes whatever it's wired to to exactly that resolution. It's the node you reach for when you know the target size and don't want to do math - "I need this at 1536×1024" - and it plugs into Resample Image, Resample Mask, Resample Latent, or the Pre node of the inpaint pair.

    The two inputs are width (INT, default 1024) and height (INT, default 1024), both with a min of 1. Output is a scaler wire. That's the entire surface area of the node.

    The trap: it doesn't preserve aspect ratio

    Here's the thing that trips everyone up the first time. A fixed resolution is a fixed resolution - the node does not letterbox, pad, or preserve your aspect ratio. Feed a 1920×1080 landscape image into a 1024×1024 Scaler | Fixed and you get a stretched square. No warning, just distortion.

    That's sometimes exactly what you want (forcing a model's native training resolution on a batch of mixed-ratio images), but when it isn't, the pack has the answer built in: use Scaler | Area or Scaler | Megapixels, which scale by pixel count and preserve aspect ratio. A common pattern is Scaler | Fixed for images that are already near your target ratio, and an area-based scaler for everything else.

    Matching model-native resolutions

    The other habit worth picking up: for diffusion work, "fixed" should usually mean a resolution your model was trained on. The SDXL generation sizes (1024×1024, 1152×896, 1216×832, and their rotations) exist for a reason - models produce their best output at those aspect ratios. If you're using this scaler to feed a Resample Image before a VAE encode, setting it to a native resolution beats arbitrary sizes, and keep it to a multiple of 8 for the latent side of things. For masks and latents, same rule: Scaler | Fixed on Resample Latent sizes the latent tensor directly, so pick values that decode sensibly.

    Installing

    One of several scalers in comfyui-some-image-processing-stuff:

    cd ComfyUI/custom_nodes
    git clone https://github.com/wmpmiles/comfyui-some-image-processing-stuff
    

    Restart ComfyUI, or install via ComfyUI Manager (search "Some Image Processing Stuff"). No models, no extra pip dependencies. And since it's a scaler, it's half of a two-part setup: pick the filter separately (Lanczos for upscaling, area for downscaling) and wire both into the Resample node.

    Categoryresampling/scaler

    Inputs (2)

    NameTypeDefaultDescription
    widthINT1024
    heightINT1024

    Outputs (1)

    NameTypeDescription
    scalerSCALER