Nodes/ComfyUI-Topaz-Upscaler/Topaz Upscaler (API)
ComfyUI Node

Topaz Upscaler (API)

The node that ships your image to Topaz's servers

By comrender·Created 10 months ago·Updated 8 months ago· 3
Topaz Upscaler (API)
  • image
  • IMAGE
api_key
modeenhance
modelStandard V2
scale_multiplier1.0
output_width0
output_height0
crop_to_fillfalse
output_formatjpeg
face_enhancementtrue
denoise_strength0.50
sharpen_strength0.50
strength0.50
timeout_seconds300

This node does not upscale anything on your machine. It uploads your image to Topaz Labs' servers, waits for their AI to finish, and downloads the result. Zero VRAM, zero model downloads, and a per-image cost - which is the whole trade you're signing up for.

Topaz is the paid baseline the open-source upscaling world keeps benchmarking against, and this node is the official-ish way to tap it from inside a ComfyUI graph. If you already pay for Topaz credits or a Video AI subscription with API access, this is the cleanest path to their models without leaving the workflow editor. The flip side: an open node chains NVIDIA's RTX enhancement modes at a few GB of VRAM and its author reports dropping a Topaz subscription entirely. SeedVR2 runs locally and invents better detail on low-res sources. This node is for when you specifically want Topaz's enhance/denoise/sharpen on top of a render and you're happy to pay per job to skip the VRAM and install pain.

How it works

Under the hood it's a small async API client. It converts your IMAGE tensor to a PIL image, writes a temp file in your chosen output_format, and POSTs it as multipart form-data to https://api.topazlabs.com/image/v1/<mode>/async with your key in the X-API-Key header. That returns a process_id; the node polls /status/<id> every 5 seconds until the job is completed (or failed), then grabs a presigned URL from /download/<id> and pulls the bytes back into a fresh ComfyUI tensor. All of this needs an internet connection, a valid key, and paid credits - the README lists them as requirements, and they're the real ones.

One mechanism detail worth knowing: the mode-to-endpoint mapping is smarter than it looks. Models like Redefine, Recovery V2, Standard MAX, and Wonder route to the /enhance-gen/async (or /sharpen-gen/async) generative endpoints; GAN models like Standard V2, CGI, and Lens Blur V2 use the plain ones. The node picks the path for you based on which model you chose.

The inputs that matter

  • mode - enhance, sharpen, denoise, restore, or lighting. Pick this first; it decides which endpoint and which model list is relevant.
  • model - 22 options pooled from all modes, so the node will happily hand you an enhance model while you're in denoise mode. It does not validate the combo - that's on you. Standard V2 (enhance) is the sensible default.
  • scale_multiplier - 1.0 to 4.0. Above 1.0 it upscales by that factor. Set it to 1.0 and the optional output_width/output_height take over for manual sizing (only sent for enhance).
  • api_key - leave blank and the node falls back to the TOPAZ_API_KEY environment variable; a pasted widget value overrides it. Missing both throws API Key Missing.

Optional extras worth knowing: face_enhancement (default on, enhance mode only), denoise_strength/sharpen_strength/strength (all 0–1), and output_format (jpeg/png/tiff). Output is a single IMAGE tensor - wire it straight into a SaveImage.

Installing it

ComfyUI Manager, search "Topaz Upscaler", or:

cd ComfyUI/custom_nodes
git clone https://github.com/comrender/ComfyUI-Topaz-Upscaler

then restart ComfyUI. There are no model files and no heavy dependencies - requirements.txt is just requests, Pillow, numpy, torch, all of which ComfyUI already ships. The real dependency is the key: export TOPAZ_API_KEY="your_key_here" on Linux/macOS, $env:TOPAZ_API_KEY="..." in PowerShell.

Where people get burned

The README advertises batch support - the code doesn't implement it. process() only ever reads image[0], so feed a batch and only the first frame comes back. It's a one-image node; don't plan around it for video. Also remember that the README is the author's claim; the source is what runs.

Other real failure modes: a wrong model/mode combo errors out server-side or does nothing useful; JPEG output is lossy, so choose PNG/TIFF if quality matters; and every job you kick off spends credits even if it times out on your end (the timeout_seconds default of 300 just gives up polling - Topaz may still be processing). If a job fails, the node raises with Topaz's error message, which is usually enough to see whether it's a bad key, a bad combo, or a dead credit balance.

Categoryimage/topaz

Inputs (14)

NameTypeDefaultDescription
imageIMAGE
api_keySTRING
modeCOMBOenhance5 options: enhance, sharpen, denoise, restore, lighting
modelCOMBOStandard V222 options: Extreme, Text Refine, CGI, White Balance, Strong, Super Focus V2, +16
scale_multiplierFLOAT1.01–4
output_widthoptINT00–32000
output_heightoptINT00–32000
crop_to_filloptBOOLEANfalse
output_formatoptCOMBOjpeg3 options: jpeg, png, tiff
face_enhancementoptBOOLEANtrue
denoise_strengthoptFLOAT0.500–1
sharpen_strengthoptFLOAT0.500–1
strengthoptFLOAT0.500–1
timeout_secondsoptINT30060–1800

Outputs (1)

NameTypeDescription
IMAGEIMAGE