Nodes/comfyui-pruna/p-image-upscale
ComfyUI Node

p-image-upscale

A paid, generative upscaler that trades money for VRAM

By PrunaAI·Created 4 months ago·Updated 4 months ago· 0
p-image-upscale
  • image
  • image
target_mp4
enhance_detailsfalse
enhance_realismfalse
api_key

PrunaImageUpscale (p-image-upscale) is a hosted AI upscaler: you feed it an image, it returns a bigger, detail-added version, and you pay per image instead of per gigabyte of VRAM. In the upscaling taxonomy from the community's own docs, this is squarely the "more detail" category - the generative rung that invents plausible texture, the same family as SeedVR2 and SUPIR, not the cheap Lanczos/ESRGAN "more pixels" rung that just resizes what's already there.

That distinction matters, because it sets your expectations. This node will add detail it thinks should be there, and like every generative upscaler it will reinterpret rather than preserve - faces in particular get rewritten into "a face that fits," which is exactly the identity problem the upscaling literature warns about. If you just need a sharp 2x for a clean image, a local ESRGAN model is free and instant and won't invent anything. This node is for when you want real detail addition and you don't have (or don't want to spend) the VRAM for SeedVR2 on your own machine.

What you set

  • image - any IMAGE. Works straight off a generation or an edit node.
  • target_mp - target size in megapixels, 1 to 8, default 4. This is the field to understand: you're not picking a 2x or 4x multiplier, you're picking how many million pixels the result should contain. Output dimensions derive from that area and the source's aspect ratio.
  • enhance_details - boolean, off by default. An extra detail-enhancement pass.
  • enhance_realism - boolean, off by default. A realism-enhancement pass.
  • api_key - Pruna key, or blank to use PRUNA_API_KEY.

Output is one image socket, type IMAGE. There's no model dropdown - it's fixed to p-image-upscale.

How it works

Your image is uploaded to Pruna's files API as a PNG, then a payload with the image URL, target (megapixels), the two enhancement flags, and output_format: png goes to /v1/predictions. The node polls until the job finishes (every 3 seconds, up to 5 minutes) and downloads the result back as a tensor. Note the two enhancement booleans are off by default - the README's pricing already assumes you're paying for the base upscale, and each enhancement is extra compute on their side, so flip them on deliberately and compare.

Install

ComfyUI Manager → search ComfyUI Pruna API → Install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/PrunaAI/comfyui-pruna-api
pip install -r comfyui-pruna-api/requirements.txt

Requirements are just requests and Pillow - nothing downloads, because the model never touches your disk. Get a key from the Pruna developer portal.

Where people get burned

  • Pricing is tiered by megapixels: $0.005/image for a 1–4 MP target, $0.01/image for 5–8 MP. Doubling target_mp past the tier line doubles your cost - check which tier you're in before you batch.
  • Generative upscaling rewrites identity. If the source has a face you need to recognize, this is the wrong tool - that warning is baked into the whole generative-upscale category, not specific to Pruna.
  • "Why is it slower than I expected?" The megapixel target is an area, so an 8 MP request on a tall portrait is a big generation job, and you're also paying the round-trip + polling time.
  • No key, no run - the usual "No Pruna API key provided" / 401 / 403 checks apply before anything else.

The verdict: a legitimately handy way to get generative upscaling without the VRAM bill - the community's own verdict is that SeedVR2 is the free incumbent, but only if your hardware can run it. When it can't, this is the credit-card version, and it's honest about being one.

Categorypruna ai

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
target_mpINT41–8
enhance_detailsBOOLEANfalse
enhance_realismBOOLEANfalse
api_keySTRING

Outputs (1)

NameTypeDescription
imageIMAGE