Comfy-Org/ComfyUI · error · ValueError

Reference mode '{MODE_SPEAKER}' requires selecting a preset

Error message

Reference mode '{MODE_SPEAKER}' requires selecting a preset voice.

What it means

Thrown by the ByteDance Seed Audio node when reference_mode is 'preset voice' but the preset_voice selection is empty or not a key in SEED_AUDIO_VOICE_MAP (the map of preset voice labels to speaker ids built from SEED_AUDIO_PRESET_VOICES). Preset-voice mode requires one of the built-in voices; the whole prompt is read in that voice.

Source

Thrown at comfy_api_nodes/nodes_bytedance.py:3188

            raise ValueError(
                "Connect reference_audio inputs in order without gaps: reference_audio_1, then _2, then _3."
            )
        if max_tag > len(audio_indices):
            raise ValueError(
                f"The prompt references @Audio{max_tag}, but only {len(audio_indices)} "
                f"reference audio(s) are connected."
            )
    elif mode == MODE_IMAGE:
        if not has_image:
            raise ValueError(f"Reference mode '{MODE_IMAGE}' requires a reference_image input.")
        if max_tag:
            raise ValueError(
                f"@AudioN tags are not used in '{MODE_IMAGE}' mode; the prompt should contain "
                f"only the text to synthesize."
            )
    elif mode == MODE_SPEAKER:
        if not preset_voice or preset_voice not in SEED_AUDIO_VOICE_MAP:
            raise ValueError(f"Reference mode '{MODE_SPEAKER}' requires selecting a preset voice.")
        if max_tag > 1:
            raise ValueError(
                f"'{MODE_SPEAKER}' mode uses a single voice, so @Audio{max_tag} is out of range. "
                f"Remove the @AudioN tags — the whole prompt is read in the selected voice."
            )
    else:
        raise ValueError(f"Unknown reference mode: {mode!r}")


class ByteDanceSeedAudioNode(IO.ComfyNode):

    @classmethod
    def define_schema(cls) -> IO.Schema:
        return IO.Schema(
            node_id="ByteDanceSeedAudio",
            display_name="ByteDance Seed Audio 1.0",
            category="partner/audio/ByteDance",
            description=(

View on GitHub (pinned to 1c6d8d45b3)

Solutions

  1. Open the node and pick one of the offered preset voices from the preset_voice dropdown (do not type a custom value).
  2. If the workflow JSON carries a stale voice string, re-select the voice and re-save the workflow.
  3. If you want to use your own audio clip as the voice, switch reference_mode to 'audio reference' and connect reference_audio inputs.
Defensive patterns

Strategy: validation

Validate before calling

valid_modes = {"text only", "audio reference", "image reference", "preset voice"}

# before queueing, ensure the preset_voice combo value is one of the offered labels
assert preset_voice in offered_preset_voices, f"preset_voice {preset_voice!r} is not in the dropdown list"

Prevention

When it happens

Trigger: reference_mode == 'preset voice' and preset_voice is falsy or not present in SEED_AUDIO_VOICE_MAP.

Common situations: Workflow loaded from JSON where the combo value for preset_voice is missing or from an older/newer version whose voice list differs; user typed a custom voice name into a combo that expects one of the fixed labels; locale change renamed the voice label.

Related errors


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/9f4fd32e7bbdfcdb. Report an issue: GitHub.