Nodes/ComfyUI API Toolkit/ElevenLabs - Voice Remix
ComfyUI Node

ElevenLabs - Voice Remix

Nudge a Voice You Already Have Instead of Designing One

By IxMxAMAR·Created 7 months ago·Updated 23 days ago· 1
ElevenLabs - Voice Remix
    • preview_audio
    • generated_voice_id
    ◄api_key►
    ◄voice_id►
    ◄voice_description►
    ◄textHello! This is a preview of the remixed voice.►
    ◄auto_generate_textfalse►
    ◄loudness0.50►
    ◄guidance_scale2.0►
    ◄seed0►

    Designing a voice from nothing is a gamble - you write a paragraph of adjectives and hope. Remixing is the smarter move most of the time: point at a voice that already has the timbre you want, then describe the deltas. "Same voice but older, more gravelled, slightly slower." That's this node.

    What it takes

    You need a voice_id from your own ElevenLabs library (Voice Selector or Fetch Voices will get you one), plus voice_description - 5 to 1000 characters of "what to change". The author's tooltip is explicit that it's the changes you're describing, not the voice as a whole.

    Then there's text, the sample line. The tooltip says 100–1000 characters, and warns that shorter text gets replaced by auto-generated sample text. That's not a soft suggestion - the node checks the length and, if your text is under 100 characters, it flips auto_generate_text on behind your back and lets the API write the preview line instead. So if you wire in a four-word sentence expecting to hear it read back, you won't. Either write something around a paragraph long, or set auto_generate_text yourself and accept that the sample is the model's.

    Two dials worth understanding before you blame the model:

    • guidance_scale (default 2) is how hard the remix follows your description. The tooltip flags the failure mode directly - crank it and it goes robotic. This is the one to move in small steps.
    • loudness (default 0.5) is output volume, with 0 landing around −24 LUFS. Only send it if you care; leaving it at default means the API uses its own.

    seed is more trustworthy here than in the TTS nodes - the tooltip says the same seed with the same inputs produces the same voice. 0 means random.

    The output that trips people up

    You get two things. preview_audio is an AUDIO stream - listen to it, and only it. generated_voice_id is a STRING.

    Here's the part that catches everyone: the remix is a preview, not a saved voice. Nothing has been added to your library yet. To keep it, wire generated_voice_id into the pack's Voice Create node along with a voice_name and a voice_description of 20–1000 characters - note that floor is higher than the remix node's 5-character floor, and the create node enforces it locally with a clear error. Only then does it become a voice you can select in every other node.

    Lose the id and the remix is gone. It's a cheap thing to lose and there's no undo, so if the preview is good, save it before you go tweaking the description again.

    How it works

    A single POST to /v1/text-to-voice/{voice_id}/remix, with your description in voice_description and the sample-text fields alongside. The node only sends loudness, guidance_scale and seed when they differ from the defaults, which keeps requests clean. It reads the first entry of the previews array in the response and returns that audio plus its generated_voice_id. If the API returns no previews, the node raises No voice previews returned by API. rather than handing you silence.

    Like every API node in this pack it implements IS_CHANGED, so each queue is a fresh call - and a fresh charge.

    Installing

    cd ComfyUI/custom_nodes
    git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
    cd ComfyUI-API-Toolkit
    pip install -r requirements.txt
    

    Or ComfyUI Manager, searching "API Toolkit". ElevenLabs needs requests, soundfile, scipy. If soundfile or scipy is missing, the entire ElevenLabs service quietly doesn't load and you'll find yourself wondering where the nodes went - that's the pack's graceful-fallback design, not a broken install. ELEVENLABS_API_KEY in your environment works as a key fallback.

    Where this fits

    Local voice tooling has gotten genuinely close for straight cloning - Chatterbox at a few seconds of reference audio is the community's default, and free. Remixing is a different job: it's a stylistic steer on a library voice you already like, iterating on the paid platform that still owns reliable multi-language production output. Reach for it when you have an existing voice and a specific complaint about it. If you're starting from nothing, Voice Design is the node you want; if you already have reference audio, Voice Clone is cheaper than either.

    CategoryAPI Toolkit/ElevenLabs/Voice

    Inputs (8)

    NameTypeDefaultDescription
    api_keySTRING—
    voice_idSTRINGVoice ID of the voice to remix.
    voice_descriptionSTRINGDescribe the changes to make to the voice. 5-1000 characters.
    textSTRINGHello! This is a preview of the remixed voice.Sample text, 100-1000 characters. Shorter text is replaced by auto-generated sample text.
    auto_generate_textoptBOOLEANfalseGenerate the sample text from the voice description instead of using `text`.
    loudnessoptFLOAT0.50-1–1Volume of the generated voice. -1 = quietest, 1 = loudest, 0 is roughly -24 LUFS.
    guidance_scaleoptFLOAT2.00–100How closely the remix follows the description. High values can sound robotic.
    seedoptINT00–2147483647Same seed with the same inputs produces the same voice. 0 = random.

    Outputs (2)

    NameTypeDescription
    preview_audioAUDIO—
    generated_voice_idSTRING—