IAMCCS Emotion Buttons
Type 'fear, urgent' and get an acting direction an actor could actually follow
- emotion_prompt
- voice_prompt
- visual_prompt
- report
Ask most people to prompt an emotional video and they type something like "sad scene". The model hears "sad" and gives you a generic frown. IAMCCS Emotion Buttons replaces that with a small library of performance language - the kind of direction that makes a video model actually commit to a beat: breathing, diction, posture, eye behavior. Type fear, urgent and it turns that into a prompt like "fearful, tense, shallow breathing, guarded expression" plus "urgent, fast intent, focused eyes, pressured delivery", split into voice and visual channels.
It's one of the few genuinely opinionated nodes in the IAMCCS Cine pack, and it works standalone - no cine_linx, no Shotboard, no dependencies.
How it works
It holds a hardcoded map of ten emotions - calm, fear, anger, sad, joy, shock, whisper, urgent, wonder, resolve - each paired with a short performance description covering voice and body. You feed comma/newline-separated words into selected_emotions, and it looks each one up, dedupes them, and joins the results. Unknown words pass through as-is, so it degrades gracefully instead of dropping input.
Two controls shape the output:
intensity(0–1, default 0.7) - applied to how strongly the direction reads.target-performance_and_voice(both outputs, default),voice_only, orvisual_performance, letting you push emotion into the audio or the visuals alone. Handy when your lipsync chain only wants voice direction.
Outputs
emotion_prompt- the combined direction, for general conditioning.voice_prompt- the same text routed to the voice channel (pertarget).visual_prompt- routed to the visual/performance channel.report- which emotions were matched.
Wire voice_prompt into whatever conditions your audio/lipsync, and visual_prompt into the video conditioning. For the Cine pipeline, feed emotion_prompt into the Dialogue Prompt Kit's emotion slot or a local prompt.
Installing it
It's part of IAMCCS-nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI (or install via Manager by searching "IAMCCS"). No models, no extra deps - it's a lookup table with a UI. Baseline: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.
The honest take
The library is small and the language is one opinionated flavor of "good acting direction" - it won't magically fix weak motion, and pairing every shot with the same emotion words gets repetitive fast. But for the 90% case - you need a character to sell a beat and you don't want to hand-write direction per shot - it's a solid, fast helper. The target split is genuinely useful if your pipeline separates voice and visual conditioning. Just remember it's prose, not a control signal: the model still has to be able to render what you're describing, so keep intensity moderate and let LTX do its job.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| selected_emotions | STRING | — | |
| intensity | FLOAT | 0.700–1 | — |
| target | COMBO | performance_and_voice | 3 options: performance_and_voice, voice_only, visual_performance |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| emotion_prompt | STRING | — |
| voice_prompt | STRING | — |
| visual_prompt | STRING | — |
| report | STRING | — |