Nodes/EBU PromptHelper/EBU PromptHelper Character Describer Male
ComfyUI Node

EBU PromptHelper Character Describer Male

Roll a male character's face (and beard) without typing a word

By burnsbert·Created 2 years ago·Updated about a month ago· 2
EBU PromptHelper Character Describer Male
    • face_description
    • hair_style
    • hair_color
    • facial_hair
    • facial_expression
    seed0
    eyes_enabledtrue
    nose_enabledtrue
    mouth_enabledtrue
    face_shape_enabledtrue
    brow_enabledtrue
    ears_enabledtrue
    cheeks_and_cheekbones_enabledfalse
    cheekbones_enabledtrue
    chin_enabledtrue
    skin_enabledtrue
    neck_enabledfalse
    accessories_enabledfalse

    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 *_enabled toggles - eyes, nose, mouth, face shape, brow, ears, cheekbones, chin, skin default on; neck and accessories default off. cheeks_and_cheekbones_enabled is 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.

    CategoryPrompts

    Inputs (13)

    NameTypeDefaultDescription
    seedINT00–18446744073709550000
    eyes_enabledBOOLEANtrue
    nose_enabledBOOLEANtrue
    mouth_enabledBOOLEANtrue
    face_shape_enabledBOOLEANtrue
    brow_enabledBOOLEANtrue
    ears_enabledBOOLEANtrue
    cheeks_and_cheekbones_enabledBOOLEANfalse
    cheekbones_enabledBOOLEANtrue
    chin_enabledBOOLEANtrue
    skin_enabledBOOLEANtrue
    neck_enabledBOOLEANfalse
    accessories_enabledBOOLEANfalse

    Outputs (5)

    NameTypeDescription
    face_descriptionSTRING
    hair_styleSTRING
    hair_colorSTRING
    facial_hairSTRING
    facial_expressionSTRING