ComfyUI Node

◐ Hairstyles

Hair length, cut, style, and color tags

By regiellis·Created 12 months ago·Updated 4 months ago· 82
◐ Hairstyles
    • PROMPT
    Length and Volume-
    Haircuts-
    Hairstyles-
    Hair Colors-
    Inject Stylestrue
    Format Tagfalse
    Output FormatTags (comma)
    prefix
    suffix

    Hair is one of the places Illustrious XL's Danbooru training actually pays off without any extra work: hit the right combination of tags and the model reproduces a specific cut and color consistently, no LoRA needed, because Danbooru's hair vocabulary is deep and Illustrious was trained hard on it. IllustriousHairstyles is a lookup table over that vocabulary, split into four independent axes so you're not stuck memorizing exact tag strings.

    The four axes

    Length and Volume (10 choices) covers the coarse stuff - very long hair, short hair, fluffy hair, big hair. Haircuts (11 choices) is named cuts like short bob cut, medium hime cut, long wavy long hair. Hairstyles (42 choices) is the bigger category - braids, twintails, updos, and similar styling rather than the cut itself. Hair Colors (82 choices) covers everything from plain blonde hair down to gradient blue hair and multicolored black hair variants. Every axis defaults to -, meaning skip it, so you can set just one (say, only a color) or stack all four.

    Nothing here validates that your combination makes sense - pick a cut and a hairstyle and a length descriptor and the node will happily stitch all three into the output even if they conflict. That's on you to manage; fewer, more deliberate picks tend to read more cleanly in the final prompt than maxing out every dropdown.

    Inject Styles (default on) folds the selection into the node's chained prefix content, matching the pattern the rest of this pack's generator nodes use. Format Tag wraps the result with \( and \), which matters for any tag containing literal parentheses. Output Format picks how the result reads: Tags (comma), Tags (space), or Phrase - the first two are straightforward tag-list formatting, the third reformats your picks into something closer to a natural-language description, which is worth trying since Illustrious tolerates plain sentences better than most SDXL-era models, even though tags remain the primary interface.

    prefix / suffix and the output

    Optional prefix and suffix strings let you splice existing prompt text around this node's output - the standard chaining mechanism across the pack. The single output is PROMPT, a plain string ready for your CLIP text encoder or the next node in the chain.

    Installing it

    ComfyUI Manager: search "EasyIllustrious," install, restart - the path the author recommends. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/regiellis/ComfyUI-EasyIllustrious, then pip install -r ComfyUI-EasyIllustrious/requirements.txt inside your ComfyUI environment, then restart.

    Where results go sideways

    Most complaints about hair not looking right trace back to over-stacking, not a broken tag. With four independent 10–82-option dropdowns all defaulting to "on" the moment you touch them, it's easy to end up with long hair, short bob cut, tails twintails, gradient blue hair in one prompt - a cut, a length, and a style that don't actually describe the same haircut. If your renders look muddled or the model seems to be "averaging" two different hairstyles, that's usually exactly what happened: trim back to the two or three tags that actually matter for the look you want, put them earlier in the overall prompt (Illustrious weights earlier tokens more strongly), and let the rest go.

    CategoryEasy Illustrious / Generators

    Inputs (9)

    NameTypeDefaultDescription
    Length and VolumeCOMBO-Select a Length and Volume
    HaircutsCOMBO-Select a haircut
    HairstylesCOMBO-Select a hairstyle
    Hair ColorsCOMBO-Select a Hair Color
    Inject StylesBOOLEANtrueInject into prefix content
    Format TagBOOLEANfalseWill format the tag using \( and \)
    Output FormatCOMBOTags (comma)How to format the hairstyle: comma-separated tags, space-separated tags, or a short phrase.
    prefixoptSTRINGPrefix to the prompt with a custom string.
    suffixoptSTRINGSuffix to the prompt with a custom string.

    Outputs (1)

    NameTypeDescription
    PROMPTSTRING