Nodes/ComfyUI-Freepik/Freepik Upscaler Precision
ComfyUI Node

Freepik Upscaler Precision

The upscaler that promises not to invent anything

By febogallo·Created 9 months ago·Updated 7 months ago· 0
Freepik Upscaler Precision
  • image
  • upscaled_image
  • info
  • cost
  • seed
api_key
upscale_factor2x
denoise_strength0.5
sharpen0.5
seed0
confirm_before_runfalse

Freepik Upscaler Precision is the quiet sibling of the pack's Creative upscaler, and it exists for the exact moment Creative is the wrong tool. Where Creative is prompt-guided and happily invents detail, Precision is a high-fidelity upscale - 2x through 16x - with no prompt input and no creative reinterpretation. Logos, UI screenshots, technical drawings, product shots, client deliverables where a hallucinating upscaler is a liability. That's the audience.

Upscaling genuinely splits into two jobs, and it's worth naming which one this is: Precision adds pixels while staying faithful to the source, which puts it closer to the "more pixels, no new content" rung than to the generative "invent detail" rung. It won't rewrite a face into a better face, which is exactly why you'd choose it - and also why it can't rescue a blurry image. There's nothing here that invents what was never captured.

How it works

Same machinery as the Creative node, different endpoint. It posts your image base64-encoded to api.freepik.com/v1/ai/image-upscaler-precision with mode: "precision", then polls the async task until done. It shares the pack's good bits: a 30-day result cache keyed on parameters + seed + image hash, a live status bar on the node via the web extension, and a confirm_before_run toggle that pops a cost confirmation dialog before anything billable happens.

The inputs

  • api_key - your Freepik key, same as everywhere in this pack.
  • image - the IMAGE tensor to upscale.
  • upscale_factor - 2x, 4x, 8x, 16x.
  • denoise_strength - 0.0–1.0, default 0.5. Higher smooths more aggressively; on clean sources you can usually go lower.
  • sharpen - 0.0–1.0, default 0.5.
  • seed - included in the cache key, so keeping it fixed makes reruns free.
  • confirm_before_run - flip it on while you're learning your costs.

Here's a genuine gotcha hiding in the source: the node casts sharpen through int() before sending it to the API. So that 0.0–1.0 slider is effectively binary - anything below 1.0 gets sent as 0. Set it to 1.0 for sharpening on, 0 for off, and stop fiddling with the middle values, because they aren't doing what the slider implies.

Outputs are upscaled_image, info, cost (€), and seed. Pricing is the same area-based tiers as Creative: roughly €0.10 at 2x up to €1.20–1.60 for the extreme sizes, and the cost output tells you exactly what a given run will charge.

Installing it

It ships in the same pack, so one install gets you all four nodes. ComfyUI Manager → search ComfyUI-Freepik, or:

cd ComfyUI/custom_nodes
git clone https://github.com/febogallo/ComfyUI-Freepik
cd ComfyUI-Freepik
pip install -r requirements.txt

Restart, add your API key from the Freepik Developer Dashboard ($5 credit to start), and it's under Freepik/Editing. No models to download - it's all server-side.

Where people get burned

The honest take: for a 2x on an already-sharp image, a local ESRGAN or Lanczos does the same job for free and offline, and you shouldn't pay for that. Precision earns its money at the big factors - 8x and 16x on content you can't afford to have reinterpreted, like a logo going to print - or when you simply don't have local compute. And don't expect magic: feed it a soft, out-of-focus source and you'll get a bigger version of the same softness. If that's your situation, a downscale-then-restore approach (the SeedVR2-style path) beats any faithful upscaler, paid or not.

CategoryFreepik/Editing

Inputs (7)

NameTypeDefaultDescription
api_keySTRING
imageIMAGE
upscale_factorCOMBO2x4 options: 2x, 4x, 8x, 16x
denoise_strengthFLOAT0.50–1
sharpenFLOAT0.50–1
seedINT00–2147483647
confirm_before_runBOOLEANfalse

Outputs (4)

NameTypeDescription
upscaled_imageIMAGE
infoSTRING
costFLOAT
seedINT