Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Topaz Upscale Video Precision · $0.01-0.06/s
ComfyUI Node

arkennemasis fal · Topaz Upscale Video Precision · $0.01-0.06/s

Ten cents per ten seconds to not repaint your footage

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Topaz Upscale Video Precision · $0.01-0.06/s
  • video
  • video
  • video_path
  • info
◄modelProteus►
◄upscale_factor2.00►
◄target_fps-1►
◄compression-1.00►
◄noise-1.00►
◄halo-1.00►
◄grain-1.00►
◄recover_detail-1.00►
◄H264_outputfalse►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Every generative upscaler in this ecosystem has the same failure mode: it invents. Detail that wasn't there, faces that are almost right, texture where the source had mush. Sometimes that's great - you're rescuing a render you can't re-render. When the source is real footage, it's a problem. Topaz's precision models are the other approach: non-generative enhancement, up to 4x, staying faithful to what was actually filmed.

That's the whole pitch, and the price is small enough to make it a default: $0.10 per 10 seconds at 720p, $0.20 at 1080p, $0.60 at 4K for the standard precision models. A one-minute clip upscaled to 1080p costs about eighty cents. For comparison, Topaz is the paid tool the open-source crowd benchmarks against constantly, and this node is that tool as a per-use call instead of a subscription.

Picking a model

The model dropdown is where the actual decision lives, and the tooltip is a decent map: Proteus fits most real-world footage, Proteus Natural is a softer variant (2x only), Iris recovers faces, Dione deinterlaces legacy or interlaced sources, Artemis denoises and sharpens degraded footage, Gaia refines high-quality footage and CG, Gaia 2 upscales animation at 2x, Rhea goes after maximum fine detail with an internal 4x pass, and Theia gives you manual detail/fidelity control.

For archive work - VHS rips, old camcorder footage, anything with combing - Dione is the one people forget exists. For animation, Gaia 2. For a modern render, Proteus and leave it.

The settings

upscale_factor runs 1 to 4 and doubles width and height at 2.0. target_fps is -1 by default, which keeps the source rate; set it to something else and frame interpolation turns on, which is billed as more output and is a bigger deal than it sounds - interpolated frames are generated, so that's where a faithful upscale starts adding invented content.

Then a row of five knobs that all default to -1, meaning "leave it to the model": compression (artifact removal), noise (noise reduction), halo (halo reduction), grain (film grain, 0–0.1), and recover_detail (higher keeps more of the original). You mostly don't touch these. If an upscale comes back looking plastic, drop noise a notch; if it's smearing fine texture, raise recover_detail.

H264_output defaults to off, which means H265. Turn it on if the video is going somewhere that won't play H265 - this is the most common "the file is fine but my editor/phone/browser hates it" moment in this pack.

Outputs: video (VIDEO, wire it to a save or the pack's assembly nodes), video_path, and info with the request id, cost estimate, saved files and fal's full answer. Results land in output/fal/.

Pack plumbing: max_cost_usd (default $20), reuse_identical_run, extra_json, max_concurrent (1 = one paid fal call at a time across the run).

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx

Manager → arkennemasis. Then:

FAL_KEY=your-key-from-fal.ai/dashboard/keys

in the .env next to run_nvidia_gpu.bat, then restart. The node appears under arkennemasis/fal/Video/Topaz.

Worth knowing

  • Cost scales with output resolution, duration and frame rate, not input size - so a 4x upscale of a 240p clip to 4K is priced like any other 4K job. Set max_cost_usd low while you're experimenting.
  • Frame interpolation is a content change, not a sharpening pass. It's the setting most likely to make "precision" not apply.
  • reuse_identical_run is on by default. Changing model or upscale_factor changes the inputs and triggers a real run; changing something downstream doesn't, and you'll get the old file back.
  • If you have a local GPU and the source is already decent, the open alternatives (SeedVR2, NVIDIA's RTX 2-pass) are worth a look before you pay per clip - Topaz wins on convenience and on legacy-footage presets, not on being the only option.
Categoryarkennemasis/fal/Video/Topaz

Inputs (14)

NameTypeDefaultDescription
videoVIDEOURL of the video to upscale
modelCOMBOProteusPrecision (non-generative) enhancement model. Proteus fits most real-world footage; Proteus Natural is a softer variant; Iris recovers faces; Dione deinterlaces legacy/interlaced sources; Artemis denoises and sharpens degraded footage; Gaia refines high-quality footage and CG (Gaia 2 upscales animation at 2x); Rhea maximizes fine detail via an internal 4x pass; Theia gives manual detail/fidelity control.
upscale_factorFLOAT2.001–4Factor to upscale the video by (e.g. 2.0 doubles width and height)
target_fpsINT-1-1–60Target FPS for the output. Frame interpolation is enabled only when this differs from the source FPS. -1 leaves it to the model.
compressionFLOAT-1.00-1–1Compression artifact removal level (0.0-1.0). Default varies by model. -1 leaves it to the model.
noiseFLOAT-1.00-1–1Noise reduction level (0.0-1.0). Default varies by model. -1 leaves it to the model.
haloFLOAT-1.00-1–1Halo reduction level (0.0-1.0). Default varies by model. -1 leaves it to the model.
grainFLOAT-1.00-1–0.1Film grain amount (0.0-0.1). Default varies by model. -1 leaves it to the model.
recover_detailFLOAT-1.00-1–1Recover original detail level (0.0-1.0). Higher values preserve more original detail. -1 leaves it to the model.
H264_outputBOOLEANfalseWhether to use H264 codec for output video. Default is H265.
max_cost_usdoptFLOAT20.00–100000Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap.
reuse_identical_runoptBOOLEANtrueIf these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings.
extra_jsonoptSTRINGAdvanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally.
max_concurrentoptINT11–32How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed.

Outputs (3)

NameTypeDescription
videoVIDEO—
video_pathSTRING—
infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.