NS Video Effects
Zoom Punches and Wiggle Without Re-Rendering
- video
- video
Every short-form editor knows the zoom punch - that quick punch-in on a word or a moment that keeps a static clip feeling alive. NS Video Effects bakes those moves into your ComfyUI graph: rhythmic zoom, handheld wiggle, and face-tracking, applied to an already-generated video without re-running your sampler. It's the difference between "generated a clip" and "generated a clip that looks edited."
It's a Remotion-rendered node - the effects are computed and re-rendered through a bundled Remotion bundle, not through ffmpeg filters. That's worth knowing for two reasons: it means the effects are real motion graphics (smooth, per-frame, trackable), and it means the node needs Node.js on your system.
How it works
Three effect families, each toggled on with a boolean:
- zoom - rhythmic punches.
zoom_amount(0.01–0.2, default 0.05) is how deep each punch goes;zoom_frequency(1–10, default 5) is how many punches happen over the clip;zoom_speed(0.1–3) is how snappy the motion is;zoom_blur(on by default) gives it that videographer motion-blur feel. - wiggle - handheld-style camera sway,
wiggle_intensity(0.5–10, default 3). Small values read as a stabilizer being slightly loose; big values read as an earthquake. Start low. - face_tracking - keep a face framed through the motion. This is the one that makes zoom punches feel professional on talking-head content instead of random.
Inputs: video, plus those effect controls. Output: the re-rendered video.
Install and setup
Part of the Symbiotica pack. ComfyUI Manager → search "Symbiotica", or:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart. Node.js must be installed system-wide - the README is explicit: Remotion-rendered nodes need node on PATH. The pack ships a pre-built Remotion bundle so there's no npm install at install time, but the renderer subprocess still calls node. On a Mac, brew install node. No API key.
Troubleshooting
- Errors mentioning node / Remotion - Node.js isn't found. The pack looks for
nodeon PATH and in/opt/homebrew/bin//usr/local/bin//usr/bin. Install it and restart ComfyUI. - Zoom is subtle to the point of invisible -
zoom_amount0.05 is gentle. It's a punch, not a crash zoom. Go 0.08–0.12 if you want it to read on a phone screen (where, let's be honest, this content mostly lives). - Wiggle makes viewers seasick - turn
wiggle_intensitydown toward 1–2. 10 is a category of its own. - Face tracking doesn't seem to do anything - check the face is present in most frames; tracking a face that's only there half the clip is a weird result. Also confirm
zoomis actually on - tracking alone with no motion to track does nothing visible. - Renders are slower than you expected - it's a Remotion re-render, not a passthrough. That's the price of smooth motion graphics. It's still far cheaper than re-generating the clip.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — | |
| zoomopt | BOOLEAN | false | — |
| zoom_amountopt | FLOAT | 0.050.01–0.2 | — |
| zoom_frequencyopt | INT | 51–10 | — |
| zoom_speedopt | FLOAT | 1.00.1–3 | — |
| zoom_bluropt | BOOLEAN | true | — |
| wiggleopt | BOOLEAN | false | — |
| wiggle_intensityopt | FLOAT | 3.00.5–10 | — |
| face_trackingopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |