Pixel Art Downscaling
Resize pixel art without ComfyUI blurring the edges
- image
- IMAGE
Despite the name, this node isn't downscale-only - it's a resize node built specifically for pixel art, and it goes both directions. The reason it exists: ComfyUI's general-purpose scale nodes are tuned for photographs, and a photo-friendly resize filter is exactly the wrong tool for a pixel-art image. Run a blocky sprite through a smoothing interpolator and you get soft, blurry pixel edges - which defeats the entire point of having crisp, chunky pixels. This node gives you a resize that actually respects the blocks.
It's the natural partner to this pack's other node, Pixel Art Node: pixelate first, then use this one to hit whatever final resolution you actually need - a small in-game sprite size, or blown up big for a wallpaper or a print - without ComfyUI re-blurring the work you just did.
How it works
The mechanism is a straight resize, controlled by two things: how much to scale by, and which filter to scale with. That second part is the whole reason to reach for this node instead of a generic one. Nearest-neighbor resizing just picks the closest source pixel for each output pixel - no blending, no new colors invented, so a hard block edge stays a hard block edge no matter how much you scale. It's the community's standard answer for pixel-perfect resizing, precisely because it "cannot invent" anything the way a smoothing filter does. Lanczos, by contrast, is a proper interpolation filter - good for photos, because it smooths transitions - but on pixel art it'll soften those crisp edges you built the image around. Pick nearest when you want the blocky look preserved; pick lanczos only if you actually want the result softened (photo-style resizing, not pixel art resizing).
The inputs that matter
- image (IMAGE) - the image to resize. If you're chaining it after Pixel Art Node, this is that node's output; it also works standalone on any pixel art you've loaded from disk.
- scale_factor (FLOAT, default 1, range 0.1–10) - the multiplier. Under 1 shrinks, over 1 enlarges, and the range genuinely goes both ways despite the node's name - you can scale a small sprite up to 10x for a clean, crisp mockup, or shrink something down to a tenth of its size.
- method (choice of nearest or lanczos) - the filter. For anything you want to keep looking like pixel art, that's nearest. Reach for lanczos only when you actually want smoothing.
Output is a single IMAGE - the resized result.
Installing it
Same pack, same install path as Pixel Art Node:
- ComfyUI Manager - search PixelArt Processing Nodes, install, restart.
- Manual - clone
https://github.com/GENKAIx/PixelArt-Processing-Nodes-for-ComfyUI, then copy the innerpixelart_processingfolder (not the whole repo) intoComfyUI/custom_nodes/. Restart.
That folder-inside-a-folder structure trips people up regularly enough it's worth repeating: the nodes live in pixelart_processing/, one level in from the repo root. Clone the repo straight into custom_nodes/ without pulling that subfolder out, and you'll restart to find nothing changed. This node lands under Image → Processing in the node menu once it's actually installed right. No models to fetch, no extra dependencies - it's plain image processing.
Common issues
Result looks softer than expected. Check method. It's an easy field to leave on the wrong setting, especially if you're clicking through presets quickly - lanczos will blur exactly the edges you're trying to keep sharp. If crisp blocks matter, set it to nearest explicitly rather than trusting whatever it defaulted to.
Extreme scale_factor values look wrong. At the low end (down near 0.1) you're asking for a tenth of the original size, which on anything but a large source image can crush detail down past the point of being recognizable - there's only so much a handful of pixels can represent. At the high end, remember nearest-neighbor doesn't add detail when it enlarges; a 10x nearest upscale gives you bigger, cleaner blocks, not more information than was already there.
Nodes don't show up at all. Same root cause as the pack's other node - the manual install missed the pixelart_processing subfolder, or ComfyUI wasn't restarted after installing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| scale_factor | FLOAT | 1.00.1–10 | — |
| method | COMBO | 2 options: nearest, lanczos |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |