Merge Voice Emotions
Assembling a cast for one Generate call
- emotion1
- emotion2
- emotion3
- emotion4
- emotion5
- emotion6
- emotion7
- emotion8
- emotion9
- emotion10
- emotions
Merge Voice Emotions is a plumbing node, and it exists because the Generate node needs a list of voices while each emotion node produces exactly one. It takes up to ten EASY_INDEXTTS_EMOTIONS objects on emotion1 through emotion10 (only the first is required) and merges them into a single emotions output - no mixing, no weighting, just concatenation in order. That order matters more than it looks like it should.
Here's the trick: the order you plug voices in decides their auto-names. An emotion node with an empty voice_name gets labeled s1, s2, s3... by position in the merged list. So if you're scripting a dialogue and the text says [s2] Are you kidding me?, that line goes to whichever voice you plugged in second. Name your voices explicitly on the emotion nodes and order stops mattering - but if you rely on auto-naming, this is where the naming actually happens.
When you'd use it
- Any time a single Generate call should produce a multi-speaker conversation. Build one emotion node per character, merge them here, and drive the whole scene with one script using
[name]markers. - Mixing emotion types for one character across the pack - say a vector-based emotion for one line and a text-described emotion for another. Each emotion node emits one object; the merge bundles them into the list the Generate node expects.
- Note the input type is
EASY_INDEXTTS_EMOTIONS, not audio. If you're just stacking reference clips without emotion, you want Merge Voice Audios instead, which feeds thereference_audiosinput.
The output goes into IndexTTS Generate or IndexTTS Generate Simple (into the emotions input, which outranks both reference audio inputs). It's a dumb, boring, indispensable node - and if you're building anything bigger than a single-voice narration, it's the one that turns a pile of emotion objects into a cast.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| emotion1 | EASY_INDEXTTS_EMOTIONS | voice emotion 1 | |
| emotion2opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 2 | |
| emotion3opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 3 | |
| emotion4opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 4 | |
| emotion5opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 5 | |
| emotion6opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 6 | |
| emotion7opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 7 | |
| emotion8opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 8 | |
| emotion9opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 9 | |
| emotion10opt | EASY_INDEXTTS_EMOTIONS | (Optional) voice emotion 10 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| emotions | EASY_INDEXTTS_EMOTIONS | — |