ElevenLabs - Voice Selector
Pick an ElevenLabs voice from a dropdown without calling the API
- voice_id
If you just want Rachel, or Drew, or any of the forty-something premade ElevenLabs voices, this is the fastest way to get one into a TTS node. It's a dropdown: pick a name, it outputs the matching voice_id as a STRING, and you wire that into AIS_EL_TTS or any other node that wants a voice.
The neat part is that it makes no network call at all. The list of premade voices is baked into the node as a static map, so selecting "Rachel (female, american)" just returns the hardcoded ID. That means it works instantly, offline, with no key attached - you can build and test the voice-picking half of your workflow before you've even configured an API key. If you want a live list of your voices (clones, generated voices, library entries), that's what AIS_EL_FetchVoices is for; this node is the fixed menu.
Two inputs, that's the whole interface:
voice- the dropdown, ~43 premade voices with gender and accent in the label. It's a ComfyUI enum, so the values are static until you restart the app.custom_voice_id- an escape hatch. Type any voice ID here and it takes priority over the dropdown, which is how you use this node with a clone or a designed voice that isn't in the static list. Keep it empty for the dropdown to win.
One output: voice_id (STRING). That's it. Dropdowns in ComfyUI are fixed at load time, so a voice ElevenLabs added yesterday won't appear in the list until you restart - but that's precisely what custom_voice_id is there for, and it's also why the pack ships FetchVoices for anything dynamic.
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, and you're done - this specific node needs nothing beyond the pack loading, since it never touches the network.
Where it fits
ElevenLabs voices come in two flavors: the premade catalog and your own library. If you're still figuring out which voice you want for a project, this dropdown is the cheapest way to audition them - swap the selection and re-queue, no extra API calls between tries. The moment you're cloning a specific person's voice or saving a designed one, stop using the dropdown's hardcoded list and feed the clone's voice_id through custom_voice_id instead. That's the whole workflow: the static picker for known voices, the dynamic path for everything you've created yourself.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| voice | COMBO | Rachel (female, american) | 43 options: (Custom voice_id), Rachel (female, american), Drew (male, american), Clyde (male, american), Paul (male, american), Domi (female, american), +37 |
| custom_voice_idopt | STRING | Override dropdown selection with a custom voice_id. Takes priority if non-empty. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| voice_id | STRING | — |