Nodes/ComfyTV/360 Stabilize
ComfyUI Node

360 Stabilize

Stop 360 footage from wobbling without losing the whole sphere

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
360 Stabilize
  • video
  • video
force_run_token0
project_id
parent_output_id0
smoothing15
strength1.00

Handheld 360 footage is a nauseating thing to watch, because the whole world shakes with you. Regular video stabilizers can't fix it - there's no flat frame to lock onto, the shake lives in the orientation of the sphere itself. 360 Stabilize is the ComfyTV stage that smooths that orientation over time, so the horizon stops swinging even though you were wobbling when you shot it.

It's a VideoFX stage in the pack's canvas model: you wire equirectangular footage in, hit its Run button, and the stabilized result flows downstream as a snapshot - usually into 360 Projection, which then re-aims and flattens the now-steady sphere.

The inputs

  • smoothing (default 15, 1–120) - how much temporal smoothing to apply to the camera orientation. Low values leave fast motion, high values make the camera feel locked to a tripod. 15 is a sensible starting point; crank it up if the clip still swims.
  • strength (default 1, 0–1) - the mix of smoothed vs original orientation. 0 does nothing, 1 fully applies the stabilized path. Drop it toward 0.5 if full stabilization makes the motion feel artificial.

The project_id, parent_output_id, and force_run_token inputs are internal frontend bookkeeping - leave them alone.

How it works

This one isn't a filter-string wrapper like a lot of the FX stages. It calls a dedicated 360-stabilization runner in the pack (stabilize_360_video) that processes the footage frame by frame in equirectangular space, estimating and smoothing the camera's orientation path. Because it operates on the full sphere rather than a flat projection, you don't get the edge artifacts a flat stabilizer would produce when it runs out of image to shift.

Install

ComfyTV ships ~190 stages in one pack; installing the pack covers this node.

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart ComfyUI fully and look under ComfyTV → VideoFX. ComfyUI Manager finds it by searching "ComfyTV". No model downloads and no extra Python dependencies - the stabilization is computed locally on the clip. On ComfyUI Desktop or macOS, the README warns the relative cd can target the wrong instance; clone into the absolute path of the running one (from the startup log).

Troubleshooting

  • Footage still sways. Raise smoothing toward 60–120. If it still swims, double-check your clip is proper equirectangular 360 - feeding it a normal flat video won't stabilize well because the motion model doesn't match.
  • Motion looks too floaty/robotic. That's over-smoothing; lower smoothing or dial strength below 1 to keep some of the original energy.
  • No output. Wire a video into the video input; the stage raises a clean error otherwise.

The workflow is: 360 Stabilize the sphere, then 360 Projection to aim and flatten it. Together they turn shaky 360 into something a client could actually watch.

CategoryComfyTV/VideoFX

Inputs (6)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
smoothingINT151–120
strengthFLOAT1.000–1
videooptCOMFYTV_VIDEO

Outputs (1)

NameTypeDescription
videoCOMFYTV_VIDEO