Nodes/AutoExpress/AutoExpress Expression Prompt
ComfyUI Node

AutoExpress Expression Prompt

One emotion, one image, and no intensity slider to save you

By deepratna-awale·Created 3 years ago·Updated about 2 hours ago· 27
AutoExpress Expression Prompt
    • prompt
    • name
    ◄prompt_styleauto►
    ◄expressionjoy►
    ◄base_prompt►
    ◄ckpt_name▾►

    What it's for

    The AutoExpress family has two prompt nodes and the names are one letter apart, which is a small act of cruelty. Expression Prompts (plural) spits out a list and drives a whole batch of 28 faces. Expression Prompt (this one) gives you a single expression, as a string, so you can do exactly one thing deliberately.

    That's less useless than it sounds. Debugging is the main use: run one expression, one FaceDetailer pass, look at the mouth, decide whether the expression LoRA is helping or whether your denoise is too low. Doing that with a 28-image batch is a 90-second wait per iteration; doing it with one image is a few seconds. Some people also just want an angry variant of a portrait and nothing else, in which case a batch node is the wrong tool.

    The second use is writing a prompt you control. If you've got your own loop, your own scheduling, or an expression picker in front of a KSampler, this gives you the pack's carefully-tuned prompt text without buying the batch machinery around it.

    The mechanism

    It resolves a prompt style, looks up that family's JSON file in autoexpress_core/resources/expressions/, and returns quality_tags + your base prompt + the expression prompt, joined with commas and stripped of duplicate quality tags.

    What you get back is family-specific, and that's the whole point of the pack. joy in the Danbooru set is happy, laughing, open mouth, :d, closed eyes, blush. The same emotion in Pony's set is basically the same tags, because Pony speaks Danbooru. In the SDXL/CLIP set it's (joyful expression:1.4), (big laughing smile:1.2), eyes crinkled, rosy cheeks - emphasis weighting, because a CLIP-only prompt needs to be shouted at. In the natural-language set it's a full sentence, The person is overjoyed, laughing with a wide open smile, eyes crinkled shut and cheeks rosy. - which is what Flux, SD3 and Qwen-Image actually want.

    Style resolution works the same way as the rest of the pack: auto means "read the checkpoint name and guess", matching Pony first, then Illustrious/NoobAI, then the natural-language family (flux, sd3, qwen, chroma, hidream, lumina…), then furry and anime names.

    Inputs and outputs

    Three inputs, one of which is optional:

    • prompt_style - auto, or pin it. The seven choices are auto, danbooru, e621, illustrious, natural_language, pony, sdxl_base.
    • expression - a dropdown of all 28, defaulting to joy.
    • base_prompt - your character description. It gets prepended, so write it the way you'd write the front half of a normal prompt.
    • ckpt_name (optional) - only used when prompt_style is auto, so auto has a name to look at.

    Two outputs: prompt (a single STRING, into a CLIP Text Encode or a FaceDetailer's positive) and name (the expression, for filenames or logging).

    The trap worth knowing

    There is no intensity input on this node. The plural version has one; this one doesn't. Every other expression-producing node in the pack lets you dial the strength from 0 to 1, and this one always hands you the prompt exactly as written in the family file - (angry expression:1.4) and all.

    On anime that's fine, since full strength is where those sets were tuned. On SDXL-style realistic models it's noticeably hotter than the calibrated 0.5 default, and if you were hoping to knock the expression down to 0.3 you'll be editing the prompt text by hand. If you want the intensity curve - prompt emphasis scaling, LoRA weight scaling, all of it - use AutoExpress Expression Prompts even if you only ask it for one expression. expressions: joy works there, and you get the slider.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/deepratna-awale/AutoExpress
    

    Restart, or install it from ComfyUI Manager by searching AutoExpress (comfy node install autoexpress works with comfy-cli). Nothing exotic in the dependency list - the nodes need Pillow and requests, both already there.

    If you're going to wire prompt into a FaceDetailer, you need Impact Pack installed and a face detector, which now lives in Impact Subpack (UltralyticsDetectorProvider moved out of the base pack in v8.0). You'll also want a checkpoint the expression actually fits: face_yolov8m.pt is what the pack's own workflows use, and detector choice matters more than you'd think for small faces.

    When it's the right node

    Reach for it when you're testing, when you're scripting something around AutoExpress, or when you genuinely want one expression at full written strength. Reach for its plural sibling for everything else - a batch node that takes a list of one is still a batch node, and the list is what makes the 28-expressions-from-one-image pitch work at all. This one is the lab instrument; that one is the production line.

    CategoryAutoExpress

    Inputs (4)

    NameTypeDefaultDescription
    prompt_styleCOMBOautoModel family the prompts are written for. 'auto' picks it from ckpt_name.
    expressionCOMBOjoy28 options: admiration, amusement, anger, annoyance, approval, caring, +22
    base_promptSTRING—
    ckpt_nameoptCOMBO1 options:

    Outputs (2)

    NameTypeDescription
    promptSTRING—
    nameSTRING—