Topaz Video Upscale
The Topaz Video AI you already pay for, finally wired into ComfyUI
- images
- params
- upscale_chain
- engine
- images
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 asProteus (prob-4)(readable name, plus the short code that actually goes to Topaz). Models without weights on disk are tagged[download required].scale_modeandscale_factor-factoris an exact integer multiple (2 is the sensible default).target_sizeaccepts any resolution and lets you typetarget_width/target_height, withfit_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 thefpsoutput 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) andupscale_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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| model | COMBO | <no Topaz Video installation found> | Models marked [download required] have no weights on this machine yet. |
| scale_mode | COMBO | factor | factor: 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_factor | COMBO | 2 | Used when scale_mode is 'factor'. |
| fps | FLOAT | 24.0001–480 | Frame rate the batch represents. Affects Topaz's temporal analysis, not the frame count. |
| target_widthopt | INT | 192016–16384 | — |
| target_heightopt | INT | 108816–16384 | — |
| fit_modeopt | COMBO | fit | Only 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. |
| paramsopt | TOPAZ_UPSCALE_PARAMS | — | |
| upscale_chainopt | TOPAZ_UPSCALE_CHAIN | Extra 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. | |
| engineopt | TOPAZ_ENGINE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |