Nodes/ComfyUI-Easy-IndexTTS2/Voice Emotion Vector
ComfyUI Node

Voice Emotion Vector

Eight sliders, one very expressive voice

By yolain·Created 11 months ago·Updated 8 months ago· 269
Voice Emotion Vector
  • reference_audio
  • emotions
voice_name
use_randomfalse
Happy0.00
Angry0.00
Sad0.00
Fear0.00
Hate0.00
Low0.00
Surprise0.00
Neutral0.00

Voice Emotion Vector is the engineer's way to set emotion in IndexTTS-2: no prose, no sample clips, just eight sliders. Happy, Angry, Sad, Fear, Hate, Low, Surprise, Neutral - each from 0.0 to 1.4, all defaulting to zero. Push the ones you want, leave the rest alone, and the model conditions the cloned voice on that exact blend.

If Voice Emotion Text is for when you can think in words, this is for when you know precisely what a mix should feel like. It's also the most deterministic option - same sliders, same seed, same result, which matters if you're iterating on a line until it lands.

What you set

  • reference_audio - the voice to clone. Same as every other emotion node; the identity never changes.
  • voice_name - optional label for multi-voice scripts. Empty means auto-naming (s1, s2, ...) in merge order.
  • use_random - skip the sliders and let the model roll a random emotion. Handy for exploring a voice's range in one batch run.
  • The eight sliders - the actual emotion recipe. There's no requirement that they sum to anything; it's a blend, not a distribution. A 1.4 on Sad with a 0.3 on Low reads as melancholy; a little Angry under a lot of Happy reads as manic. Experiment.

The output is one emotions object wiring into IndexTTS Generate / Generate Simple / Merge Voice Emotions - same wire type as the other two emotion nodes, so you can mix and match them in one scene.

The catch

The emotion vector is a compact 8-dimensional summary, so it's expressive but coarse. Community reports on IndexTTS-2's emotion control are good, but "good" means subtle-to-moderate shifts - don't expect it to fully mimic a human actor's range from sliders alone. Where the vector shines is repeatability: it's the one emotion input that doesn't depend on the quality of a reference clip, because there isn't one.

Start a voice with a single high slider (say, 1.0 Angry) to sanity-check that the emotion actually reads, then fine-tune the mix. If the feeling still isn't landing, that's when you switch to Voice Emotion Audio and borrow the delivery from a real clip instead.

CategoryEasyUse/IndexTTS2

Inputs (11)

NameTypeDefaultDescription
reference_audioAUDIOReference audio
voice_nameSTRINGVoice name (If empty, it will be defined as s1, s2..., according to the order of batch combinations)
use_randomBOOLEANfalseGenerate a random emotion sampling
HappyFLOAT0.000–1.4
AngryFLOAT0.000–1.4
SadFLOAT0.000–1.4
FearFLOAT0.000–1.4
HateFLOAT0.000–1.4
LowFLOAT0.000–1.4
SurpriseFLOAT0.000–1.4
NeutralFLOAT0.000–1.4

Outputs (1)

NameTypeDescription
emotionsEASY_INDEXTTS_EMOTIONS