ComfyUI Node

APNext People

Body types, archetypes and 400+ facial expressions

By dagthomas·Created 3 years ago·Updated 13 days ago· 283
APNext People
    • prompt
    • random
    prompt
    separator,
    string
    seed0
    attributesfalse
    body_typesNone
    archtype_femaleNone
    expressionsNone
    eye_colorNone
    archtype_maleNone
    archtypesNone

    This is the node for describing a person - the physical and emotional layer that makes a portrait read as a specific human instead of a default face. It carries 100 body-type descriptions, 433 facial expressions (which is genuinely a lot - "bemused smile with one eyebrow cocked", "barely contained grief with clenched fists"), archetype lists for male, female and neutral, and 29 eye colors. Pair it with APNext Human (jobs and hobbies) and you've covered most of what a people prompt needs.

    Its best asset is that expression list. "Smiling" is what everyone types and it produces the same dead stock grin every time. A specific expression phrase gives the model something to actually aim at, and it's the difference between a mannequin and a face with something going on behind it.

    How it works

    Each dropdown is a word list: None skips it, Random picks one, Multiple Random grabs several, or you pin a value. Your typed prompt is the base; the descriptions append and join on the separator. The seed locks the random draw for reproducibility.

    Nothing runs and nothing downloads - it's string assembly from JSON files that ship with the pack. The expressions in particular are written as full descriptive phrases rather than single tags, which is deliberate: on capable models that extra specificity binds better than a bare "happy".

    Inputs and outputs that matter

    • prompt (multiline, required) - your base subject. The person description stacks on.
    • expressions - the standout list and the one most worth randomizing. It's where a face gets character.
    • body_types - 100 phrased descriptions; useful, but pick one, they don't stack.
    • archtypes / archtype_male / archtype_female - set who the subject broadly is (man, woman, model, gentleman).
    • eye_color - a small precise touch when you need it.
    • seed - reproducibility; attributes (boolean) folds in extra descriptor tags.

    Outputs: prompt (base plus the assembled people terms) and random (just the random additions).

    Installing it

    Via ComfyUI Manager, search comfyui_dagthomas and install, then restart. By hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/dagthomas/comfyui_dagthomas
    cd comfyui_dagthomas
    pip install -r requirements.txt
    

    The requirements are heavy for the pack's LLM and FX nodes; this prompt node needs none of them and no API key.

    Common issues

    Setting both archtype_male and archtype_female to a value, or randomizing several body types with Multiple Random, gives the model contradictory instructions and you get anatomy that averages into something off. One archetype, one body type, one expression. That's the recipe.

    The phrasing is SDXL-lineage, so it drops cleanly into SDXL, Illustrious and Pony prompts. On the newer LLM-encoded models the long expression phrases actually transfer reasonably well because they're natural language, but any weighted parentheses are ignored - so if you're on Z-Image or Flux 2, take the picks and write them into a sentence. And a general note that applies to every people-generating node: if you're making a real, identifiable person, that's a whole separate consideration from prompt mechanics. This node just assembles descriptive text.

    Categorycomfyui_dagthomas

    Inputs (11)

    NameTypeDefaultDescription
    promptSTRING
    separatorSTRING,
    stringoptSTRING
    seedoptINT00–18446744073709550000
    attributesoptBOOLEANfalse
    body_typesoptCOMBONone100 options: None, Random, Multiple Random, apple-shaped torso with slim limbs, apple-shaped with short torso, athletic build with visible muscle definition, +94
    archtype_femaleoptCOMBONone10 options: None, Random, Multiple Random, lady, middle-aged woman, female millennial, +4
    expressionsoptCOMBONone433 options: None, Random, Multiple Random, amused expression with slightly upturned lips and soft eyes, barely contained grief with clenched fists, bawling loudly with red, puffy eyes, +427
    eye_coloroptCOMBONone29 options: None, Random, Multiple Random, amber eyes, amethyst eyes, aquamarine eyes, +23
    archtype_maleoptCOMBONone10 options: None, Random, Multiple Random, gentleman, man, middle-aged man, +4
    archtypesoptCOMBONone17 options: None, Random, Multiple Random, geek, gentleman, lady, +11

    Outputs (2)

    NameTypeDescription
    promptSTRING
    randomSTRING