NS Video Overlay
Overlay a Logo or Clip With Blends and Platform Presets
- video
- image
- overlay_video
- video
- overlay_settings
A product shot with a floating logo. A facecam over gameplay. A watermark you didn't have to add in a video editor. NS Video Overlay is the compositing node for that: it puts one image or video on top of another with real controls - position, scale, opacity, and blend modes - all via FFmpeg. If you've wanted to composite inside ComfyUI instead of exporting and reopening in an editor, this is the missing step.
The blend modes are the feature most people don't expect from a ComfyUI node. multiply, screen, overlay, soft_light, hard_light, darken, lighten - the full photopea-style palette. That's what lets a texture or a glow sit in the footage instead of on top of it.
How it works
You give it a base video and one overlay source - either an image, an overlay_video, or a built-in platform preset. It resolves the overlay's dimensions, scales it to scale (0.1–5), positions it with position presets or raw x/y, applies opacity, and composites with the chosen blend_mode using FFmpeg's blend/maskedmerge filters. The overlay_preset dropdown is where the pack flexes: TikTok, Instagram, and Facebook each load a pre-made chrome overlay (bundled as webm assets) sized to that platform's convention - so "make it look like a real post" is a dropdown, not a design session.
It also emits an overlay_settings output (same OVERLAY_SETTINGS type the pack's other overlay machinery uses), so the settings you configured can be reused elsewhere without re-entering them.
Inputs and outputs
Required: video. Optional: overlay_preset (None/TikTok/Instagram/Facebook), image, overlay_video, position (Center/Top Left/Top Right/Bottom Left/Bottom Right/Custom), x/y (pixel offsets, −5000 to 5000, for Custom), scale, opacity (0–1), blend_mode. Outputs: video (composited) and overlay_settings.
Priority to remember: preset wins over overlay_video, which wins over image - the node resolves them in that order, so don't wire two sources and wonder which one you got.
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. Needs ffmpeg on PATH (checked in /opt/homebrew/bin, /usr/local/bin, /usr/bin too). No API key.
Troubleshooting
- Overlay in the wrong spot -
positionpresets cover the corners; for pixel-precise placement pick Custom and setx/y. - The overlay covers the whole frame - check
scale. A 1080p overlay at scale 1 over a 1080p base is full-frame by design. Dropscaleor pre-crop the overlay. - Blend mode looks like nothing happened -
normalis the default and many of the others are visually close at opacity 1 on busy footage. Dropopacityto ~0.5 and watchscreen/multiplydo their thing on the right content. - Nothing appears at all - no overlay source resolved: preset is "None" and neither
imagenoroverlay_videois wired. The node needs one of the three.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — | |
| overlay_presetopt | COMBO | None | 4 options: None, TikTok, Instagram, Facebook |
| imageopt | IMAGE | — | |
| overlay_videoopt | VIDEO | — | |
| positionopt | COMBO | Center | 6 options: Center, Top Left, Top Right, Bottom Left, Bottom Right, Custom |
| xopt | INT | 0-5000–5000 | — |
| yopt | INT | 0-5000–5000 | — |
| scaleopt | FLOAT | 1.000.1–5 | — |
| opacityopt | FLOAT | 1.000–1 | — |
| blend_modeopt | COMBO | normal | 8 options: normal, multiply, screen, overlay, soft_light, hard_light, +2 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| overlay_settings | OVERLAY_SETTINGS | — |