ComfyUI Node

Face Styler

A dropdown of facial expressions

By TripleHeadedMonkey·Created 3 years ago·Updated about a year ago· 66
Face Styler
    • text_positive
    • text_negative
    text_positive
    text_negative
    face
    log_prompttrue

    FaceStyler is the expression menu - 50 entries covering how your subject's face reads: happy, angry, disgust, smug, flustered, confused, smile, frown, plus the Danbooru-style emoticon tags like :p, :o, :d. If your characters keep coming out with the same blank neutral stare, this is a quick way to inject a mood. It's a small, practical node, and expression is one of those details that makes a portrait feel alive versus feeling like a mannequin.

    Worth noting those emoticon entries (:p, :o, :d) are literal booru face tags - they mean specific expressions to anime SDXL models, which is a hint about where this menu works best.

    How it works

    MileHighStyler is a fork of SDXL Prompt Styler. Each expression is a JSON template with a {prompt} slot; the node drops your text_positive in and wraps the expression phrase at a strong weight (~2.0). Since these are largely Danbooru face tags, they land cleanest on the models trained on that vocabulary - the SDXL anime family (Illustrious, NoobAI, Pony). Output is a rewritten prompt string into your CLIP Text Encode; nothing touches the model.

    The inputs and outputs that matter

    • face - the 50-entry expression dropdown. none is the off switch.
    • text_positive - your subject; the expression attaches to it.
    • text_negative - optional negative text.

    log_prompt prints the finished prompt to the console. Outputs are text_positive and text_negative strings, into a CLIP Text Encode.

    Installing it

    ComfyUI Manager: search ComfyUI_MileHighStyler, install, restart. Or:

    cd ComfyUI/custom_nodes && git clone https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler
    

    then restart. No models, no requirements.txt, no dependencies - Python and JSON. Nodes appear under ali1234/stylers.

    Where people get burned

    • Wrong model family. The emoticon tags (:p, :o) are booru vocabulary. On an anime SDXL checkpoint they produce exactly the right face; on a photoreal base or a 2026 LLM-encoded model they may do little or read literally. Match the menu to the model.
    • Expression fights a small face. In a wide shot the face is a handful of pixels and the model can't render a subtle "smug" into it. Expression cues pay off in portraits and close-ups; in a full-body scene they mostly get lost.
    • Model era. The 2.0 weighting is SDXL/SD 1.5 syntax and gets silently discarded on 2026 LLM-encoded models (Flux 2, Z-Image, Qwen). Plain words like "smiling" still work there as instructions; the emoticon tags are the part that won't travel.
    • One expression at a time. Like the rest of the pack, it's a single dropdown. It nudges a mood; it doesn't do fine emotional direction.
    Categoryali1234/stylers

    Inputs (4)

    NameTypeDefaultDescription
    text_positiveSTRING
    text_negativeSTRING
    faceCOMBO50 options: none, happy, disgust, smug, flustered, confused, +44
    log_promptBOOLEANtrue

    Outputs (2)

    NameTypeDescription
    text_positiveSTRING
    text_negativeSTRING