Portrait Master: Make-up
The Portrait Master node that does eyeshadow, blush, and lipstick by toggle
- text_out
"Portrait Master: Make-up" is the smallest specialized node in the pack, and it does exactly one job: dress the face. It takes the makeup out of your Base Character prompt and gives it its own panel - a style, a general color scheme, and six individual elements (eyeshadow, eyeliner, mascara, blush, lipstick, lip gloss) you can flip on or off.
It's a niche tool, honestly. If you're generating an everyday portrait you'll leave it at - and never notice it's gone. But the moment you want a specific look - a cut-crease eye, a red lip, festival makeup - this node is the cleanest way to say it without typing a prose paragraph, and it chains into the same workflow as the other PM nodes (text_out → next node's text_in → CLIPTextEncode). The style list alone has 22 entries from "Anime Makeup" to "Avant-garde," which is more than you'll ever hand-type.
How it works
Standard pack mechanism - dropdowns and toggles become weighted tag text, lowercased, joined into one text_out STRING. makeup_style emits (style:1.05), and makeup_color emits (color make-up color:1.05) as a general palette anchor. Each element toggle, when on, appends its own (something:1.05) token.
Here's the honest gotcha, straight from the source: the per-element color dropdowns don't actually drive the output. eyeshadow_color, eyeliner_color, and the rest are defined in the UI and read into the function, but the shipped code ignores them - flipping the eyeshadow toggle just picks a random color from the eyeshadow palette and emits (that color eyeshadow:1.05). So if you want a specific shade, don't fight the dropdown: put it in text_in, use makeup_color, or just reroll until you land on something you like. This may be a bug, but it's the current behavior.
The inputs that matter
makeup_style- the headline control. A single pick like "Cut Crease Makeup" or "Boho Makeup" carries most of the look.makeup_color- 61 options, sets the overall palette the model leans toward.lipstick+ the other five toggles - flip them on to force the element into the prompt. On = it's there (at a random color from that palette); off = it's not.
Everything else is preset plumbing: active turns the whole node off, and load_preset / save_preset_as / save_preset let you store looks as JSON files under presets/Makeup/ - genuinely handy for keeping a signature "red carpet" style across projects.
Installing it
Part of comfyui-portrait-master - one install covers all seven nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/florestefano1975/comfyui-portrait-master
Restart ComfyUI, or search "Portrait Master" (florestefano1975) in ComfyUI Manager. No dependencies or model downloads.
Common issues
- The color you picked isn't showing up. As above - the element color dropdowns are decorative in the current code; the toggle picks randomly from that palette. Work around it via
text_inormakeup_color. - Makeup renders as smeared or clownish. Ease the weight environment - makeup tokens at
:1.05are gentle, but if Base Character's face-detail sliders are cranked, the elements compete. Lower them, or put a little "natural makeup" in the negative prompt. - Stale values after loading an old workflow. The pack-wide restructure issue - re-set the dropdowns.
text_ingets lowercased, same as every node in this pack.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| makeup_style | COMBO | - | 22 options: -, random 🎲, Anime Makeup, Artistic Makeup, Avant-garde Makeup, Bohemian Makeup, +16 |
| makeup_color | COMBO | - | 61 options: -, random 🎲, Amber, Auburn, Black, Blonde, +55 |
| eyeshadow | BOOLEAN | false | — |
| eyeshadow_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| eyeliner | BOOLEAN | false | — |
| eyeliner_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| mascara | BOOLEAN | false | — |
| mascara_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| blush | BOOLEAN | false | — |
| blush_color | COMBO | - | 53 options: -, random 🎲, beige, berry, bold, bone, +47 |
| lipstick | BOOLEAN | false | — |
| lipstick_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| lip_gloss | BOOLEAN | false | — |
| lip_gloss_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| active | BOOLEAN | true | — |
| load_preset | COMBO | 1 options: -- disabled -- | |
| save_preset_as | STRING | — | |
| save_preset | BOOLEAN | false | — |
| text_inopt | STRING | — | |
| seedopt | INT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text_out | STRING | — |