EBU PromptHelper Character Describer Male
Roll a male character's face (and beard) without typing a word
- face_description
- hair_style
- hair_color
- facial_hair
- facial_expression
The male character describer is the sibling of the female one in the EBU PromptHelper pack, and the thing that makes it worth owning on its own is facial_hair. It generates a full male facial description - eyes, nose, mouth, brow, chin, skin and more - plus a hairstyle, a hair color, a facial-hair style, and an expression, all randomly picked from weighted lists. Same honest caveat as the female version: the author calls it "extremely imperfect and limited." Use it as a rapid character generator and you'll be happy; expect consistent OCs from it and you'll be disappointed.
How it works
Identical machinery to the female describer, so if you've seen one you've seen the other. Every facial feature lives in its own file (eyes_male.py, nose_male.py, …) as a list of (description, weight) tuples, and the node uses random.choices() seeded at seed + N per feature to pull one option. Weighted again: common features are more likely, so you get plausible variety rather than an all-out random face. The one structural difference is the combined cheeks & cheekbones toggle - the male describer has a single option list for both, so you can ask for either just "Cheekbones:" or a combined "Cheeks & Cheekbones:" line.
The inputs that matter
- seed - 0 means non-deterministic (new face each run); set a fixed value to reproduce a face.
- 12
*_enabledtoggles - eyes, nose, mouth, face shape, brow, ears, cheekbones, chin, skin default on; neck and accessories default off.cheeks_and_cheekbones_enabledis also off by default, and note it's a choice, not an extra: if it's on it replaces the plain cheekbones line rather than adding one.
Outputs are face_description (labeled lines like Eyes: ... / Skin: ...), hair_style, hair_color, facial_hair, and facial_expression. That's one more output than the female node, all because of the beard - grab it separately if you want "five o'clock shadow" in the prompt but not the rest of the description.
Where it fits
The same workflow shape as the female node: feed face_description plus the hair/beard/expression outputs into your positive prompt, batch with different seeds, and get a cast of characters in one queue. It's also the better half of the pair for anything grizzled - the female version explicitly skews young, while the male option lists include facial hair and older-feeling descriptors. For extra mileage, run several seeds, pick the face you like, and fix that seed while you tune everything else.
Install
Ships in EBU PromptHelper. ComfyUI Manager: search "EBU PromptHelper". Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/burnsbert/ComfyUI-EBU-PromptHelper
Restart ComfyUI afterward. No model downloads, and the requirements file is empty beyond the Python standard library - this whole pack installs in seconds, which is the nice part.
Troubleshooting
Same two beginner traps as its sibling: a seed of 0 means every run rolls a new face, so fix the seed when a face keeps drifting mid-workflow. And the toggle trap - each enabled category is exactly one line of face_description, so a "short" description usually means you switched something off, not that it broke. Beyond that there's nothing to debug: no models, no API keys, no state, so the failure surface is about zero.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| eyes_enabled | BOOLEAN | true | — |
| nose_enabled | BOOLEAN | true | — |
| mouth_enabled | BOOLEAN | true | — |
| face_shape_enabled | BOOLEAN | true | — |
| brow_enabled | BOOLEAN | true | — |
| ears_enabled | BOOLEAN | true | — |
| cheeks_and_cheekbones_enabled | BOOLEAN | false | — |
| cheekbones_enabled | BOOLEAN | true | — |
| chin_enabled | BOOLEAN | true | — |
| skin_enabled | BOOLEAN | true | — |
| neck_enabled | BOOLEAN | false | — |
| accessories_enabled | BOOLEAN | false | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| face_description | STRING | — |
| hair_style | STRING | — |
| hair_color | STRING | — |
| facial_hair | STRING | — |
| facial_expression | STRING | — |