Nodes/ComfyUI_MileHighStyler/Face Styler (Advanced)
ComfyUI Node

Face Styler (Advanced)

Expressions and emoticon tags

By TripleHeadedMonkey·Created 3 years ago·Updated about a year ago· 66
Face Styler (Advanced)
    • text_positive_g
    • text_positive_l
    • text_positive
    • text_negative_g
    • text_negative_l
    • text_negative
    text_positive_g
    text_positive_l
    text_negative
    face
    negative_prompt_toBoth
    log_prompttrue

    FaceStylerAdvanced sets a facial expression from a menu of ~50 - happy, smug, flustered, angry, confused, plus a handful of Danbooru emoticon tags like :p, :o, :d. Getting the emotion you want on a generated face is one of those small things that's weirdly fiddly to prompt by hand, so a curated expression dropdown is a genuinely reasonable idea. This is the SDXL dual-CLIP variant of that menu.

    Worth knowing which world these tags come from: the emoticon-style entries (:p, :d) are pure Danbooru vocabulary, so this node is at its best on booru-trained anime models. The plain-English ones (happy, angry) are broad enough to land on most checkpoints.

    How the "Advanced" plumbing works

    SDXL runs two text encoders, CLIP-G and CLIP-L. This node feeds them separately - text_positive_g to G, text_positive_l to L - and applies the chosen expression to both, wrapped at the pack's strong default weight (~2.0). MileHighStyler is a fork of the classic SDXL Prompt Styler. negative_prompt_to (Both / G only / L only) routes the entry's built-in negative; Both by default.

    The inputs and outputs that matter

    • face - the ~50-entry expression dropdown; none is off.
    • text_positive_g / text_positive_l - your subject per encoder; same text in both if unsure.
    • text_negative - your negative, with the style's negative routed by negative_prompt_to.

    log_prompt prints the assembled prompt to the console. Six outputs: text_positive_g, text_positive_l, merged text_positive, and text_negative_g / text_negative_l / merged text_negative. Feed _g / _l into a CLIPTextEncodeSDXL, or just take the merged text_positive / text_negative into a normal 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

    • Emoticon tags need a booru model. :p and :d are Danbooru conventions - they land on Pony/Illustrious/NoobAI/WAI and SD1.5 anime, and do little on photoreal or base SDXL. The word-based expressions are safer across the board.
    • Expression fights a small face. If the face is tiny in frame, no tag will render a clear expression - the model has too few pixels. Get the face bigger (or fix it in a detailer pass) before blaming the tag.
    • Advanced when basic would do. The G/L split only matters with a CLIPTextEncodeSDXL and different per-encoder text. Otherwise use the merged outputs.
    • Model era. Dual-CLIP is SDXL-only; meaningless on the 2026 LLM-encoded models (Flux 2, Z-Image, Qwen), where you'd just write "a smug expression" in plain words.
    Categoryali1234/stylers

    Inputs (6)

    NameTypeDefaultDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_negativeSTRING
    faceCOMBO50 options: none, happy, disgust, smug, flustered, confused, +44
    negative_prompt_toCOMBOBoth3 options: Both, G only, L only
    log_promptBOOLEANtrue

    Outputs (6)

    NameTypeDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_positiveSTRING
    text_negative_gSTRING
    text_negative_lSTRING
    text_negativeSTRING