ElevenLabs - Speech to Speech
Re-voice existing audio into a new voice
- audio
- audio
Text to Speech starts from text. Speech to Speech starts from audio: it takes an existing recording, keeps the delivery - the pacing, the emotion, the pauses - and re-voices it in a different voice. This is how you'd make a character "speak" your own performance, or redo a narration in a new voice without recording it again. The node hits the ElevenLabs /speech-to-speech/{voice_id} endpoint and returns the re-voiced audio.
Three required inputs: api_key, audio (the source recording, as an AUDIO dict), and voice_id - the target voice, from the selector or fetch nodes. Then model: eleven_multilingual_sts_v2 (default) or eleven_english_sts_v2. Multilingual if the source audio isn't English, English-only otherwise.
The tuning knobs will look familiar if you've used the TTS node:
stability- low for expressive, high for consistent.similarity_boost- how closely it matches the target voice.style- expression exaggeration; keep at 0 unless you want a performance.speed- nudge the delivery faster or slower (0.5–2.0).remove_background_noise- clean the source before conversion. Leave it on for phone recordings or room-mic captures; it's cheap insurance.seedandoutput_format- the usual reproducibility and format controls, with the Creator-tier note on the high-bitrate formats.
Single output: audio (AUDIO).
When you'd reach for it
The classic workflow is performance transfer: record yourself reading a line with the exact emotion you want, then STS it into a cloned or premade character voice. That beats prompting TTS for "angry whisper" every time, because the acting is in your recording, not in the prompt. It's also how people re-voice existing clips - an old narration, a legacy recording - into a consistent brand voice, or dub a voice track into another character in the same script. If you're doing dialogue, you can STS each actor's raw take into their assigned voice and keep the natural back-and-forth timing.
Installing it
Part of the ComfyUI API Toolkit pack. Manager: search "API Toolkit". Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
cd ComfyUI-API-Toolkit
pip install -r requirements.txt
Restart. Needs requests and soundfile (soundfile converts your AUDIO input to uploadable WAV).
Gotchas
- The result is only as clean as the source. If the input has echo or music behind it, the conversion carries that baggage into the output voice. Use
remove_background_noise, or pre-clean withAIS_EL_AudioIsolationfirst. - Per-second or per-character billing applies - long source audio gets expensive fast, and each queue re-runs because the pack uses IS_CHANGED.
- This is one of the "data leaves the machine" nodes, and voice re-voicing is exactly the capability that makes nonconsensual cloning a real concern. Only feed it audio you have the right to re-voice.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| audio | AUDIO | — | |
| voice_id | STRING | Target voice ID. | |
| model | COMBO | eleven_multilingual_sts_v2 | 2 options: eleven_multilingual_sts_v2, eleven_english_sts_v2 |
| stabilityopt | FLOAT | 0.500–1 | Voice stability. Lower = more expressive/emotional, Higher = more consistent/monotone. Creative(<0.5), Natural(0.5), Robust(>0.5). |
| similarity_boostopt | FLOAT | 0.750–1 | How closely AI adheres to the original voice. Too high may introduce artifacts. |
| styleopt | FLOAT | 0.000–1 | Style exaggeration. Increases expressiveness but reduces stability. Recommended: 0 for most use cases. |
| speedopt | FLOAT | 1.000.5–2 | Speech speed. 1.0 = normal, <1.0 = slower, >1.0 = faster. |
| use_speaker_boostopt | BOOLEAN | true | Boost similarity to original speaker. Increases latency slightly. |
| output_formatopt | COMBO | mp3_44100_128 | Audio output format. mp3_44100_192 and opus require Creator tier+. |
| seedopt | INT | 00–4294967295 | Seed for reproducibility. 0 = random. Determinism not guaranteed. |
| remove_background_noiseopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |