Nodes/comfyui-portrait-master/Portrait Master 2.9.2 (Legacy)
ComfyUI Node

Portrait Master 2.9.2 (Legacy)

The original all-in-one node that started it all

By florestefano1975·Created 3 years ago·Updated 7 months ago· 1,227
Portrait Master 2.9.2 (Legacy)
    • positive
    • negative
    shotClose-up
    shot_weight0.00
    genderMan
    androgynous0.00
    age30
    nationality_1Afghan
    nationality_2Afghan
    nationality_mix0.50
    body_typeBeefy
    body_type_weight0.00
    model_poseAdjusting Clothing Pose
    clothesBohemian Dress
    eyes_colorAlbino
    eyes_shapeAlmond Eyes Shape
    lips_colorBerry Lips
    lips_shapeBiting Lips
    facial_expressionAmused
    facial_expression_weight0.00
    face_shapeCircle
    face_shape_weight0.00
    facial_asymmetry0.00
    hair_styleA-line bob
    hair_colorAuburn
    hair_lengthLong
    disheveled0.00
    makeupAnime Makeup
    beardAnchor Beard
    natural_skin0.00
    bare_face0.00
    washed_face0.00
    dried_face0.00
    skin_details0.00
    skin_pores0.00
    dimples0.00
    wrinkles0.00
    freckles0.00
    moles0.00
    skin_imperfections0.00
    skin_acne0.00
    tanned_skin0.00
    eyes_details0.00
    iris_details0.00
    circular_iris0.00
    circular_pupil0.00
    light_typeAbstract Light Patterns
    light_directionLight from bottom
    light_weight0.00
    photorealism_improvement
    prompt_startraw photo, (realistic:1.5)
    prompt_additional
    prompt_end
    negative_prompt
    style_1Agfa Vista
    style_1_weight1.50
    style_2Agfa Vista
    style_2_weight1.50
    random_shotfalse
    random_genderfalse
    random_agefalse
    random_androgynousfalse
    random_nationalityfalse
    random_body_typefalse
    random_model_posefalse
    random_clothesfalse
    random_eyes_colorfalse
    random_eyes_shapefalse
    random_lips_colorfalse
    random_lips_shapefalse
    random_facial_expressionfalse
    random_face_shapefalse
    random_hairstylefalse
    random_hair_colorfalse
    random_hair_lengthfalse
    random_disheveledfalse
    random_makeupfalse
    random_frecklesfalse
    random_molesfalse
    random_skin_imperfectionsfalse
    random_beardfalse
    random_style_1false
    random_style_2false
    seed

    This is the one that started it. Before the pack split into five modular nodes, there was one giant PortraitMaster node with roughly seventy inputs, and it was everywhere in 2023 and 2024 - the reddit launch threads for it hit +90 upvotes and people were building entire SDXL portrait workflows around it. In 3.x the author split it into Base Character, Skin Details, Style & Pose, Make-up, and Face Generator, but kept this monolith around under the "Old versions" category so every workflow and PNG that references it keeps working.

    So when is it the right tool? When you already have an old workflow that uses it, or when you genuinely want everything in one panel. Otherwise reach for the split nodes - a single node with fifty inputs and fifty random_* toggles is a lot to look at, and the modular versions are easier to reason about. The one thing the legacy node has that the others don't: it outputs two strings, a ready positive prompt and a ready negative prompt, so it's closer to a drop-in prompt generator than the modular chain.

    How it works

    Same mechanism as the rest of the pack - dropdowns and sliders become weighted tag text, lowercased, joined with commas. What's different:

    • RETURN_NAMES are positive and negative. The positive is the full assembled portrait prompt. The negative starts from your negative_prompt field and, when photorealism_improvement is set to enable, automatically appends (shinny skin, shiny skin, reflections on the skin, skin reflections:1.35) - the classic SDXL "don't give me wax" guard.
    • prompt_start / prompt_additional / prompt_end let you wrap your own text around the generated core. prompt_start defaults to raw photo, (realistic:1.5), which is a solid baseline for SDXL photorealism.
    • Per-field random_* booleans replace the random 🎲 dropdown entries of the new nodes - flip random_hair_color and it rerolls each run.
    • It prints the assembled prompt to the ComfyUI console on every run. Annoying if you run long batches, useful the first few times to see exactly what it's building.

    One legacy-specific gotcha: the photorealism_improvement input here is an enum (enable/disable), not the boolean toggle the new nodes use.

    The inputs that matter

    The defaults are already set to something sensible (Close-up, Man, 30, Afghan, Beefy, Amused, Agfa Vista…) - you can queue it the second it loads and get a usable portrait prompt. From there, the high-leverage edits are shot, gender, age, hair_style, facial_expression, and negative_prompt. Everything else is refinement. Set a random_* boolean to true and it'll surprise you; the pack's randomization is genuinely good for exploring.

    Installing it

    It's the same pack - install comfyui-portrait-master once and every node including this legacy one shows up:

    cd ComfyUI/custom_nodes
    git clone https://github.com/florestefano1975/comfyui-portrait-master
    

    Then restart ComfyUI. Or search "Portrait Master" (florestefano1975) in ComfyUI Manager. No dependencies, no model downloads.

    Common issues

    • Loading an old workflow scrambles the values. This is the defining legacy-node problem - the community has reported dropdowns holding values that don't exist in the current lists (a "Red" face shape, a weight sitting in a hair-style field) after loading PNGs saved against older versions. "Creating monsters," as one user put it. Re-set the fields manually.
    • Full body still isn't full body. The long-running complaint. The author's own advice: reduce the face/skin detail weights, describe the clothing explicitly, and put (close up:1.5) in the negative prompt.
    • The prompt is enormous. Stacking every category at high weights produces a monster string that dilutes attention on SDXL-lineage CLIP encoders. Set the fields you don't care about to -.
    • The console spam. It prints both prompts every run. That's by design, not a leak.
    CategoryAI WizArt/Portrait Master/Old versions

    Inputs (82)

    NameTypeDefaultDescription
    shotCOMBOClose-up9 options: -, Close-up, Face, Full body, Full-length portrait, Half-length portrait, +3
    shot_weightFLOAT0.000–1.95
    genderCOMBOMan3 options: -, Man, Woman
    androgynousFLOAT0.000–1.95
    ageCOMBO3037 options: 18, 20, 22, 24, 26, 28, +31
    nationality_1COMBOAfghan193 options: -, Afghan, Albanian, Algerian, Andorran, Angolan, +187
    nationality_2COMBOAfghan193 options: -, Afghan, Albanian, Algerian, Andorran, Angolan, +187
    nationality_mixFLOAT0.500–1
    body_typeCOMBOBeefy35 options: -, Beefy, Buff, Buxom, Chubby, Curvy, +29
    body_type_weightFLOAT0.000–1.95
    model_poseCOMBOAdjusting Clothing Pose87 options: -, Adjusting Clothing Pose, Against a Wall Pose, Ajusting Hair Pose, Arms Up Pose, Artistic Dance Pose, +81
    clothesCOMBOBohemian Dress21 options: -, Bohemian Dress, Business Casual Dress, Business Formal Dress, Business Professional Dress, Casual Chic Dress, +15
    eyes_colorCOMBOAlbino11 options: -, Albino, Amber, Blue, Brown, Gray, +5
    eyes_shapeCOMBOAlmond Eyes Shape13 options: -, Almond Eyes Shape, Asian Eyes Shape, Close-Set Eyes Shape, Deep Set Eyes Shape, Double Eyelid Eyes Shape, +7
    lips_colorCOMBOBerry Lips16 options: -, Berry Lips, Black Lips, Blue Lips, Brown Lips, Burgundy Lips, +10
    lips_shapeCOMBOBiting Lips22 options: -, Biting Lips, Bow-shaped Lips, Closed Lips, Cupid's Bow Lips, Defined Cupid's Bow Lips, +16
    facial_expressionCOMBOAmused33 options: -, Amused, Angry, Anxious, Bored, Calm, +27
    facial_expression_weightFLOAT0.000–1.95
    face_shapeCOMBOCircle24 options: -, Circle, Diamond, Heart, Heart with Pointed Chin, Heart with Rounded Chin, +18
    face_shape_weightFLOAT0.000–1.95
    facial_asymmetryFLOAT0.000–1.95
    hair_styleCOMBOA-line bob118 options: -, A-line bob, Afro, Asymmetrical, Balayage, Bald, +112
    hair_colorCOMBOAuburn22 options: -, Auburn, Black, Blonde, Burgundy, Caramel, +16
    hair_lengthCOMBOLong4 options: -, Long, Medium, Short
    disheveledFLOAT0.000–1.95
    makeupCOMBOAnime Makeup21 options: -, Anime Makeup, Artistic Makeup, Avant-garde Makeup, Bohemian Makeup, Boho Makeup, +15
    beardCOMBOAnchor Beard21 options: -, Anchor Beard, Balbo Beard, Chevron Mustache, Chinstrap Beard, Circle Beard, +15
    natural_skinFLOAT0.000–1.95
    bare_faceFLOAT0.000–1.95
    washed_faceFLOAT0.000–1.95
    dried_faceFLOAT0.000–1.95
    skin_detailsFLOAT0.000–1.95
    skin_poresFLOAT0.000–1.95
    dimplesFLOAT0.000–1.95
    wrinklesFLOAT0.000–1.95
    frecklesFLOAT0.000–1.95
    molesFLOAT0.000–1.95
    skin_imperfectionsFLOAT0.000–1.95
    skin_acneFLOAT0.000–1.95
    tanned_skinFLOAT0.000–1.95
    eyes_detailsFLOAT0.000–1.95
    iris_detailsFLOAT0.000–1.95
    circular_irisFLOAT0.000–1.95
    circular_pupilFLOAT0.000–1.95
    light_typeCOMBOAbstract Light Patterns71 options: -, Abstract Light Patterns, Ambient Light, Backlight Light, Backlit Silhouette Light, Bloom Light, +65
    light_directionCOMBOLight from bottom11 options: -, Light from bottom, Light from bottom-left, Light from bottom-right, Light from front, Light from left, +5
    light_weightFLOAT0.000–1.95
    photorealism_improvementCOMBO2 options: enable, disable
    prompt_startSTRINGraw photo, (realistic:1.5)
    prompt_additionalSTRING
    prompt_endSTRING
    negative_promptSTRING
    style_1COMBOAgfa Vista66 options: -, Agfa Vista, Astia, Aurora Borealis, Black and White Photography, Bleach Bypass, +60
    style_1_weightFLOAT1.501–1.95
    style_2COMBOAgfa Vista66 options: -, Agfa Vista, Astia, Aurora Borealis, Black and White Photography, Bleach Bypass, +60
    style_2_weightFLOAT1.501–1.95
    random_shotBOOLEANfalse
    random_genderBOOLEANfalse
    random_ageBOOLEANfalse
    random_androgynousBOOLEANfalse
    random_nationalityBOOLEANfalse
    random_body_typeBOOLEANfalse
    random_model_poseBOOLEANfalse
    random_clothesBOOLEANfalse
    random_eyes_colorBOOLEANfalse
    random_eyes_shapeBOOLEANfalse
    random_lips_colorBOOLEANfalse
    random_lips_shapeBOOLEANfalse
    random_facial_expressionBOOLEANfalse
    random_face_shapeBOOLEANfalse
    random_hairstyleBOOLEANfalse
    random_hair_colorBOOLEANfalse
    random_hair_lengthBOOLEANfalse
    random_disheveledBOOLEANfalse
    random_makeupBOOLEANfalse
    random_frecklesBOOLEANfalse
    random_molesBOOLEANfalse
    random_skin_imperfectionsBOOLEANfalse
    random_beardBOOLEANfalse
    random_style_1BOOLEANfalse
    random_style_2BOOLEANfalse
    seedoptINT

    Outputs (2)

    NameTypeDescription
    positiveSTRING
    negativeSTRING