Comfy-Org/ComfyUI · error · ValueError
Unknown voice: {voice}
Error message
Unknown voice: {voice} What it means
Raised by the ElevenLabs voice-picker node when the selected voice label is not a key in ELEVENLABS_VOICE_MAP, so no voice id can be resolved. The node is a pure local lookup: it maps the display label shown in the combo to ElevenLabs' voice UUID.
Source
Thrown at comfy_api_nodes/nodes_elevenlabs.py:232
description="Select a predefined ElevenLabs voice for text-to-speech generation.",
inputs=[
IO.Combo.Input(
"voice",
options=ELEVENLABS_VOICE_OPTIONS,
tooltip="Choose a voice from the predefined ElevenLabs voices.",
),
],
outputs=[
IO.Custom(ELEVENLABS_VOICE).Output(display_name="voice"),
],
is_api_node=False,
)
@classmethod
def execute(cls, voice: str) -> IO.NodeOutput:
voice_id = ELEVENLABS_VOICE_MAP.get(voice)
if not voice_id:
raise ValueError(f"Unknown voice: {voice}")
return IO.NodeOutput(voice_id)
class ElevenLabsTextToSpeech(IO.ComfyNode):
@classmethod
def define_schema(cls) -> IO.Schema:
return IO.Schema(
node_id="ElevenLabsTextToSpeech",
display_name="ElevenLabs Text to Speech",
category="partner/audio/ElevenLabs",
description="Convert text to speech.",
inputs=[
IO.Custom(ELEVENLABS_VOICE).Input(
"voice",
tooltip="Voice to use for speech synthesis. Connect from Voice Selector or Instant Voice Clone.",
),
IO.String.Input(
"text",View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Re-open the node and re-select a voice from the dropdown so a current label is stored.
- If calling via the HTTP API, use the exact voice label currently offered by the combo, not a UUID.
- Update the workflow JSON's voice field to one of the currently supported labels.
Defensive patterns
Strategy: type-guard
Type guard
def is_known_voice(voice_label: str, voice_map: dict[str, str]) -> bool:
return voice_label in voice_map Prevention
- Select voices from the dropdown; never hand-type labels into combo widgets.
- After loading shared workflows, re-pick combo values that may be stale.
- When using the HTTP API, source the label from the node's current combo options.
When it happens
Trigger: execute() receives a voice string absent from ELEVENLABS_VOICE_MAP — stale value from an old workflow JSON, a typed-in combo value, or a renamed voice label.
Common situations: Loading workflows saved when the voice list differed (voices added/removed by ElevenLabs); hand-editing workflow JSON; programmatic API prompts passing a raw voice UUID or free-text name instead of the exact label.
Related errors
- Unknown reference mode: {mode!r}
- Reference mode '{MODE_SPEAKER}' requires selecting a preset
- Number of speakers cannot be specified when diarization is e
- INVALID_TAG_FILTER
- Unknown context_schedule '{context_schedule}'.
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/d0aff12f179bac6d.
Report an issue: GitHub.