ComfyUI Node

Character Makeup

Dropdown makeup looks that actually survive the prompt

By Fictiverse·Created 3 years ago·Updated 24 days ago· 27
Character Makeup
  • prefix
  • makeup_text
makeup_style
foundation
blush
eyeshadow
eyeliner
mascara
lipstick

Character Makeup builds a makeup description from dropdowns - style, foundation, blush, eyeshadow, eyeliner, mascara, lipstick - and turns it into a prompt sentence like "makeup with natural, winged eyeliner and red lipstick." It's the sibling of the pack's Character Appearance and Clothing nodes, and it fills the same role: giving a character a consistent face-level detail without you hand-typing it differently every run.

Makeup is one of those prompt areas where phrasing actually moves the needle. "Glam makeup" alone is vague; "makeup with dark foundation, smoky eyeshadow, cat-eye eyeliner and dark lipstick" tells a model something concrete. And for a character you're generating repeatedly - a recurring protagonist, a portrait series, a character sheet - you want that exact sentence reproduced every time. That's what the dropdown approach buys you.

How it works

Each dropdown contributes a phrase, and the node stitches them together with commas and a final "and". A few specifics worth knowing:

  • makeup_style (Natural / Glam / Theatrical) acts as a label, not a modifier - it just gets listed first as a bare word.
  • foundation adds "light/medium/dark foundation" (there's no color choice; it's a shade-depth pick).
  • blush, eyeshadow, eyeliner, and lipstick each add their own adjective + noun phrase.
  • mascara is the odd one out: its choices are None / True / False. True adds "mascara", False adds "no mascara" - it's the explicit-absence option, same idea as the "No" choices in the clothing node.
  • If every dropdown is None, the output is just the prefix string (usually empty) - the node contributes nothing rather than emitting a nonsense "makeup with." sentence.

Inputs and outputs

The dropdowns:

  • makeup_style - None / Natural / Glam / Theatrical
  • foundation - None / Light / Medium / Dark
  • blush - None / Pink / Peach / Bronze
  • eyeshadow - None / Neutral / Smoky / Colorful
  • eyeliner - None / Winged / Smudged / Cat-eye
  • mascara - None / True / False
  • lipstick - None / Red / Pink / Nude / Dark

Plus the optional prefix wildcard.

Output:

  • makeup_text (STRING) - the assembled sentence, prefix included.

Wire it into your prompt build alongside the other Character nodes, and the whole face - appearance, expression, makeup - comes from a panel of dropdowns.

Installing it

Ships in ComfyUI Fictiverse Nodes. ComfyUI Manager → search "ComfyUI Fictiverse Nodes" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Fictiverse/ComfyUI_Fictiverse

No dependencies, no models. Apache 2.0.

Common issues

Pack gotcha first: ModuleNotFoundError: No module named 'custom_nodes.ComfyUI_Fictiverse' at startup means the folder isn't named exactly ComfyUI_Fictiverse; rename and restart.

For this node, remember that makeup prompts are recommendations, not guarantees - small faces at distance will ignore most of this, so it's mainly useful for close-ups and portraits where the model has pixels to work with. And the "no mascara" phrasing is a genuine negative instruction; if you use it, pair it with a matching negative prompt because some models are sticky about "no X" phrasing in positives. If your character's makeup is a core identity trait and the model keeps dropping it, put the makeup phrase earlier in the prompt - first position beats sixth every time.

CategoryFictiverse/Character

Inputs (8)

NameTypeDefaultDescription
makeup_styleCOMBO4 options: None, Natural, Glam, Theatrical
foundationCOMBO4 options: None, Light, Medium, Dark
blushCOMBO4 options: None, Pink, Peach, Bronze
eyeshadowCOMBO4 options: None, Neutral, Smoky, Colorful
eyelinerCOMBO4 options: None, Winged, Smudged, Cat-eye
mascaraCOMBO3 options: None, True, False
lipstickCOMBO5 options: None, Red, Pink, Nude, Dark
prefixopt*

Outputs (1)

NameTypeDescription
makeup_textSTRING