Speech-God Cast
Round up your characters so the script can find them
- character_1
- character_2
- character_3
- character_4
- cast
- cast
Speech-God Cast is the node that turns a pile of individual Character definitions into a usable ensemble. You build characters with Speech-God Character, but Generate doesn't take characters - it takes a SPEECHGOD_CAST. This node is the adapter: it groups up to four characters into one bundle, and Generate uses that bundle to route each line of dialogue to the right voice.
It has almost no learning curve:
- character_1 - required. The others are optional; a one-character scene is just a Cast with a single wire.
- character_2, character_3, character_4 - add more, up to four per node.
- cast - the sneaky useful one. Chain another Cast node into this input and the lists merge, which is the README's official path to "unlimited characters." The tooltip on this socket says it plainly: chain another Cast node here for unlimited characters.
Output is one cast wire (SPEECHGOD_CAST) that feeds Speech-God Generate.
How it works, and the gotcha that follows
Internally the Cast builds a dict keyed by each character's character_name - uppercased and stripped. When Generate parses your script, it looks up each speaker tag the same way: [SQUIRREL] or SQUIRREL: ... gets stripped, uppercased, and matched against the cast. Case doesn't matter, but the name does: if your script tag and your character_name don't match, lines route to the wrong character - specifically to the first character in the cast, since that's the fallback for anything unmatched. This is the single most common "why is my squirrel voiced by the elephant" failure in this pack. Fix is always the same: name your character SQUIRREL if your script says [SQUIRREL].
Also good to know: untagged lines in the script inherit the previous speaker, and the very first line with no tag at all goes to the first character in the cast. So a narrator-heavy script is easy to build by just putting the narrator in character_1 and never tagging those lines.
Installing
Same pack story as the rest of the Speech-God suite: ComfyUI Manager (search "Speech-God"), or
cd ComfyUI/custom_nodes
git clone https://github.com/realTNEU/ComfyUI-SpeechGod
then install requirements.txt into the ComfyUI venv and restart. Cast itself is pure data plumbing - no models, no engine. If the pack loads, this node loads; it doesn't touch the TTS models at all, so it's a nice cheap one to test that your install took.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| character_1 | SPEECHGOD_CHARACTER | — | |
| character_2opt | SPEECHGOD_CHARACTER | — | |
| character_3opt | SPEECHGOD_CHARACTER | — | |
| character_4opt | SPEECHGOD_CHARACTER | — | |
| castopt | SPEECHGOD_CAST | Chain another Cast node here for unlimited characters |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cast | SPEECHGOD_CAST | — |