Nodes/comfyui-minimax-h3-prompt-enhancer-T8/T8 Character Performance Bible(角色表演圣经)
ComfyUI Node

T8 Character Performance Bible(角色表演圣经)

"Sad character looks sad" won\'t cut it — write an acting contract instead

By T8mars·Created about a month ago·Updated about 21 hours ago· 254
T8 Character Performance Bible(角色表演圣经)
    • character_performance_bible
    • performance_contract_text
    • performance_bible_json
    character_id角色A
    scene_objective
    obstacle_and_stakes
    tactics
    physical_task_and_inertia
    voice_lock
    mask_break_trigger
    gaze_and_listening

    Every H3 or Seedance prompt you've ever hand-written has a version of this line: "sad man looks sad." And the model, predictably, gives you a generic sad face and nothing else. That's the failure this node is built against. T8 Character Performance Bible lives in T8mars's MiniMax H3 / Seedance 2.0 prompt-enhancer pack, and its whole job is to turn vague emotional intent into a small, structured acting contract the LLM has to respect when it writes your video prompt for you.

    The design is the smart part, and it's also the part people get wrong: this node never calls an LLM. No API key, no network, no per-run cost. It's a local compiler. You type in what a character wants, what's blocking them, what they do about it, and it emits a schema-versioned JSON "bible" plus a plain-text instruction that rides along into the H3/Seedance enhancer's prompt-writing request. The contract it produces is deliberately tight - one primary tactic per beat, at most three high-signal observable cue channels per character per beat, and a hard rule that any dialogue you supply is preserved verbatim and nothing new is invented.

    What you actually fill in

    Eight text inputs, but only three are required:

    • character_id - the character's name (default 角色A). If you're using reference media, this doubles as the tag you refer back to.
    • scene_objective - write an action verb, not an emotion label. "Get out of the room" compiles far better than "is scared."
    • obstacle_and_stakes - what's in the way and what it costs to fail.

    The other five are the seasoning: tactics (one per line, max 4, switch only after visible failure), physical_task_and_inertia (the body state that should carry across cuts), voice_lock (applies only while the character actually speaks), mask_break_trigger (what makes the composure crack), and gaze_and_listening (where they look, and what their listening looks like). Leave them empty and it still runs - but you're leaving the interesting half of the job undone.

    The three outputs

    character_performance_bible is a custom socket type, not a STRING. That's the one you want: it plugs into the optional character_performance_bible input on the H3 or Seedance 2.0 enhancer (or into the Stack node if you have more than one character - see that article). performance_contract_text is the human-readable instruction, handy for reading or routing into a text preview. performance_bible_json is the compiled JSON for debugging or saving.

    Installing it

    It's one node in the T8mars pack, so installing the pack installs all of them. In ComfyUI Manager search for "MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8)", or from the terminal:

    cd ComfyUI/custom_nodes
    git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8
    

    Then restart ComfyUI (and Ctrl+F5 your browser after any update). Cloud mode adds zero Python dependencies - it rides on requests/NumPy/Pillow that ComfyUI already has. The heavy option is the local Qwen GGUF mode, which is a separate ~16 GB model download and is best skipped unless you really want no API key at all.

    Where people get burned

    The three required fields are genuinely required - leave character_id, scene_objective, or obstacle_and_stakes empty and the node raises an error. The custom socket won't snap to a plain text node, so don't try to feed this into an enhancer through a STRING connection. And set expectations: this is a compiler, not a critic. It structures your intent and passes it forward; it doesn't judge whether the acting will read on screen, and it can't override the model's own behavior. If the downstream enhancer is set to a pure landscape shot, this contract just won't apply - which is correct behavior, not a bug.

    CategoryT8/Creative Suite

    Inputs (8)

    NameTypeDefaultDescription
    character_idSTRING角色A
    scene_objectiveSTRING
    obstacle_and_stakesSTRING
    tacticsoptSTRING
    physical_task_and_inertiaoptSTRING
    voice_lockoptSTRING
    mask_break_triggeroptSTRING
    gaze_and_listeningoptSTRING

    Outputs (3)

    NameTypeDescription
    character_performance_bibleT8_CHARACTER_PERFORMANCE_BIBLE
    performance_contract_textSTRING
    performance_bible_jsonSTRING