๐ฉ๏ธ Sound Effects
Text-to-sound generation, not speech
- TTS_engine
- audio
- generation_info
Everything else in this suite makes voices. This node makes everything but voices - rain on a tin roof, distant thunder, a crackling fire, a door slam. You type a description, you get a sound. It's the foley/ambience corner of the pack, useful for laying atmosphere under a narration or filling out a scene's soundscape without hunting through a sample library.
Like the TTS consumer nodes, this is a driver, not a model: it takes a TTS_engine input and runs it. But here the engine has to be a sound-generating one - MOSS-SoundEffect (v1 or v2) is what feeds this node. Wiring a speech-only engine in won't get you foley.
How it works
You give it a description in plain language and a duration_seconds, and the underlying sound model generates audio to match. For longer effects the node chunks the request and stitches the pieces with a crossfade so you don't hear a seam every few seconds. It's the same "unified" idea as the rest of the suite - one node, swap the engine behind it - applied to non-speech audio.
The inputs and outputs that matter
TTS_engine- required, and it needs to be a sound-effects-capable engine (MOSS-SoundEffect). This is the piece people miss.description- what you want to hear. Be concrete and physical: surfaces, materials, distance, weather. The default ("Heavy rain on a metal rooftop with distant thunder and occasional wind gusts.") is a good template for the level of detail that works.duration_seconds- 0.5 up to 300. Longer requests get chunked automatically.seed- same description, same seed, same sound; change the seed to roll a different take.
Optional: crossfade_seconds controls how the chunks of a long effect blend (bump it up if you hear a bump at the joins), and enable_audio_cache skips regenerating an unchanged effect.
Two outputs: audio - the generated sound, wire it to a Save/Preview Audio node or into ๐ช Merge Audio to layer under a voice track - and generation_info for diagnostics.
Installing it
Comes with the pack. ComfyUI Manager โ search "TTS Audio Suite" โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/diodiogod/TTS-Audio-Suite.git
cd TTS-Audio-Suite
python install.py
The MOSS-SoundEffect models are large (v2 is ~11GB) and auto-download on first use. There's a dedicated Sound Effects guide in the pack's docs/ if you want the deep version.
Common issues & troubleshooting
It generated speech / gibberish instead of a sound. You've got a speech engine connected. This node needs a sound-generation engine (MOSS-SoundEffect). Swap the engine node and try again.
The effect is generic or wrong. These models respond to physical detail. "Rain" is vague; "steady heavy rain on a metal roof, distant rolling thunder, occasional gusts" gives the model something to work with. Change the seed to audition different interpretations of the same prompt.
Audible seams in a long effect. For durations past a single chunk, raise crossfade_seconds so the joins blend more smoothly. A one-second crossfade is the default; a longer one hides transitions better in continuous ambience.
Big first-run download. The sound model is multi-GB and pulls once on first generation. Expect a wait, then it's cached.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| TTS_engine | TTS_ENGINE | Connect an engine configured for sound-effect generation. MOSS-SoundEffect v1 uses the MOSS-TTS Engine; v2 uses the MOSS SoundEffect v2 Engine. Speech-only engines stop with guidance. | |
| description | STRING | Heavy rain on a metal rooftop with distant thunder and occasional wind gusts. | Describe the sound, environment, actions, texture, distance, and timing you want. This is a sound description, not text to be spoken. Inline parameter and pause tags are supported. |
| duration_seconds | FLOAT | 10.00.5โ300 | Duration of each described segment. A single MOSS v2 segment longer than 30 seconds is generated in overlapping chunks and trimmed to this exact duration. Inline [seconds:X] overrides it. |
| seed | INT | 00โ18446744073709550000 | Controls the generated variation. Reuse a positive seed and the same settings for repeatable output; set 0 for a random seed. |
| crossfade_secondsopt | FLOAT | 1.00โ10 | Overlap between adjacent generated segments and automatic long-duration chunks. Use 0 for a hard join. [pause:X], [wait:X], and [stop:X] insert exact silence and disable the crossfade across that boundary. |
| enable_audio_cacheopt | BOOLEAN | true | Reuse audio when the engine, description, duration, seed, and generation settings are identical. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | โ |
| generation_info | STRING | โ |