Files
ausboss-ComfyUI-AusBoss/js/docs/AUSBOSS_NODES_ImageResize.md
T
ausboss 358ea00b4b Name controls in the help pages the way the node faces show them
Help pages named the raw widget (divisible_by, max_frames, color_match)
where the card shows a label (Multiple, Limit, Tone match), so a reader
could not find the control. Each such control now reads as the visible
label with the widget name beside it, and option values show the text
on the segment (match a, hist, cover, guided).
2026-09-24 00:46:14 -05:00

3.1 KiB
Raw Blame History

Image Resize

One resize node for the jobs that usually pull in a whole pack: hit an exact width+height, scale until the longest or shortest edge lands on a number, meet a megapixel budget, or multiply by a scale factor. An optional mask rides through the identical geometry, and the output width/height come back as INTs ready to wire onward.

Target modes

Target (target_mode) picks the mode. The card shows only that mode's size row, and the other size values are ignored.

  • Width × height (width+height): The two Size fields, W and H (width, height). Their input sockets sit with the node's inputs, under image and mask; a linked one greys its field out. 0 keeps that source dimension, and with only one set the other follows the source aspect.
  • longest_edge / shortest_edge: Scales until that edge equals Edge (edge_length) exactly; the other edge keeps the aspect. 0 keeps the source size.
  • megapixels: Scales (aspect preserved) until width × height is about Budget (megapixels) million pixels. 0 keeps the source size.
  • scale_factor: Multiplies both dimensions by Scale — 0.5 halves, 2.0 doubles. 0 keeps the source size.

Fit

Fit (keep_proportion) decides what happens when the target aspect differs from the source:

  • stretch: Distorts straight to the target.
  • fit: Shrinks the target box to the source aspect — the output can be smaller than requested, but there are never bars and nothing is cropped.
  • cover (cover_crop): Fills the target completely and center-crops the overflow.
  • pad: Fits inside the target and fills the rest with Fill (fill_color: hex, R, G, B, one grayscale number, or a CSS name). The new bars are 1.0 in the mask output — the same generated-area contract as the pack's other pad nodes, so it feeds an inpainter directly.

Notes

  • Multiple (divisible_by) snaps each output dimension to the nearest multiple (never below one step) — 16 for WAN, 8 for most latent spaces. It wins over exact proportion, so a dimension can shift by up to half a step. It applies even when everything else says "keep the source".
  • Pixels are only ever invented on explicit request. In every target mode except width+height the box is derived from the source's own aspect, so there is nothing to letterbox against: the proportion modes all resolve a divisible_by snap with an invisible sub-half-step resize, and the mask output stays black. Bars — and white in the mask — can only appear when you set a width+height box that disagrees with the source and choose pad.
  • Filter (interpolation): lanczos (PIL, in float — the sharpest all-rounder), bicubic, bilinear, nearest (pixel art, hard masks), area (best for strong downscales). A resize that changes nothing passes the tensor through bit-identical.
  • The mask output is the input mask through the same transform, plus the pad bars; all zeros when no mask is wired. IMAGE is BHWC, MASK is BHW, and batches flow through frame by frame.