Portrait Master: Face Generator
The quick-and-dirty Portrait Master node for fast frontal headshots
- text_out
Face Generator is the pack's answer to "I just want a clean headshot, fast, without forty sliders." It's the newest node in comfyui-portrait-master (added in v3.5.0) and it's deliberately boring: fourteen fields, no weights, no lighting menus, no style lists. It trades the pack's usual "everything but the kitchen sink" approach for a single purpose - consistent, frontal, neutral faces.
That makes it the right tool for a specific set of jobs: batch-generating portrait sets, building reference faces to feed into an inpainting or face-swap pipeline, or testing a checkpoint's face quality without wading through a bloated prompt. It's also the node you reach for on a slow machine - the community has complained for years that the full Portrait Master example workflows are heavy, and this node exists to be the lightweight path.
How it works
Where every other PM node wraps its output in weighted tags like (thing:1.05), Face Generator doesn't bother. When active is on it hardcodes a fixed preamble and appends only the parts you set:
front view portrait, symmetrical face, neutral expression, white background, soft diffused lighting
Then it appends your choices in plain text - 35-years-old italian woman, wavy chestnut hair, hazel eyes, oval face symmetry - joined with commas and returned as text_out. No weights, no parentheses, no 1.15 gymnastics. The output is a clean, sentence-ish tag list that any SDXL-lineage model reads without complaint.
That preamble is the whole trick. By pinning "front view, symmetrical, neutral, white background, soft diffused lighting" the node fights the two things that make batch portraits inconsistent: random framing and random expression. You lose creative freedom and gain reproducibility, which is exactly the trade you want when you're generating twenty headshots and comparing them.
The fields are the essentials only: gender, age, nationality, body_type, eyes_color, hair_style, hair_color, hair_length, beard, beard_color, eyebrows_color, eyebrows_shape, nose_shape, and face_symmetry. Same - to skip, random 🎲 to roll. And same shared pack mechanics - the seed input is declared but doesn't actually seed the random picks in the shipped code, so set fields by hand if you need to reproduce an exact face.
Installing it
It's part of comfyui-portrait-master, so one install gets you all seven nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/florestefano1975/comfyui-portrait-master
Restart ComfyUI, or install via ComfyUI Manager (search "Portrait Master", author florestefano1975). No dependencies, no model files.
Common issues
- Every face looks the same. That's kind of the point - the node is biased toward identical frontal headshots. If you want variation, feed a
random 🎲intogender/hair_style/age, or use Base Character instead. - It doesn't look like a "photo." There's no
photorealism_improvementtoggle here and no skin-detail pass - this node describes the face, not the skin. Chain it into Skin Details, or addraw photo, (realistic:1.5)to your prompt. - Old workflow values. Same restructure gotcha as the rest of the pack - a save from another version can load dropdowns with stale entries. Re-set them.
- Your
text_incomes back lowercase. The node lowercases its output; don't rely on capitalization.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| gender | COMBO | - | 4 options: -, random 🎲, Man, Woman |
| age | COMBO | - | 39 options: -, random 🎲, 18, 20, 22, 24, +33 |
| nationality | COMBO | - | 194 options: -, random 🎲, Afghan, Albanian, Algerian, Andorran, +188 |
| body_type | COMBO | - | 36 options: -, random 🎲, Beefy, Buff, Buxom, Chubby, +30 |
| eyes_color | COMBO | - | 12 options: -, random 🎲, Albino, Amber, Blue, Brown, +6 |
| hair_style | COMBO | - | 119 options: -, random 🎲, A-line bob, Afro, Asymmetrical, Balayage, +113 |
| hair_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| hair_length | COMBO | - | 5 options: -, random 🎲, Long, Medium, Short |
| beard | COMBO | - | 22 options: -, random 🎲, Anchor Beard, Balbo Beard, Chevron Mustache, Chinstrap Beard, +16 |
| beard_color | COMBO | - | 23 options: -, random 🎲, Auburn, Black, Blonde, Burgundy, +17 |
| eyebrows_color | COMBO | - | 28 options: -, random 🎲, auburn, black, blonde, brown, +22 |
| eyebrows_shape | COMBO | - | 23 options: -, random 🎲, angular, angular thick, angular thin, arched, +17 |
| nose_shape | COMBO | - | 27 options: -, random 🎲, angular, aquiline, arched, broad, +21 |
| face_symmetry | COMBO | - | 10 options: -, random 🎲, asymmetrical, balanced, disharmonious, disproportional, +4 |
| 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 | — |