Nodes/ComfyUI-TopazVideoLocal/Topaz Video Stabilize
ComfyUI Node

Topaz Video Stabilize

Steadying shaky video with Topaz, inside ComfyUI — and why it's two passes

By donangel85·Created 2 days ago·Updated 2 days ago· 0
Topaz Video Stabilize
  • images
  • engine
  • images
model<no Topaz Video installation found>
fps24.000
modeauto_crop
smoothness6.0
stabilize_rotationtrue
stabilize_pan_horizontaltrue
stabilize_pan_verticaltrue
stabilize_zoomtrue
rolling_shutter_correctionfalse
reduce_jitter0
canvas_scale2.0

Handheld footage, drone wobble, a pan that turned out less locked-off than you hoped - Topaz Video Stabilize fixes it with Topaz's own stabilization models (ref-2 is the usual default) on your local Topaz Video install. This is a repair node, not a creative effect: it removes camera motion you didn't want. Which means the first question is whether your clip needs it. Stabilizing a locked-off tripod shot doesn't make it steadier, it just costs render time - the pack's own measurements show it removed 97% of a deliberately-added ±6px shake on real footage, which is the number to trust when you do have a problem.

How it works: genuinely two passes

Stabilization in Topaz is two separate ffmpeg operations that can't be collapsed into one:

  1. tvai_cpe analyses camera motion and writes a pose-estimation file.
  2. tvai_stb reads that file and warps the frames to counter the motion.

The node runs both for you - the engine feeds the raw frames through twice from memory, so you don't see the intermediate step. Worth knowing only so you understand why this node is slower than the upscale one and why it does nothing useful on footage with no camera motion to speak of.

The choice that matters: auto_crop vs full_frame

Stabilization has to move frames around, and moving them exposes edges. mode decides what happens there:

  • auto_crop (default) - crops into the frame to hide the exposed edges. Output size is unchanged, nothing is invented, and it's the safe, fast choice.
  • full_frame - synthesises the missing edges instead. No crop, keeps your full field of view, but slower, hungrier on memory, and it's asking the model to invent content along the borders.

For most shaky footage, auto_crop and a slight reframe is exactly what you want anyway. Go full_frame when you genuinely can't afford to lose the edges.

Inputs that matter

  • smoothness - how hard the camera path is smoothed (0–16, default 6). Low values keep more of the original motion, high values flatten it into near-static.
  • stabilize_rotation / stabilize_pan_horizontal / stabilize_pan_vertical / stabilize_zoom - four booleans, all on by default, that pick which axes get corrected. If your wobble is purely horizontal drift, turning the others off stops the node trying to correct motion that isn't there.
  • rolling_shutter_correction - off by default; turns on correction for the skew that rolling-shutter sensors produce on fast pans. Costs time, only helps where the skew actually exists.
  • reduce_jitter (0–5) and canvas_scale (used by full_frame mode) are the fiddly ones - leave them alone until you've seen a first result.

Output is a single images IMAGE batch; same frame count in and out, so the only thing downstream needs is the unchanged fps.

Install

It ships in a pack, so from ComfyUI's custom_nodes folder:

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

Restart ComfyUI. No pip install needed beyond the numpy ComfyUI already has; ComfyUI Manager finds it by searching "TopazVideoLocal". The real requirements sit underneath: Windows and a licensed, signed-in Topaz Video installation, with model weights on disk.

Common issues

If the node errors, run the pack's Topaz Diagnostics node first - it reports install, model and licence status in one string you can read. "No usable installation found" means pointing install_path on the Engine Settings node at your Topaz folder; licence errors mean opening Topaz Video and signing in. And if the output looks softer than the input, that's usually full_frame inventing edges on footage that didn't need it - flip to auto_crop and see whether you even notice the reframe.

CategoryTopaz Video Local

Inputs (13)

NameTypeDefaultDescription
imagesIMAGE
modelCOMBO<no Topaz Video installation found>1 options: <no Topaz Video installation found>
fpsFLOAT24.0001–480
modeCOMBOauto_cropauto_crop: crop into the frame to hide the edges stabilization exposes — keeps the output size. full_frame: synthesise the exposed edges instead. Slower and more memory-hungry.
smoothnessFLOAT6.00–16How much the camera path is smoothed.
stabilize_rotationoptBOOLEANtrue
stabilize_pan_horizontaloptBOOLEANtrue
stabilize_pan_verticaloptBOOLEANtrue
stabilize_zoomoptBOOLEANtrue
rolling_shutter_correctionoptBOOLEANfalseCorrect the skew rolling-shutter sensors produce on fast pans.
reduce_jitteroptINT00–5
canvas_scaleoptFLOAT2.01–8Working canvas size relative to the input, used by full_frame mode.
engineoptTOPAZ_ENGINE

Outputs (1)

NameTypeDescription
imagesIMAGE