ComfyUI Node

ORPH_Prompt

Orpheus text in

By AustinMroz·Created about a year ago·Updated about a year ago· 1
ORPH_Prompt
    • ORPH_TOKENS
    text
    speaker

    ORPH_Prompt is where you actually tell Orpheus what to say. Everything upstream of this - loading the 3B model, the SNAC codec, the whole pack - exists so this node's simple job can happen: take your text, wrap it in the right token ceremony, and hand it to the sampler as ORPH_TOKENS.

    It's the closest thing in the pack to a "prompt box", and for a beginner that's exactly how you should treat it.

    How it works

    The node borrows ComfyUI's bundled Llama 3 tokenizer (the same one behind the HunyuanVideo text encoders, so no extra download) and encodes your text, then wraps it in section tokens: start_of_human ... end_of_human, with the text and its end-of-text token in between. Those section tokens are how the model knows who's "speaking" - the human side sets up the AI to respond, and ORPH_Sample will add the AI side of that framing later.

    The speaker dropdown is doing something slightly sneaky: when you pick tara, the node actually rewrites your text to "tara: " + text before tokenizing. Orpheus was trained with speaker-prefixed speech, so that prefix is the entire voice-selection mechanism. No separate conditioning audio, no embeddings to load - just a name prepended to the string.

    The inputs that matter

    Only two, and they're both obvious:

    • text - multiline, so you can drop in whole paragraphs. Orpheus models are also trained on inline expressive tags, so don't be shy about sprinkling things like <laugh> or <sigh> into the text; that's the model's native way of adding delivery, not a hack.
    • speaker - None, tara, leah, jess, leo, dan, mia, zac, zoe. Nine built-in voices, no cloning required at this stage. None just omits the prefix.

    The single output, ORPH_TOKENS, goes into ORPH_Sample's prompt input for a one-shot TTS run, or into ORPH_Combine if you're stitching together dialogue or voice-cloned segments.

    One bookkeeping note: this node does not add the AI/speech section tokens - that's ORPH_Sample's add_start_token job. If you build a prompt with ORPH_Combine and then also leave add_start_token on, you can end up with doubled section tokens. Keep the split in your head: human framing here, AI framing at sampling.

    Installing it

    Nothing special about this node - it comes with the pack. Get the pack via ComfyUI Manager (search ComfyUI-Orpheus) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AustinMroz/ComfyUI-Orpheus
    

    Restart ComfyUI. You still need the two weight files the README calls out - the Orpheus 3B safetensors in models/orpheus/ and the SNAC 24 kHz model in models/vae/ - because this node only produces tokens; the rest of the graph needs the models to do anything with them.

    Common issues

    • Output is garbage or empty. The token stream from ORPH_Prompt is text tokens - if you feed it straight into ORPH_Decode (skipping ORPH_Sample), the decoder tries to read it as audio codes and either errors or hisses. Sample first.
    • The speaker doesn't change the voice. Double-check you actually picked one - None is the default, and with None Orpheus falls back to its default speaker.
    • Everything downstream errors on load. Same pack-level gotcha as always: the pack imports torchaudio, which stock ComfyUI doesn't always ship. pip install torchaudio matching your torch, restart, done.

    The pack is self-described as "heavily WIP," but ORPH_Prompt is the one node that feels finished - type, pick a voice, move on.

    Categorysd

    Inputs (2)

    NameTypeDefaultDescription
    textSTRING
    speakeroptCOMBO9 options: None, tara, leah, jess, leo, dan, +3

    Outputs (1)

    NameTypeDescription
    ORPH_TOKENSORPH_TOKENS