Nodes/ComfyUI API Toolkit/ElevenLabs - Speech to Speech
ComfyUI Node

ElevenLabs - Speech to Speech

Re-voice existing audio into a new voice

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 1
ElevenLabs - Speech to Speech
  • audio
  • audio
api_key
voice_id
modeleleven_multilingual_sts_v2
stability0.50
similarity_boost0.75
style0.00
speed1.00
use_speaker_boosttrue
output_formatmp3_44100_128
seed0
remove_background_noisefalse

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.
  • seed and output_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 with AIS_EL_AudioIsolation first.
  • 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.
CategoryAPI Toolkit/ElevenLabs/Audio

Inputs (12)

NameTypeDefaultDescription
api_keySTRING
audioAUDIO
voice_idSTRINGTarget voice ID.
modelCOMBOeleven_multilingual_sts_v22 options: eleven_multilingual_sts_v2, eleven_english_sts_v2
stabilityoptFLOAT0.500–1Voice stability. Lower = more expressive/emotional, Higher = more consistent/monotone. Creative(<0.5), Natural(0.5), Robust(>0.5).
similarity_boostoptFLOAT0.750–1How closely AI adheres to the original voice. Too high may introduce artifacts.
styleoptFLOAT0.000–1Style exaggeration. Increases expressiveness but reduces stability. Recommended: 0 for most use cases.
speedoptFLOAT1.000.5–2Speech speed. 1.0 = normal, <1.0 = slower, >1.0 = faster.
use_speaker_boostoptBOOLEANtrueBoost similarity to original speaker. Increases latency slightly.
output_formatoptCOMBOmp3_44100_128Audio output format. mp3_44100_192 and opus require Creator tier+.
seedoptINT00–4294967295Seed for reproducibility. 0 = random. Determinism not guaranteed.
remove_background_noiseoptBOOLEANfalse

Outputs (1)

NameTypeDescription
audioAUDIO