Nodes/ComfyUI-TopazVideoLocal/Topaz Image Upscale
ComfyUI Node

Topaz Image Upscale

A stills upscaler that quietly outranks Topaz's own Gigapixel for automation

By donangel85·Created 2 days ago·Updated 2 days ago· 0
Topaz Image Upscale
  • images
  • params
  • upscale_chain
  • engine
  • images
model<no Topaz Video installation found>
scale_modefactor
scale_factor2
batch_modeindependent_images
target_width2048
target_height2048
fit_modefit

Fun fact buried in this pack: Topaz's actual photo upscaler, Gigapixel, cannot be automated. Its CLI is locked behind an enterprise licence (gigapixel.exe --help just tells you to go away), and its remaining integration points are Photoshop/Lightroom plugins that need the host app running. So if you want Topaz-quality AI upscaling of stills inside a ComfyUI graph, you don't use the photo product at all - you use the video one. The same tvai_up models (Proteus, Rhea, Gaia…) that do clips also work on single pictures, and that's exactly what Topaz Image Upscale is for.

It's the still-image sibling of Topaz Video Upscale, with the same multi-pass support and one crucial batch-semantics switch. For anyone restoring photos - old scans, AI upscaled generations, web-downloaded junk - this plus a couple of params is a legitimately handy repair station.

How it works, and the batch trap

Same pipeline as the video node: frames in, piped raw into Topaz's own ffmpeg as a tvai_up filter, decoded back out. The subtlety is that upscale models are temporal - they look at neighbouring frames to decide how to resolve each one. That's a feature for video and a bug for a folder of unrelated photos, where picture A's detail would bleed into picture B.

Hence batch_mode:

  • independent_images (default) - each picture is processed on its own. Correct for a batch of unrelated photos. The catch: Topaz needs at least four frames, so each image is repeated to satisfy it, and it's slower for it.
  • sequence - treats the whole batch as consecutive video frames. Considerably faster, but only right when they genuinely are a sequence (say, frames you just extracted).

Inputs that matter

model and scale_mode/scale_factor behave exactly like the video node: pick a model, 2x by default, or switch to target_size and type target_width/target_height. When you do, keep fit_mode on fit - a square target under stretch will distort every photo that isn't already square, and fit pads the remainder instead.

The input worth knowing about is upscale_chain. It takes passes from Topaz Upscale Stage nodes, and it's arguably more useful on stills than on video: you can denoise-repair on a first pass with one profile, then add resolution on a second with a different model, all inside one ffmpeg call. Wiring two Image Upscale nodes in series also works, it just costs an extra process launch and tensor round trip.

Install

The pack lives in ComfyUI's custom_nodes folder:

git clone https://github.com/donangel85/ComfyUI-TopazVideoLocal.git

Restart ComfyUI and you're done - no pip step beyond the numpy every ComfyUI already has. ComfyUI Manager finds it by searching "TopazVideoLocal". Underneath it all you need Windows and a licensed, signed-in Topaz Video installation; models whose weights aren't on disk show as [download required] until you let Topaz fetch them (or run them once in the app).

Common issues

Run the pack's Topaz Diagnostics node first - it reports the install, model and licence status without running a render. The usual suspects if a run fails: "no usable installation found" (point install_path on the Engine Settings node at your Topaz folder), and licence errors (open Topaz Video and sign in once). And one habit worth breaking: don't feed the Image node a big mixed batch in sequence mode just because it's faster. That's how the photo on frame 10 comes back with frame 11's texture. Unrelated pictures want independent_images, always.

CategoryTopaz Video Local

Inputs (11)

NameTypeDefaultDescription
imagesIMAGE
modelCOMBO<no Topaz Video installation found>1 options: <no Topaz Video installation found>
scale_modeCOMBOfactor2 options: factor, target_size
scale_factorCOMBO24 options: 1, 2, 3, 4
batch_modeCOMBOindependent_imagesindependent_images: each picture is processed on its own. Correct for unrelated photos, but slower — Topaz needs at least 4 frames, so each image is repeated. sequence: treat the batch as consecutive video frames. Much faster, but only right if they really are a sequence.
target_widthoptINT204816–16384
target_heightoptINT204816–16384
fit_modeoptCOMBOfitOnly applies to target_size. fit: keep the aspect ratio, pad the remainder black. fill: keep it and crop the overflow. stretch: hit the exact size and let the aspect ratio change. fit is the safe default for a square target, which would otherwise distort every photo that is not already square.
paramsoptTOPAZ_UPSCALE_PARAMS
upscale_chainoptTOPAZ_UPSCALE_CHAINExtra passes from Topaz Upscale Stage nodes. They run first, in order, and this node's own model runs last — all inside a single ffmpeg call. Particularly useful on stills: repair on the first pass, resolution on the second.
engineoptTOPAZ_ENGINE

Outputs (1)

NameTypeDescription
imagesIMAGE