Nodes/comfyui-character-prompt-builder/Character Prompt Builder - Male Person
ComfyUI Node

Character Prompt Builder - Male Person

Finally, a character builder that knows beards exist

By euan-gwd·Created 8 months ago·Updated 29 days ago· 4
Character Prompt Builder - Male Person
  • settings_in
  • settings
genderMan
age30
nationality_1British
nationality_2
nationality_mix0
body_type
height
body_weight
waist_size
face_shape
eyes_color
eye_shape
nose_shape
nose_size
lip_shape
facial_expression
facial_hair
hair_style
hair_length
hair_color
skin_tone
skin_details
dimples
freckles
moles
skin_imperfections
skin_acne
tanned_skin
eyes_details
iris_details
circular_iris
circular_pupil
tattoo

Most prompt builders are secretly female-only with a "man" checkbox bolted on. Character Prompt Builder - Male Person is the rare one built for guys from the ground up - and its headline feature is 23 facial-hair styles, which tells you exactly who this is for. If you've been writing "man with beard" and getting a clean-shaven 19-year-old, this is the node that fixes it.

It's the male half of the pack's first link in the chain: Female Person's sibling, same architecture, same PM_SETTINGS dict hand-off. You feed it (optionally) a settings dict from a prior node, it stamps the appearance choices you make, and passes settings onward to the Fashion and Poses nodes. Nothing is rendered as text here - the Scene & Generate node at the end of the chain writes the actual sentence.

What sets the male version apart

  • facial_hair - 23 options from "Clean shaven" and "5 o'clock shadow" through "Van Dyke", "Handlebar mustache", and a full long beard. This is the input you'll actually remember this pack for.
  • body_type - 33 options skewed toward the gym: Skinny through Athletic, Muscular, Ripped, Jacked, Buff. Pair with height (4ft10–7ft0), body_weight, and waist_size for a fully specified build.
  • hair_style - 39 men's cuts: Buzz cut, Fade, High fade, Undercut, Pompadour, Quiff… the kind of list you'd get from a barber, not a generic "short/medium/long."
  • facial_expression - the same 213-entry list as the female node, including the fun stuff like "Melancholic."
  • Everything else - face shape, eye and nose shape/size, skin tone and the texture family (freckles, moles, acne, tan), eye and iris detail, tattoos - mirrors the female version.

The required block is slim: gender (fixed to "Man"), age (default 30), nationality pair + mix slider, and the body fields. Leave the rest at "-" for a casual shot and you're done; drill into face and skin for a close-up.

How it works

Same mechanism as the rest of the pack: dropdown choices collected into a settings dict, merged down the chain, and finally emitted as natural-language prose. That prose style is the smart play for current models - LLM-based text encoders respond to full descriptive sentences, and this whole pack writes the way a photographer would talk. The male node also proves the pack isn't just a reskin: separate option lists per gender, not one shared dropdown.

Installing

ComfyUI Manager → search Character Prompt Builder → Install, then restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/euan-gwd/comfyui-character-prompt-builder

Zero pip dependencies, zero model downloads - the pack is pure Python standard library. On first use it may fetch character_prompt.json (the file of all dropdown options) from GitHub; if you're offline it falls back to a smaller default list, so sparse options usually mean "no internet."

Troubleshooting

  • Beard didn't appear - facial hair and expression can fight each other in some checkpoints; if your bearded character renders clean-shaven, try simplifying the expression to "-" and re-running. Some SDXL-lineage models just need the hair in a separate clear phrase.
  • Node won't show - full restart of ComfyUI after install; check the console for a load error.
  • Character renders as a woman - check that the right person node is wired into Scene & Generate, and remember settings_in chains only carry the options you actually set; an unset "Man" node is fine, but wiring the wrong person node into a multi-character scene is an easy mix-up.
CategoryCharacterPromptBuilder

Inputs (34)

NameTypeDefaultDescription
genderCOMBOMan1 options: Man
ageINT3018–90
nationality_1COMBOBritish65 options: -, Afghan, Albanian, American, Argentine, Australian, +59
nationality_2COMBO65 options: -, Afghan, Albanian, American, Argentine, Australian, +59
nationality_mixINT00–100
body_typeCOMBO33 options: -, Skinny, Slim, Lean, Average, Athletic, +27
heightCOMBO28 options: -, 4ft10, 4ft11, 5ft0, 5ft1, 5ft2, +22
body_weightCOMBO24 options: -, 80lbs, 90lbs, 100lbs, 110lbs, 120lbs, +18
waist_sizeCOMBO11 options: -, Tiny, Narrow, Small, Medium, Thick, +5
face_shapeoptCOMBO14 options: -, Oval, Round, Square, Heart-shaped, Long, +8
eyes_coloroptCOMBO17 options: -, Natural Dark Brown (almost black), Natural Medium Brown (warm brown), Natural Light Brown (amber or honey, golden brown), Natural Hazel (brown with green or gold flecks), Natural Grey (light to deep grey), +11
eye_shapeoptCOMBO16 options: -, Almond, Asian monolid, Close-set, Deep-set, Double eyelid, +10
nose_shapeoptCOMBO21 options: -, Straight (Greek), Roman (Aquiline), Button, Snub, Hawk, +15
nose_sizeoptCOMBO16 options: -, Very small (petite, delicate), Small (subtle, less prominent), Medium (average, balanced), Large (broad, prominent), Very large (striking, dominant), +10
lip_shapeoptCOMBO19 options: -, Biting Lips, Bow-shaped Lips, Closed Lips, Cupid's Bow Lips, Full Lips, +13
facial_expressionoptCOMBO213 options: -, Happy, Sad, Angry, Surprised, Fearful, +207
facial_hairoptCOMBO23 options: -, Clean shaven, Stubble, 5 o'clock shadow, Short beard, Full beard, +17
hair_styleoptCOMBO39 options: -, Buzz cut, Crew cut, Fade, High fade, Low fade, +33
hair_lengthoptCOMBO15 options: -, Bald, Buzzed, Very short, Short, Ear length, +9
hair_coloroptCOMBO78 options: -, Black, Brown, Blonde, Red, Auburn, +72
skin_toneoptCOMBO21 options: -, Very fair (porcelain, ivory), Fair (light beige, creamy), Light (peach, light sand), Light-medium (warm beige, honey), Medium (golden, olive, tan), +15
skin_detailsoptCOMBO4 options: -, subtle skin texture, noticeable skin texture, highly detailed skin texture
dimplesoptCOMBO4 options: -, subtle dimples, noticeable dimples, deep dimples
frecklesoptCOMBO4 options: -, a few freckles, noticeable freckles, prominent freckles
molesoptCOMBO4 options: -, a few moles, several moles, many moles
skin_imperfectionsoptCOMBO4 options: -, minor imperfections, natural imperfections, pronounced imperfections
skin_acneoptCOMBO4 options: -, a few blemishes, some acne, pronounced acne
tanned_skinoptCOMBO4 options: -, a hint of a tan, a sun-kissed tan, deeply tanned skin
eyes_detailsoptCOMBO12 options: -, highly detailed, subtle eye detail, naturally expressive, framed by defined eyelashes, bright with catchlights, +6
iris_detailsoptCOMBO13 options: -, intricate iris patterns, subtle iris pattern, natural iris striations, visible radial lines, complex iris texture, +7
circular_irisoptCOMBO6 options: -, perfectly round irises, slightly oval irises, unusually large round irises, small round irises, exaggerated circular irises
circular_pupiloptCOMBO7 options: -, realistic pupils, perfectly round pupils, slightly oval pupils, dilated pupils, constricted pupils, +1
tattoooptCOMBO17 options: -, No tattoos, Small tattoo, Arm tattoo, Leg tattoo, Back tattoo, +11
settings_inoptPM_SETTINGS

Outputs (1)

NameTypeDescription
settingsPM_SETTINGS