Nodes/Leon's Utility and API Integration Nodes/πŸ€– Leon Pruna Image Upscale API
ComfyUI Node

πŸ€– Leon Pruna Image Upscale API

Generative upscaling without downloading a model

By l3ony2kΒ·Created about a year agoΒ·Updated 2 months agoΒ· 3
πŸ€– Leon Pruna Image Upscale API
  • image
  • image
  • image_url
  • seed
β—„upscale_modetargetβ–Ί
β—„target4β–Ί
β—„factor2β–Ί
β—„enhance_detailsfalseβ–Ί
β—„enhance_realismfalseβ–Ί
β—„output_formatpngβ–Ί
β—„seed0β–Ί
β—„api_urlhttps://api.hyprlab.io/v1/images/generationsβ–Ί
β—„api_keyYOUR_API_KEY_HEREβ–Ί
β—„response_formaturlβ–Ί
β—„image_urlβ–Ί

Before you reach for this node, figure out which of the three upscaling jobs you actually have. If your image is already sharp and you just need more pixels, a free ESRGAN or Lanczos pass locally is the right answer - faster, free, and it can't invent anything. This Leon_Pruna_Image_Upscale_Node is for the second job: generative upscaling, where a model adds plausible detail that wasn't there before. It calls Pruna's p-image-upscale model through the pack's HyprLab base, so all that detail generation happens on someone else's GPU and lands in your graph as a normal image.

That's the trade in one sentence: you give up local control (and per-call money) in exchange for zero VRAM and zero model management. If you're on a 6GB card and want 4K output from a small render, that trade can be very attractive.

How it works

Same plumbing as every API node in the pack - POST to https://api.hyprlab.io/v1/images/generations with a Bearer token, retry with exponential backoff (up to five attempts), decode the response into an RGBA tensor. The p-image-upscale payload takes your image, an upscale_mode, and either a target or factor value. Two ways to specify the size, and the node requires one of them to be used by the API:

  • upscale_mode = target - upscale to a fixed multiplier. target of 4 = 4Γ— upscale.
  • upscale_mode = factor - same idea, different field. Set factor to 2 for 2Γ—.

Both target and factor accept 1–8. The extra knobs, enhance_details and enhance_realism, are booleans you can stack - they toggle detail- and realism-enhancement passes in the API.

Inputs that matter

  • image or image_url - the source. Feed either a ComfyUI IMAGE tensor (e.g. from a previous generation or LoadImage) or a hosted URL string. The code raises a ValueError if you provide neither. And don't wire both: the base class explicitly refuses "provide either an image tensor or an image URL, not both."
  • upscale_mode / target / factor - pick your mode and set the matching value; the unused one is ignored.
  • enhance_details / enhance_realism - the two toggles that actually change the character of the output.

Outputs are the pack standard: image, image_url, seed.

Installing

ComfyUI Manager (search Leon) or clone:

cd ComfyUI/custom_nodes/
git clone https://github.com/l3ony2k/comfyui-leon-nodes comfyui-leon-nodes
pip install -r requirements.txt

Restart, paste a HyprLab key. No downloads, no VRAM pressure - the whole upscale happens remotely.

Common issues

The "no input" error is the one beginners hit first: you must give it image or image_url, and the failure message tells you exactly that. After that, the generative-upscaling caveat from the wider community applies: a generative upscaler will rewrite faces and small details, so if you upscale a portrait, don't be surprised the identity drifts - the KB's upscaling guide flags this as design, not a bug. And because each call is paid, upscale the smallest source that still carries the detail you want; a 4Γ— target on a tiny soft image is money spent inventing content, not recovering it.

CategoryLeon_API

Inputs (12)

NameTypeDefaultDescription
upscale_modeCOMBOtargetUpscale by exact target multiplier or factor (1-8)
targetINT41–8Target value (used if upscale_mode is 'target')
factorINT21–8Factor value (used if upscale_mode is 'factor')
enhance_detailsBOOLEANfalseEnhance details in the upscaled image
enhance_realismBOOLEANfalseEnhance realism in the upscaled image
output_formatCOMBOpngFormat of the output image
seedINT00–18446744073709550000Random seed for reproducible results
api_urlSTRINGhttps://api.hyprlab.io/v1/images/generationsAPI URL
api_keySTRINGYOUR_API_KEY_HEREYour HyprLab/Pruna API key
response_formatCOMBOurlHow the response data should be formatted
imageoptIMAGESingle input image
image_urloptSTRINGHosted image URL

Outputs (3)

NameTypeDescription
imageIMAGEβ€”
image_urlSTRINGβ€”
seedINTβ€”