Nodes/ComfyUI-ElevenLabs-Pro/ElevenLabs Pro - Voice Create
ComfyUI Node

ElevenLabs Pro - Voice Create

Saving a preview before it evaporates

By IxMxAMAR·Created 5 months ago·Updated about a month ago· 1
ElevenLabs Pro - Voice Create
    • voice_id
    • status
    api_key
    generated_voice_id
    voice_nameMy Designed Voice
    createfalse
    voice_description

    Voice Design is the fun part; this node is the part that makes it real. A designed voice preview only exists as a temporary ID until you save it - and that's exactly what ElevenLabs Pro - Voice Create does. You feed it the generated_voice_id from the Voice Design node, give the voice a name, and it becomes a permanent member of your library that every TTS node in the pack can use from then on.

    It's a small node with a big default that will trip you up: create is False, and until you flip it to True nothing gets saved. Same safety gate as Voice Clone, same reason - older versions of this pack saved on every queue and quietly burned through voice slots (ElevenLabs limits how many you can hold). So the pipeline feels broken the first time you run it: Design gives you a voice, Create gives you a DRY-RUN status and an empty voice_id. Flip the switch, run once, and you're permanent.

    How it works

    The node POSTs to /v1/text-to-voice/create-voice-from-preview with the generated_voice_id, your chosen voice_name, and an optional description. On success the API returns a permanent voice_id, which is what you wire into TTS going forward. Outputs are voice_id and status - and on dry-run, voice_id is empty while status explains exactly what would have happened. That status string is your friend; read it before assuming the node is broken.

    The inputs that matter

    • generated_voice_id - required, and the error message is blunt if you skip it: "Connect from Voice Design node." It's the ID of the specific preview you auditioned.
    • create - the switch. False by default, must be True to save.
    • voice_name - pick something you'll recognize in a month, because it now lives in your library.
    • voice_description - optional, but a good habit if you'll share the account or revisit this later.

    The workflow is literally three nodes: Voice Design → Voice Create → TTS (with the voice_id output feeding TTS). One thing worth doing once you've saved a voice you like: strip Design and Create out of the workflow and just use a Voice Selector or a raw voice_id string. No point re-running the paid preview call every time you want to narrate something.

    Install

    ComfyUI Manager → search ComfyUI-ElevenLabs-Pro → Install → restart, or:

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

    Restart ComfyUI. Dependencies are just requests and soundfile; no local model files - everything runs on ElevenLabs' API. You'll need an API key (ELEVENLABS_API_KEY env var or the masked api_key field).

    Where people get burned

    Two spots. First, create=False + a "why is my voice_id empty" moment - flip the switch. Second, realizing you saved preview #0 when preview #2 was the good one. If that happens, don't panic: go back to Voice Design, bump preview_index to 2, re-run, and Create again. You can also read all_voice_ids off the Design node to see exactly what you're working with before you commit.

    CategoryElevenLabs Pro/Voice

    Inputs (5)

    NameTypeDefaultDescription
    api_keySTRING
    generated_voice_idSTRINGThe generated_voice_id from Voice Design node.
    voice_nameSTRINGMy Designed VoiceName to save the voice as.
    createBOOLEANfalseMUST be True to actually save. Default False prevents accidental voice-slot burn.
    voice_descriptionoptSTRINGOptional description for the saved voice.

    Outputs (2)

    NameTypeDescription
    voice_idSTRING
    statusSTRING