βοΈ Male Outfit
Same Machinery, Fewer Lipstick Problems
- positive_prompt
- seed
- negative_prompt
- metadata
Male Outfit (class MaleOutfitNode, in the π Outfit/Male menu) is exactly what it sounds like: the comfyui-outfit pack's prompt builder, tuned for a male subject. It's not a separate app - both outfit nodes are generated by the same factory function in dynamic_outfit_node.py and differ only in which part catalogs and presets they load from data/outfit/male/ and data/presets.json. If you've read the Female Outfit article, you know the drill; this is the men's rack.
You reach for this one the same way: pick a preset (the male list runs 28 deep and is a lot more fun than the female one - Arabian Nights, Detective Noir, Chef Master, Japanese Samurai, Cyberpunk Rebel, Indian Wedding), leave the part dropdowns on random, and let the seed assemble a coherent outfit instead of you describing a tuxedo in tags.
What's actually different
The part catalog is male-specific, which matters for how you use the randomizer:
- facial_hair is a male-only dropdown with 22 options, from
clean shaventofull beardand everything between (fu manchu, balbo, friendly chops, five o'clock shadow...). This one has real prompt logic behind it: the builder auto-injects negatives so a clean-shaven pick doesn't come back with a beard - and vice versa. If you setfacial_hair: clean shaven, expect "beard, mustache, goatee, stubble" to appear in the negative_prompt output. - Male hairstyle and body_type lists replace the female ones - buzz cuts and fades instead of Bantu knots and bouffants,
broad-shoulderedandburlyinstead ofhourglassandpetite. Thehairstylechoices also trigger the auto-negative logic (pickbuzz cutand you won't get a ponytail). - No cheeks/lips makeup parts here, though the hidden
makeup_dataplumbing still exists in case you load a female-style workflow by accident.
Everything else - the seed system, presets, outputs - matches the female node. Same four outputs: positive_prompt (to your text encoder), seed (to your KSampler for reproducibility), negative_prompt, and metadata (JSON of what it picked). Same style_seed trick: set your own value to vary the outfit while the image seed holds, which is the fastest way to brute-force "same guy, different look" batches.
The few inputs you'll set
- preset -
none,random, or one of the 28 named presets. Presets fill only fields still set tonone/random/empty, so anything you choose manually overrides. - avoid_terms - comma-separated stuff you never want (e.g.
tie, formal wearwhen you're fishing for casual fits). Folded into the negative prompt plus the pack's baseline negatives (blurry, low-res, bad anatomy, extra fingers...). - seed / seed_mode / style_seed - the same four seed modes;
style_seedis the one people underuse.
Install and gotchas
Identical to the rest of the pack: ComfyUI Manager β search "ComfyUI Outfit Selection", or
cd ComfyUI/custom_nodes/
git clone https://github.com/manifestations/comfyui-outfit.git
then restart. No model downloads for this node; deps are just requests, pillow, numpy, torch. The known gotchas are shared too: enable_cache (on by default) can make it look like an input change did nothing, and a preset with keys that no longer exist logs contains unknown keys and silently skips them. If your male subject is coming out clean-shaven when you asked for stubble, check the auto-negatives in the metadata output before blaming the model - the node may have decided your choice needed reinforcing.
Inputs (38)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | none | Choose a preset to auto-fill fields. Use 'random' to randomly select from all cultural and themed presets! |
| preset_colors | BOOLEAN | true | If OFF, preset fills only clothing types without colors (AI picks colors). If ON, uses preset colors exactly. |
| avoid_terms | STRING | β | |
| age_group | COMBO | random | 10 options: none, random, adult (30-45 years), baby (0-2 years), child (5-12 years), middle-aged (46-59 years), +4 |
| character_name | STRING | β | |
| body_type | COMBO | random | 17 options: none, random, athletic, average, broad-shouldered, burly, +11 |
| pose | COMBO | random | 42 options: none, random, Adjusting a tie in the mirror, with a smug 'I know I look good' smile., Hands in pockets, relaxed stance, Holding a glass of whiskey, with a 'I know what I'm doing' look in his eyes., Holding a rose, looking like he just stepped out of a romance novel., +36 |
| background | COMBO | random | 42 options: none, random, Ancient temple courtyard, Art gallery, Beach boardwalk, Botanical garden, +36 |
| race | COMBO | random | 12 options: none, random, African, Caucasian, East Asian, Latino/Hispanic, +6 |
| mood | COMBO | random | 20 options: none, random, bright, dark, dramatic, dreamy, +14 |
| time_of_day | COMBO | random | 14 options: none, random, afternoon, blue hour, dawn, dusk, +8 |
| weather | COMBO | random | 14 options: none, random, crisp, dry, foggy, humid, +8 |
| color_scheme | COMBO | random | 14 options: none, random, analogous, complementary, cool tones, earth tones, +8 |
| description_style | COMBO | random | 5 options: none, random, flux, sd3, sdxl |
| creative_scale | COMBO | none | 8 options: none, random, cinematic, detailed, exact, exaggerated, +2 |
| custom_attributes | STRING | β | |
| seed | INT | 00β4294967295 | Main seed for image generation. Controls final image output. |
| style_seed | INT | 00β4294967295 | Separate seed for outfit/style randomization. Use 0 to follow main seed, or set different value to vary outfit while keeping same image seed. |
| seed_mode | COMBO | random | How the main seed behaves: fixed=use exact value, random=new each time, increment/decrement=step from last value |
| export_preset | BOOLEAN | false | β |
| lock_preset_fields | BOOLEAN | false | If on, also lock non-attire style fields (pose, background, etc.) to preset values |
| enable_cache | BOOLEAN | true | Cache outputs for identical inputs (faster repeats) |
| arm | COMBO | random | 17 options: none, random, ID bracelet, arm warmer, armband, bare arms, +11 |
| ear | COMBO | random | 17 options: none, random, bare ears, conch piercing, daith piercing, diamond stud, +11 |
| eyewear | COMBO | random | 20 options: none, random, aviator sunglasses, cat-eye glasses, contact lenses, eye patch, +14 |
| facial_hair | COMBO | random | 22 options: none, random, anchor beard, balbo, chinstrap, circle beard, +16 |
| feet | COMBO | random | 25 options: none, random, bare feet, basketball shoes, boat shoes, boots, +19 |
| fingers | COMBO | random | 18 options: none, random, band ring, bare fingers, championship ring, class ring, +12 |
| forearm | COMBO | random | 17 options: none, random, arm warmer, bare forearm, compression sleeve, elbow support, +11 |
| forehead | COMBO | random | 17 options: none, random, bandage, bare forehead, bindi, birthmark, +11 |
| hairstyle | COMBO | random | 32 options: none, random, afro, bowl cut, buzz cut, caesar cut, +26 |
| hand | COMBO | random | 17 options: none, random, bare hands, boxing gloves, cycling gloves, dress gloves, +11 |
| headgear | COMBO | random | 23 options: none, random, baseball cap, beanie, beret, boater hat, +17 |
| legs | COMBO | random | 29 options: none, random, athletic shorts, basketball shorts, bermuda shorts, board shorts, +23 |
| neck | COMBO | random | 20 options: none, random, ascot, bandana, bow tie, chain, +14 |
| nose | COMBO | random | 17 options: none, random, bare nose, bridge piercing, glasses, high nostril piercing, +11 |
| torso | COMBO | random | 31 options: none, random, blazer, button-up shirt, cardigan, dashiki, +25 |
| waist | COMBO | random | 17 options: none, random, braided belt, canvas belt, chain belt, cummerbund, +11 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | β |
| seed | INT | β |
| negative_prompt | STRING | β |
| metadata | STRING | β |