Image Scale Down
Shrink an image to an exact size, with optional center crop
- images
- IMAGE
Sometimes you just need an image smaller. Not "upscaled with a model," not "resized to a multiple of 8 for latent math" - genuinely scaled down to a size you specify. easy imageScaleDown does that one job cleanly: give it images and a target width and height, get a smaller image out.
It's an unglamorous utility, but a workflow full of these little QoL nodes is exactly what the Easy-Use pack is for. You reach for it constantly once you have it: making a preview thumbnail, downsizing a huge input before it hits a slow node, fitting an image to a fixed frame before compositing.
How it works
Standard image resample down to the dimensions you set. The only real decision is what happens when the target aspect ratio doesn't match the source - that's the crop control.
The inputs and outputs that matter
images- the image (or batch) to shrink.width/height(both default 512) - the target size in pixels. Set them to whatever you actually want out.crop-disabledscales to fit and will squash the aspect ratio if width:height doesn't match the source;centercrops from the middle to hit the exact dimensions without distortion. If you care about not stretching faces, usecenter.
Output is a single IMAGE. Wire it wherever you'd use any image.
How to install it
ComfyUI Manager: search ComfyUI-Easy-Use, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use
then install.bat / pip install -r requirements.txt, restart. No models, no dependencies - this is a pure pixel op.
Common issues & troubleshooting
Your image looks stretched. That's crop: disabled doing exactly what it says - forcing the source into your width×height regardless of aspect ratio. Switch to center if you'd rather crop than squash.
It's not for enlarging. The name is honest: this scales down. If you feed it a target larger than the source it'll technically upsample, but you'll just get a soft, blurry result - there's no detail-adding model here. For actual upscaling you want a model-based upscaler (ESRGAN-family, or a latent hires pass), not this node. Use imageScaleDown to reduce, and a real upscaler to grow.
Downscaling before a detailer throws off your masks. If this sits upstream of a face-detailer or mask op, remember the coordinates change with the size. Scale first, then detect - not the other way around.
Handy as a VRAM/speed pressure valve. A common real use: an input image is enormous (a phone photo, a 4K render), and every downstream node chokes on it. Drop easy imageScaleDown right after the load to bring it to a sane working size, do your work, and upscale at the end if you need the resolution back. Processing at the size you actually need instead of the size you happened to get is one of the easiest speedups there is.
Feeding IP-Adapter or CLIP vision. Those encoders resize internally anyway, so a giant reference image is wasted memory. Scaling references down to something modest before an adapter node costs you nothing in quality and saves the encode some work.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| width | INT | 5121–16384 | — |
| height | INT | 5121–16384 | — |
| crop | COMBO | 2 options: disabled, center |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |