Nodes/comfyui-game-sd-character-pack/Game SD Emotion Prompt
ComfyUI Node

Game SD Emotion Prompt

One dropdown for a whole character's mood

By hyyyein·Created 3 months ago·Updated 3 months ago· 0
Game SD Emotion Prompt
    • positive
    • negative
    • filename_prefix
    • emotion_tag
    character_namecharacter
    character_core1girl, chibi, long hair, simple outfit
    emotiondefault
    emotion_strength1.00
    extra_positive
    extra_negative
    filename_prefixgame_sd

    The whole job here is "same character, different mood," and Game SD Emotion Prompt is the node that stops you from typing the same prompt skeleton a dozen times. Pick an emotion from a dropdown and it hands you the assembled positive prompt, the negative prompt, and a ready-to-use filename prefix. The name suggests some kind of model or API. It's a lie - there's no model, no key, no network call. It just builds strings. That's the entire point.

    Why you'd reach for it

    Character consistency is the most complained-about problem in this whole hobby - the model has no memory of the character it drew last time, and every run re-rolls the dice. The pack's strategy, straight from the README, is to lock everything that defines the character and vary only the emotion. You keep your character_core (hair, eyes, outfit - the appearance description that must not change) fixed, and you flip the emotion dropdown. It also bakes in the quality-tag boilerplate - high quality, best quality, chibi, game character sprite, solo, full body, centered - so every image in the set shares the same framing vocabulary instead of drifting.

    How it works

    The node joins a few prompt fragments into one positive and one negative string:

    • Positive = base quality/sprite tags + your character_core + the emotion preset's positive + anything in extra_positive.
    • Negative = a base block (bad hands, bad anatomy, watermark, etc.) + the preset's negative + extra_negative.

    There are eleven presets baked in: default, smile, laugh, sad, crying, angry, embarrassed, surprised, pouting, worried, sleepy. The emotion_strength slider (0.25–1.75, default 1.0) is the knob you actually turn - when it's not 1.0, the emotion phrase gets wrapped in standard ComfyUI weight syntax, so sad expression becomes (sad expression:1.25). Push it up for a stronger mood, drop it for subtle.

    Inputs worth knowing:

    • emotion - the dropdown. This is your main control.
    • character_core - the appearance description. Don't change it per emotion. That's the consistency rule that makes the whole approach work.
    • emotion_strength - the weighting, the one slider you'll touch run to run.
    • extra_positive / extra_negative - append your own tags (a LoRA trigger word, a background tweak) without editing the presets.
    • character_name and filename_prefix - only affect the filename output.

    Outputs: positive and negative wire straight into a text encoder or an Efficient Loader's positive/negative slots. filename_prefix is a slugified {prefix}_{character_name}_{emotion} string (spaces become underscores, non-alphanumerics stripped) ready for a Save Image node. emotion_tag just echoes the emotion name, handy for metadata or file organization.

    Installing it

    Same as the rest of the pack - no dependencies beyond what ComfyUI already has, no model downloads, no requirements.txt to fight with.

    Via ComfyUI Manager: search "comfyui-game-sd-character-pack", install, restart.

    Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/hyyyein/comfyui-game-sd-character-pack
    # restart ComfyUI
    

    You'll find all three nodes under "Game SD Character".

    Common issues

    • "I can't override the baked-in negative." The base negative includes nsfw, nude, bare chest, and the base positive includes simple white background. These are hardcoded in nodes.py. If you're doing a clean-SFW sprite workflow that's probably fine, but if you hate a specific baked-in tag, your options are extra_positive/extra_negative (additive only - later tags don't remove earlier ones) or editing BASE_POSITIVE, BASE_NEGATIVE, and EMOTION_PRESETS in nodes.py directly. The README explicitly points you there for adding emotions.
    • My filenames come out weird. character_name and filename_prefix are slugified - Game Character becomes game_character. That's the feature, not a bug, if your asset pipeline hates spaces.
    • Emotion looks the same across presets. Weak models or weak strength settings blur the difference. Raise emotion_strength, and remember the README's advice: freeze checkpoint, LoRA, sampler, CFG, and resolution, and let only the emotion change. If poses need to stay identical too, you're into ControlNet/OpenPose territory - separate tools.

    One honest note: this is a brand-new pack with basically zero community footprint yet - you may well be the first person in your corner of the internet to run it. What's here is simple, readable Python, and simple usually means it works. Give it a spin.

    CategoryGame SD Character

    Inputs (7)

    NameTypeDefaultDescription
    character_nameSTRINGcharacter
    character_coreSTRING1girl, chibi, long hair, simple outfit
    emotionCOMBOdefault11 options: default, smile, laugh, sad, crying, angry, +5
    emotion_strengthFLOAT1.000.25–1.75
    extra_positiveoptSTRING
    extra_negativeoptSTRING
    filename_prefixoptSTRINGgame_sd

    Outputs (4)

    NameTypeDescription
    positiveSTRING
    negativeSTRING
    filename_prefixSTRING
    emotion_tagSTRING