Nodes/ComfyUI-TopazVideoLocal/Topaz Video Upscale
ComfyUI Node

Topaz Video Upscale

The Topaz Video AI you already pay for, finally wired into ComfyUI

By donangel85·Created 2 days ago·Updated 2 days ago· 0
Topaz Video Upscale
  • images
  • params
  • upscale_chain
  • engine
  • images
model<no Topaz Video installation found>
scale_modefactor
scale_factor2
fps24.000
target_width1920
target_height1088
fit_modefit

This is the node the whole pack exists for. If you've got a licensed, signed-in copy of Topaz Video AI on your Windows box, Topaz Video Upscale runs its actual upscaling models - Proteus, Rhea, Iris, Gaia, Nyx, Themis - on frames inside a ComfyUI graph. Locally. No cloud account, no API key, no uploading a clip to a stranger's GPU. Your frames never leave the machine, which is the whole pitch.

Worth saying up front who this is for, because the upscaling scene has split. If you're happy with free SeedVR2 or NVIDIA's RTX nodes, this is a subscription you can drop - that's a well-trodden take by now. This pack is for the other camp: you already pay for Topaz, you like what Proteus does to a clip, and you're tired of exporting out of ComfyUI into the Topaz app and importing back. This kills that round trip.

How it works

ComfyUI hands video around as one big IMAGE batch. This node serializes those frames to raw RGB24 and pipes them straight into the ffmpeg binary that ships inside your Topaz Video install, chained through its tvai_up filter, then decodes the result back into an IMAGE batch for the rest of your graph.

That "raw pipe, no container" detail matters more than it sounds. Topaz compiles its ffmpeg without a software H.264 decoder, which is why feeding it normal video files fails so often in other tools. By handing it raw frames this sidesteps the decoder entirely - no codec handoff to get wrong, no two lossy H.264 generations in the middle of your workflow.

Inputs and outputs that matter

  • model - the dropdown is built live from Topaz's own model metadata, so anything you've installed shows up as Proteus (prob-4) (readable name, plus the short code that actually goes to Topaz). Models without weights on disk are tagged [download required].
  • scale_mode and scale_factor - factor is an exact integer multiple (2 is the sensible default). target_size accepts any resolution and lets you type target_width/target_height, with fit_mode (fit/fill/stretch) deciding what happens when the aspect doesn't match.
  • fps - the frame rate your batch represents. It feeds Topaz's temporal analysis rather than changing the frame count, so wire the fps output of Get Video Components in instead of typing a number that then disagrees with the source.
  • Optional params (tuning from a Topaz Upscale Params or Topaz Parameter Estimate node) and upscale_chain (extra passes from Topaz Upscale Stage nodes) - leave both unplugged for your first run.

Output is a single images IMAGE batch. The typical graph is Load Video → Get Video Components → Topaz Video Upscale → Create Video → Save Video; the audio goes around the node and gets reattached at Create Video, untouched.

Install

From ComfyUI's custom_nodes folder:

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

Then restart ComfyUI. There's nothing to pip install - the only dependency is numpy, which every ComfyUI install already has. ComfyUI Manager can find it if you search "TopazVideoLocal". Update later with git pull. And remember the real prerequisites sitting under it: Windows, plus a Topaz Video install that's signed in.

Common issues

Start with the pack's Topaz Diagnostics node before you blame anything - it reports exactly what it found and what's missing. The classic failure modes: "No usable Topaz Video installation found" (set install_path on the Engine Settings node), a model that says [download required] (enable allow_model_download, or run the model once in the Topaz app), and licence errors (open Topaz Video and sign in).

Two gotchas that catch everyone regardless. The whole clip is decoded into RAM before anything runs, so at 1080p a long clip is gigabytes and a 2x result is four times that again - cut long footage into pieces or upscale last. And Topaz's temporal models need at least four frames; the node pads short batches for you. If your video plays back at the wrong speed afterwards, you forgot to wire fps into Create Video.

CategoryTopaz Video Local

Inputs (11)

NameTypeDefaultDescription
imagesIMAGE
modelCOMBO<no Topaz Video installation found>Models marked [download required] have no weights on this machine yet.
scale_modeCOMBOfactorfactor: exact integer multiple, the most reliable option. target_size: any resolution; Topaz upscales and the result is fitted to the exact size you ask for.
scale_factorCOMBO2Used when scale_mode is 'factor'.
fpsFLOAT24.0001–480Frame rate the batch represents. Affects Topaz's temporal analysis, not the frame count.
target_widthoptINT192016–16384
target_heightoptINT108816–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.
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.
engineoptTOPAZ_ENGINE

Outputs (1)

NameTypeDescription
imagesIMAGE