Nodes/Quality of Life Nodes for ComfyUI/FAL Topaz Upscale Video (Soze)
ComfyUI Node

FAL Topaz Upscale Video (Soze)

Send your clips to Topaz's cloud, keep the timeline on your machine

By SozeInc·Created 2 years ago·Updated 8 days ago· 10
FAL Topaz Upscale Video (Soze)
  • video
  • video
  • video_url
  • status
modelProteus
upscale_factor2.00
target_fps0
compression-1.00
noise-1.00
halo-1.00
grain-1.000
recover_detail-1.00
H264_outputfalse

Topaz Video AI is the desktop app people buy for one reason: it makes old, soft or low-res footage look dramatically better, at the cost of a GPU grinding for a long time. FAL Topaz Upscale Video puts the same models behind a fal API endpoint (fal-ai/topaz/upscale/video) and wraps them in a node: source video in, upscaled video back, and your local GPU never breaks a sweat.

The upscaling hierarchy from the KB is worth recalling here: this is the "more pixels over time" category, where every frame has to agree with its neighbors. That's a genuinely different job from single-image upscaling, and it's the one with the least settled local answer - which is why a hosted Topaz tier has a real niche. Paid API, pay per video, nothing local.

How it works

Required inputs:

  • video - the source clip, as a VIDEO tensor.
  • model - the Topaz model dropdown, defaulting to Proteus (the general-purpose favorite). Others include the Artemis family (HQ/MQ/LQ), Nyx and its variants, Gaia HQ/CG/2, and Starlight Precise. Model choice is the single biggest quality lever - Proteus for general footage, Nyx for faces-heavy content, Artemis for cleaner sources; the differences are exactly the "which model for which footage" lore Topaz users argue about.
  • upscale_factor - 1.0 to 4.0 in 0.25 steps. 2.0 doubles width and height (and quadruples pixels), which is the sensible default; 4.0 is where file sizes and cost climb steeply.

The optional sliders are where Topaz's enhancement controls live, all defaulting to -1 meaning "model default": compression (artifact removal 0–1), noise (0–1), halo (0–1), grain (film grain, 0–0.1), and recover_detail (0–1). Leave them at -1 and the model decides - which is honestly the right first move; start tuning one at a time when you know what the source suffers from. Two more: target_fps (0 = off; above 0 enables frame interpolation to that FPS, i.e. 24→60 for smoother motion) and H264_output (default False = H.265, which is smaller; flip to H.264 if you need the wider compatibility).

Outputs: video (the upscaled clip as a VIDEO tensor for ComfyUI's save/preview nodes), video_url (hosted, for sharing), and status, with live progress.

When it's worth it

When you have a clip that deserves Topaz treatment but don't want to rent a GPU or babysit the desktop app. Low-res archival footage, upscaled source material before a final render, or a batch of clips where your own card isn't up to the task. If your source is already clean and just needs pixels, the KB's advice applies: a plain upscale of a decent source can be cheap - but video interpolation/restoration is exactly the heavy job a hosted tier is for.

Getting it running and gotchas

Standard pack install plus the FAL key:

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

FAL_KEY in your environment, a .env in the pack root, or config.ini under [API].

The gotchas that bite: enhancement sliders only send to the API when set to 0 or above - -1 means "omit," so you can't actually request "less than default" anything, and a slider you pushed slightly negative does nothing. target_fps is all-or-nothing - any value above 0 enables interpolation, so don't leave stray values in it. And remember every upscale is a paid API call, so a 4x on a long clip is a real line item - set upscale_factor to what the deliverable needs, not what would be fun.

CategoryFAL/VideoGeneration

Inputs (10)

NameTypeDefaultDescription
videoVIDEOSource video to upscale.
modelCOMBOProteus19 options: Proteus, Artemis HQ, Artemis MQ, Artemis LQ, Nyx, Nyx Fast, +13
upscale_factorFLOAT2.001–4e.g. 2.0 doubles width and height.
target_fpsoptINT00–1200 = off. If > 0, enables frame interpolation to this FPS.
compressionoptFLOAT-1.00-1–1Compression artifact removal (0-1). -1 = model default.
noiseoptFLOAT-1.00-1–1Noise reduction (0-1). -1 = model default.
halooptFLOAT-1.00-1–1Halo reduction (0-1). -1 = model default.
grainoptFLOAT-1.000-1–0.1Film grain amount (0-0.1). -1 = model default.
recover_detailoptFLOAT-1.00-1–1Recover original detail (0-1). -1 = model default.
H264_outputoptBOOLEANfalseOutput H.264 instead of the default H.265.

Outputs (3)

NameTypeDescription
videoVIDEO
video_urlSTRING
statusSTRING