Nodes/Comfyui-EasyIllustrious/◔ Emotions/Expressions
ComfyUI Node

◔ Emotions/Expressions

Expression and kaomoji tag picker

By regiellis·Created 12 months ago·Updated 4 months ago· 82
◔ Emotions/Expressions
    • PROMPT
    Emotion Group-
    Emotion/Expression-
    Weight1.00
    Wrap With Parenthesestrue
    Add Chain Insert Pointfalse
    prefix
    suffix

    Writing "smiling with her eyes closed and slightly blushing" as a prompt and hoping Illustrious lands on the exact face you want is a losing game - the model was trained on Danbooru's tag vocabulary, and a chunk of that vocabulary for expressions isn't words at all, it's literal emoticon-style tokens: :3, 0w0, +_+, ._.. IllustriousEmotions is a lookup table for exactly that vocabulary, so you can pick the tag instead of guessing whether your sentence happens to match it.

    How it's organized

    Emotion Group buckets the full list into seven categories - Emotions, Sexual, Smile, Smug, Surprised / Scared / Sad, and Emotes - mostly there to help you browse rather than filtering anything mechanically. Emotion/Expression is the actual pick, 146 choices deep, spanning both kaomoji-style tokens and more conventional word tags. Whichever one you pick becomes the output.

    Weight (0.1–2, default 1) applies CLIP's standard attention-weighting syntax, and Wrap With Parentheses (default on) is what decides whether that weight actually gets written into the output as (tag:weight) or left bare. Worth knowing the practical range here: 0.5–1.5 is where this syntax stays useful on SDXL-family models before it starts producing visible artifacts, so cranking Weight to 2 on a whim is more likely to break the pose than intensify the emotion.

    Add Chain Insert Point drops a placeholder token ([EN122112_CHAIN]) into the output instead of the emotion tag itself, so the next node in a chained prompt setup knows exactly where to inject its own content. This is the pack's house mechanism for composing multiple selector nodes (Emotions, Hairstyles, Clothing, and so on) into one prompt without a dedicated string-combiner node - you'll see the same pattern across most of the generator nodes in this suite. prefix and suffix (optional strings) round out the usual chain-aware plumbing.

    Output is a single PROMPT string, ready to feed into your CLIP text encoder or the next node in the chain.

    Installing it

    Via ComfyUI Manager: search "EasyIllustrious," click install, restart. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/regiellis/ComfyUI-EasyIllustrious, then pip install -r ComfyUI-EasyIllustrious/requirements.txt from inside your ComfyUI Python environment, then restart ComfyUI.

    What to expect when it doesn't quite land

    Expression tags are genuinely uneven in how strongly a checkpoint has learned them - some of the 146 choices here are extremely well-represented on Danbooru and others are niche enough that the model barely reacts to them. If a specific emote isn't showing up, that's more likely coverage than a broken node: try a more common one from the same Emotion Group first to sanity-check that the pipeline is working, then come back to the rarer pick. And because this node only outputs one expression at a time, stacking multiple Emotions nodes into the same prompt (hoping to blend two expressions) tends to just confuse the model rather than combine them cleanly - pick the one that best matches the shot instead of layering.

    CategoryEasy Illustrious / Generators

    Inputs (7)

    NameTypeDefaultDescription
    Emotion GroupCOMBO-Optional grouping for reference.
    Emotion/ExpressionCOMBO-Select an expression/emote to insert.
    WeightFLOAT1.000.1–2
    Wrap With ParenthesesBOOLEANtrueOutput as (tag:weight).
    Add Chain Insert PointBOOLEANfalseInsert '[EN122112_CHAIN]' so next node can inject its content.
    prefixoptSTRINGPrefix text (chain-aware)
    suffixoptSTRINGSuffix text (after content)

    Outputs (1)

    NameTypeDescription
    PROMPTSTRING