NS Sound Effects
Cue Up Sound Effects Like a Sound Designer
- video
- video
Placing sound effects by hand is the most tedious part of short-form video: find a whoosh, line it up with the transition, repeat for every cut. NS Sound Effects automates the whole pass. Give it a JSON cue list and it generates each SFX with ElevenLabs and drops it onto your video at the exact timestamp. It's the audio companion to this pack's video tooling, and it fits especially well right after an LLM step that wrote the cues.
This is a cloud node, same family as NS Music: ElevenLabs generates each effect, FFmpeg does the placement and mixing. If you already have the pack's NS LLM writing structured output, you can feed its JSON straight in.
How it works
The node takes your sfx_cues - a JSON array where each cue has a time (seconds), sfx (what the sound is), duration, and optional volume. It calls ElevenLabs per cue to generate the effect as MP3, then builds an FFmpeg filter that delays each sound to its timestamp and mixes them over your video's audio. The prompt_influence control (0–1, default 0.7) tells ElevenLabs how literally to follow the sfx text - lower it and the generator improvises more; raise it for a stricter match.
A cue shape that works:
[
{"time": 0.5, "sfx": "whoosh", "duration": 0.6, "volume": 1.0},
{"time": 3.2, "sfx": "glitch", "duration": 0.4}
]
Inputs and outputs
Required: video, sfx_cues (that JSON array, as text), and api_key - leave the key empty to use Settings → Symbiotica → ElevenLabs API key, and resist typing it into the field, since a key in the widget gets saved into the workflow file you may later share. Optional: volume (global level, default 0.8) and prompt_influence (0.7).
The single output is video - your source clip with the effects mixed in. Wire it onward to a save or preview node.
Install and setup
Part of the Symbiotica pack. ComfyUI Manager → search "Symbiotica" → install, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart, add an ElevenLabs key, and make sure ffmpeg is on your PATH - the mixing layer shells out to it (the pack also looks in /opt/homebrew/bin, /usr/local/bin, and /usr/bin).
Troubleshooting
- Nothing changes, no crash - that's the node's fail-soft behavior. Invalid JSON, a non-array input, cues without a valid
time/sfx, or an empty list all log a warning to the console and return the original video. Check the terminal before blaming ElevenLabs. - Effects land at the wrong time - cue
timeis in seconds, float. 0.5 is half a second, not half a minute. - The node is slow - every cue is a separate ElevenLabs call, and each costs money. Trim the cue list or batch similar effects.
- No audio at all - confirm the source video has an audio stream; the mixer has nothing to mix against otherwise.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — | |
| sfx_cues | STRING | — | |
| api_key | STRING | Leave empty to use Settings → Symbiotica → ElevenLabs API key. A key typed here is saved into the workflow file. | |
| volumeopt | FLOAT | 0.800–2 | — |
| prompt_influenceopt | FLOAT | 0.700–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |