Nodes/IAMCCS-nodes/IAMCCS Emotion Buttons
ComfyUI Node

IAMCCS Emotion Buttons

Type 'fear, urgent' and get an acting direction an actor could actually follow

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Emotion Buttons
    • emotion_prompt
    • voice_prompt
    • visual_prompt
    • report
    selected_emotions
    intensity0.70
    targetperformance_and_voice

    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, or visual_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 (per target).
    • 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.

    CategoryIAMCCS/Cine/Prompt Helpers

    Inputs (3)

    NameTypeDefaultDescription
    selected_emotionsSTRING
    intensityFLOAT0.700–1
    targetCOMBOperformance_and_voice3 options: performance_and_voice, voice_only, visual_performance

    Outputs (4)

    NameTypeDescription
    emotion_promptSTRING
    voice_promptSTRING
    visual_promptSTRING
    reportSTRING