Nodes/comfyui-portrait-master/Portrait Master: Style & Pose
ComfyUI Node

Portrait Master: Style & Pose

The Portrait Master node that dresses, lights, and frames your subject

By florestefano1975·Created 3 years ago·Updated 7 months ago· 1,227
Portrait Master: Style & Pose
    • text_out
    model_pose-
    clothes-
    female_lingerie-
    makeup-
    light_type-
    light_direction-
    light_weight1.00
    style_1-
    style_1_weight1.00
    style_2-
    style_2_weight1.00
    background-
    camera_angle-
    camera_distance-
    camera_lens-
    photorealism_improvementtrue
    activetrue
    load_preset
    save_preset_as
    save_presetfalse
    text_in
    seed

    "Portrait Master: Style & Pose" is the scene-dressing node in the comfyui-portrait-master pack. Where Base Character decides who the person is, this one decides how they look - the pose, the clothes, the lighting, the camera, the background, and the artistic style stamped on top. It's the difference between "here's a woman in her 30s" and "here's a woman in a cocktail dress, shot on a 85mm lens in golden-hour rim light, with a fashion-editorial vibe."

    It exists because the portrait-master workflow splits prompt-building into five specialized nodes, and this is the biggest of them. If you're only chaining one PM node into a working portrait workflow, this is the one people add second, right after Base Character.

    How it works

    Like every node in this pack, it doesn't touch a model. It's a string builder: pick options from dropdowns, set weights on sliders, and it assembles a comma-separated prompt, lowercases it, and hands you a single text_out STRING. You wire that into a CLIPTextEncode (or CLIPTextEncodeFlux for Flux models) and sample as usual. The whole thing runs in milliseconds.

    The mechanism is simple and worth knowing: pose, clothes, and lingerie entries get appended at a fixed :1.25 emphasis, light and style entries use your weight sliders, and everything else sits at :1.05. That fixed :1.25 on the pose is deliberate - the pose has to fight the model's default bias toward plain headshots, so it gets a head start.

    The inputs that matter

    Most of the dropdowns are self-explanatory, but a few deserve attention:

    • model_pose - 88 entries, from "Adjusting Clothing Pose" to "Artistic Dance Pose." This is the node's headline feature. The README's note matters here: disable ControlNet when you rely on the pose library, because the pose is carried by the prompt text, and an active OpenPose control can fight it.
    • light_type + light_direction + light_weight - 72 light types, but light_direction is the underrated one. "Light from top-left" with light_weight above 1 reads instantly as "studio," while flat front light reads "phone camera."
    • style_1 / style_2 - 67 artistic styles with independent weights. Many are film-emulation names (Agfa Vista, Astia, Classic Chrome). Those only do anything if your checkpoint actually knows the terms - on SDXL photoreal models like FormulaXL they land fine; on a model that never saw them they're inert tokens.
    • background - 91 options, handy when you want a scene instead of the white-box look.
    • photorealism_improvement - a single toggle that appends (professional photo, balanced photo, balanced exposure:1.2). It's a blunt instrument but it works; it's the same trick the legacy node uses.

    Set anything to - to leave it out, or random 🎲 to have it picked for you. One honest caveat from the source: the seed INT input is declared but nothing in the node actually seeds Python's random from it, so random 🎲 picks aren't reproducible from the seed - if you need a repeatable look, set the dropdowns by hand.

    Installing it

    Style & Pose ships inside comfyui-portrait-master, so install the whole pack once:

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

    Then restart ComfyUI. Or use ComfyUI Manager and search for "Portrait Master" (by florestefano1975). No extra Python dependencies, no model downloads - the pack is pure Python plus text files, which is refreshingly light.

    Common issues

    • Full-body pose still returns a headshot. This is the classic Portrait Master complaint, and it's usually not this node's fault - the face-detail sliders on the other PM nodes are pulling the framing in. Drop their weights, describe the clothing, and add (close up:1.5) to your negative prompt.
    • The pose is ignored entirely. Check whether ControlNet or an inpainting mask is fighting the text prompt, then verify the node's active toggle is on.
    • Weird stale values when you load an old workflow PNG. The pack has been restructured across versions, so dropdowns from an older save can hold values that no longer exist. Just re-set them.
    CategoryAI WizArt/Portrait Master

    Inputs (22)

    NameTypeDefaultDescription
    model_poseCOMBO-88 options: -, random 🎲, Adjusting Clothing Pose, Against a Wall Pose, Ajusting Hair Pose, Arms Up Pose, +82
    clothesCOMBO-22 options: -, random 🎲, Bohemian Dress, Business Casual Dress, Business Formal Dress, Business Professional Dress, +16
    female_lingerieCOMBO-270 options: -, random 🎲, Babydoll set in pastel pink with floral embroidery lingerie, Beaded Mesh Teddy lingerie, Black latex waist cincher with matching pasties lingerie, Bridal lingerie set with pearls and lace lingerie, +264
    makeupCOMBO-22 options: -, random 🎲, Anime Makeup, Artistic Makeup, Avant-garde Makeup, Bohemian Makeup, +16
    light_typeCOMBO-72 options: -, random 🎲, Abstract Light Patterns, Ambient Light, Backlight Light, Backlit Silhouette Light, +66
    light_directionCOMBO-12 options: -, random 🎲, Light from bottom, Light from bottom-left, Light from bottom-right, Light from front, +6
    light_weightFLOAT1.000–2
    style_1COMBO-67 options: -, random 🎲, Agfa Vista, Astia, Aurora Borealis, Black and White Photography, +61
    style_1_weightFLOAT1.000–2
    style_2COMBO-67 options: -, random 🎲, Agfa Vista, Astia, Aurora Borealis, Black and White Photography, +61
    style_2_weightFLOAT1.000–2
    backgroundCOMBO-91 options: -, random 🎲, angular, arched, ash, athletic, +85
    camera_angleCOMBO-36 options: -, random 🎲, angled, asymmetrical, back, balanced, +30
    camera_distanceCOMBO-24 options: -, random 🎲, casual, close, close up, distant, +18
    camera_lensCOMBO-66 options: -, random 🎲, 100mm, 200mm, 24-70mm, 35mm, +60
    photorealism_improvementBOOLEANtrue
    activeBOOLEANtrue
    load_presetCOMBO1 options: -- disabled --
    save_preset_asSTRING
    save_presetBOOLEANfalse
    text_inoptSTRING
    seedoptINT

    Outputs (1)

    NameTypeDescription
    text_outSTRING