π― Upsampler Precise Upscale
The pack's cheap 16x workhorse, with zero creativity knobs in sight
- image
- upscaled_image
Precise Upscale is the odd one out in the Upsampler pack, and that's a compliment. No creativity slider, no detail slider, no description prompt - just an upscale factor that goes all the way to 16x and a couple of toggles. It's the pack's "more pixels, less invention" node: it enlarges and sharpens while completely preserving the original structure. In the upscaling taxonomy that's a fundamentally different job from what its siblings do, and the pricing knows it - 1 credit per 4 megapixels of output versus 1 credit per megapixel for the generative nodes. The cheap one is the honest one.
What it's for
If you've ever wanted a clean, big, faithful render for print or a 4K showcase without your GPU melting, this is the node. The generative upscalers in this pack (Smart, Dynamic) are about adding detail that was never there - which means they're also free to rearrange your image. Precise does the opposite: it structurally copies the source and sharpens it, so the composition, the geometry, the identity all survive. It's the closest thing in the pack to a paid ESRGAN run, with one big advantage over the local ones: a 16x factor that would choke a local model on VRAM gets handed to a remote server instead. That's the entire appeal, and for a print job where "must not change" is the requirement, it's the right tool in the box.
How it works
Same pipeline as the rest of the pack, one less creative layer. The node converts your image to PIL, uploads it to a hoster for a public URL (ImgBB if you've got an imgbb_api_key, otherwise Catbox.moe β 0x0.st β PostImages in fallback order), POSTs it to https://upsampler.com/api/v1/precise-upscale with your API key, polls the status endpoint, and downloads the result back into a tensor. The payload is tellingly bare: just the image URL, the input type, the scale factor, and the two boolean toggles. Nothing to reimagine, nothing to guide.
Inputs that matter
api_key- your upsampler.com API key. Required, pasted into the node.input_image_type-realism,anime, oruniversal; match the source.upscale_factor- 1.0β16.0, default 4. The headline feature. There's a hard 50-megapixel output cap enforced client-side, so on a large source the node will refuse a 16x and tell you the maximum factor that fits. That's the one real constraint to plan around.should_enhance_faces- optional face restoration for portraits. Unlike the generative nodes, this is restoration rather than reimagining, but faces are still the thing to watch.should_preserve_blur- keep natural out-of-focus regions soft instead of sharpening everything. On for anything with a bokeh background.max_parallel_jobs- only relevant for batched tile inputs; leave at 1 otherwise.
Output is upscaled_image, an IMAGE tensor, into SaveImage or a final face-fix pass.
Install and setup
ComfyUI Manager finds it as "ComfyUI Upsampler Nodes," or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/cedarconnor/upsampler comfyui-upsampler
cd comfyui-upsampler
pip install -r requirements.txt
Restart ComfyUI. Dependencies are just requests and Pillow - no model files, no VRAM load, it runs on your CPU while a server does the heavy lifting. You need an upsampler.com account with credits and an API key. An ImgBB key is strongly recommended; without one the node falls back to free hosters that occasionally all fail, throwing "All free hosting services failed."
Common issues and gotchas
The credit math is friendly - 1 credit per 4MP, minimum 1 - so a 2x on a 1024Β² image is a single credit, and even a 4x stays cheap. But your image still leaves your machine (public URL host, third-party server), the rate limits are the same 90 POSTs and 240 status checks per minute, and "insufficient credits" or "invalid API key" will fail without retrying. If you hit the output cap at high factors, tile the input or drop the factor. Precise won't invent detail your source doesn't have - that's the point, not a limitation. When you need pixels that stay put, it's the one to reach for.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image or tile tensor to upscale (values in [0,1]). | |
| api_key | STRING | Upsampler API key used to authenticate requests. | |
| input_image_type | COMBO | Choose the preset that best matches the source image style. | |
| upscale_factor | FLOAT | 4.01β16 | Overall scale factor applied by the Upsampler service. |
| imgbb_api_keyopt | STRING | Optional ImgBB API key for authenticated temporary hosting. | |
| should_enhance_facesopt | BOOLEAN | false | Enable Upsampler face enhancement for portraits. |
| should_preserve_bluropt | BOOLEAN | false | Maintain natural blur instead of sharpening every region. |
| max_parallel_jobsopt | INT | 11β15 | Maximum parallel Upsampler jobs per node (1-15). Respects UPSAMPLER_MAX_CONCURRENCY and API rate limits. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscaled_image | IMAGE | β |