πΈ Pixel Upscaler
The no-model way to make your image bigger
- image
- image
The name tells you exactly what this node does and - just as importantly - what it doesn't. πΈ Pixel Upscaler makes an image bigger using classic interpolation: nearest neighbour, bilinear, or Lanczos. It adds no detail, invents nothing, and hallucinates nothing. That last part is the whole point, and it's why "upscaling" questions are the most confused corner of this ecosystem.
The community keeps getting burned by conflating two totally different jobs (the KB's upscaling doc makes this the opening distinction): job one is more pixels - the image already has the detail, you just want it larger, and any interpolator or an ESRGAN upscaler can do that in milliseconds without touching content. Job two is more detail - the image is soft or small and you want a model to invent plausible new detail, which is what SUPIR / SeedVR2 / tile-ControlNet pipelines do, and they will rewrite your faces. FrogPixelUpscaler is firmly job one. Don't come here expecting a restoration; come here when you want a bigger file, a quick 2Γ for a preview, or an image that matches a target resolution before compositing.
The mechanism is straightforward torch/PIL resizing under the hood. Give it an image, pick a scale from 0.1Γ up to 10Γ (the default is 2.0, meaning double width and height), and choose a method. The three methods have real trade-offs:
- Nearest Neighbour - sharp and pixelated. Great for pixel art, sprites, or anything where crisp blocky edges are the aesthetic and you don't want smoothing.
- Bilinear - smooth and soft, the cheap all-rounder. Fine for previews.
- Lanczos - sharp and smooth; the default, and generally the best-looking classic choice for photographic or anime output at 2Γ.
One output, image, ready to wire into a save node or another stage. scale and method are the only two inputs you'll touch.
Here's the honest positioning, because a lot of people reach for this node expecting it to be more than it is. Interpolators are a solved, boring technology - the KB's upscaling doc notes that an NVIDIA hardware path or Lanczos "adds no content, cannot hallucinate, runs in milliseconds." That's a feature. If you're about to drop a 1.5 GB generative upscaler on a batch just to double the dimensions, this node does the job for free with zero VRAM and zero model download. Where people get burned is assuming 2Γ Lanczos will "fix" a blurry 512px face - it won't, because there's no new information to recover. That's the job of a generative upscaler, not this node.
One mechanism note from the source: Lanczos resampling routes through Pillow, while nearest and bilinear use torch's interpolation. Pillow ships with ComfyUI, so in practice you won't hit the missing-dependency error - but if you're running a stripped-down environment, that's the one case where the node raises a clear "install Pillow" error instead of quietly working.
Installing it
Part of Frog Node Pack - install once, get all the frog nodes:
- ComfyUI Manager: search Frog Node Pack, install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/RabbitThatIsPink/FrogNodePack, restart, hard-refresh (Ctrl+Shift+R).
No extra pip packages. The pack's requirements.txt is intentionally empty; Pillow is the only runtime dependency and it ships with ComfyUI.
Common issues
The most common "problem" is expectation mismatch, not a bug: people feed it a small soft image, upscale 4Γ, and wonder why it's blurry. It's blurry because interpolation doesn't add information - that's the generative upscaler's job, and if that's what you need, pair this node with a proper ESRGAN-family upscale model or an img2img pass. Real bugs are rare here; the node is small, stateless, and not on the pack's WIP list.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image to upscale. | |
| scale | FLOAT | 2.000.1β10 | Scale multiplier. 2.0 = double size, 0.5 = half size. |
| method | COMBO | Lanczos | Resampling method. Nearest = sharp/pixelated, Bilinear = smooth, Lanczos = sharp + smooth. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |