ORPH_Prompt
Orpheus text in
- ORPH_TOKENS
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.Nonejust 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 -
Noneis the default, and withNoneOrpheus 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 torchaudiomatching 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| speakeropt | COMBO | 9 options: None, tara, leah, jess, leo, dan, +3 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ORPH_TOKENS | ORPH_TOKENS | — |