Resize Crop Pixaroma
Force any image to an exact size, no stretching, no bars
- image
- mask
- image
- mask
- width
- height
Video latents don't negotiate. If your pipeline needs frames at exactly 704×1280, every frame has to be exactly 704×1280 - not close, not "about," exact. Resize Crop Pixaroma is the blunt instrument for that: it scales the image to completely fill your target width and height, then crops the overflow away from the center, so the result is always precisely the size you set. No stretching, no letterboxing, no aspect-ratio surprises. Small images scale up to fill too, so it's equally happy downscaling a photo and upscaling a thumbnail.
How it works
The mechanism is crop-to-fill, plain and predictable: scale to cover the box, crop the excess from the center. That's the whole node, and its predictability is the point - unlike a "fit inside" resize, the output can never come out at some other aspect ratio that then breaks your latent or your encoder.
image- what you're resizing. Works on a single image, a batch, or video frames.width/height- the target size, type them directly or wire them in from another node (a Resolution Pixaroma, a WH node, a Number node - anything producing INTs). The arrow stepping moves by 8, matching the pack's other size nodes and the general rule that diffusion and video models are happiest on multiples of 8; you can still type any exact value.mask- optional, cropped the same way to the same size, with crisp nearest-neighbor edges so your mask stays hard and useful.
Outputs are image, mask (blank when nothing's wired in), and width / height echoing what you asked for. If you're feeding an empty latent, wire those two straight in and everything lines up.
Where you'll actually use it
Two classic spots. Video and image-to-video: forcing every frame to a fixed model-friendly size like 512×896 or 704×1280 before it hits the latent. And batch work: when mixed-source images need to come out uniform for a grid, an animation, or a comparison, this is the node that guarantees it. It also plays well with the pack's Load Video node - resize frames to a consistent canvas as they come in.
Install
Part of the Pixaroma pack:
cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma
or ComfyUI Manager → Pixaroma → install, restart. No dependencies; works in both the classic and the new node interface. It's a utility node and it knows it - there's nothing clever to misconfigure beyond the two numbers. If it ever looks off after a pack update, hard-refresh the browser (Ctrl+Shift+R) before anything else.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The image (or batch / video frames) to crop to size. | |
| width | INT | 10248–16384 | Target width in pixels. Type a value or wire a number from another node. The arrows step by 8 (AI/video sizes are usually multiples of 8) but you can type any value. |
| height | INT | 10248–16384 | Target height in pixels. Type a value or wire a number from another node. The arrows step by 8 but you can type any value. |
| maskopt | MASK | Optional mask. Cropped to the same width and height as the image, with crisp (nearest) edges. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | The cropped image, exactly width x height pixels. |
| mask | MASK | The cropped mask, matching the output image size (blank when no mask is wired in). |
| width | INT | The output width in pixels. |
| height | INT | The output height in pixels. |