Random Person: Style
Clothing, accessories, makeup — the wardrobe a random person wears.
- full_style_description
- sex
- clothing
- accessories
- makeup
- footwear
- seed
If every person in your batch wears a plain t-shirt, they're not individuals yet - they're the same person in different lighting. Random Person: Style is the segment node from ComfyUI_RandomPerson that finishes the job: clothing, accessories, makeup, and footwear, rolled per-seed into one comma-separated fragment. It's the outfit layer of the pack, and it's the layer where people actually start to read as different people.
Like the other four segment nodes (Identity, Face, Hair, Body), it runs the same generator as the pack's all-in-one node but exposes only its slice. Use it alone to vary outfits across a batch, or concatenate it with the siblings for a full person - same sex on each.
What it generates
- clothing - the deep list, sex-gated: blouse, cardigan, sundress, maxi dress, wool coat for female; bomber jacket, henley, flannel, three-piece suit, parka, tracksuit for male. Values are stored as full phrases ("a plain t-shirt", "a wool overcoat") so the description reads naturally. Defaults
off. - accessories - glasses (round, thick-framed, reading, aviator sunglasses), earrings, scarves, hats, jewellery - 26 options. Defaults
off. - makeup - natural, soft, minimal, glam, bold, smokey eye, winged eyeliner, red/bold lipstick. Effectively female-only: the male makeup list is a single
nonewith an empty description, so males never get a makeup phrase. Defaultsoff. - footwear - sneakers, boots, sandals, plus sex-gated styles like high heels and mary janes for female, work boots for male. Defaults
off.
Notice a theme: everything on this node defaults to off. That's deliberate - the pack's core identity categories roll random, but the "flair" categories (which is all of Style) stay silent until you opt in. So the default behavior is a description with no outfit at all, which confuses people who expect the wardrobe to just show up. Flip the modes to random and the node takes over styling.
The inputs that matter
The pack's universal three-widget pattern: _mode (random/allow_list/fixed/off), _allow_list (comma-separated subset, unknown values kept as literal descriptors), and _fixed (a dropdown value for fixed mode). So clothing_allow_list: t-shirt, hoodie, flannel shirt rolls a casual wardrobe, or footwear_fixed: sneakers locks the shoes. extra_attributes appends free text verbatim - perfect for a "tattoo on left arm, silver hoop earrings" addition.
seed plus randomize is pack-standard: on (default) gives a fresh outfit every run, off reproduces the same one from the same seed.
Outputs and wiring
full_style_description- the assembled fragment, e.g.a plain t-shirt, stud earrings, natural makeup, sneakerssex- resolved sex, for syncing with sibling nodesclothing,accessories,makeup,footwear- each on its own pin for routingseed- INT
Wire full_style_description into a CLIP Text Encode's text input or a string concat node next to the other segments. For a street scene or crowd shot, randomize: on and batch - every passerby gets a different outfit.
Install and gotchas
ComfyUI Manager: search ComfyUI_RandomPerson, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/bradsec/ComfyUI_RandomPerson
Under Add Node → Random Person. No pip dependencies, Python 3.10+, registers on both V1 and V3 APIs.
Two gotchas worth remembering. First: the all-off default - if your Style fragment comes out empty, that's the node working as intended, not a bug; switch the modes to random. Second, when composing with sibling nodes, each segment rolls its own sex if left on random, so set the same concrete sex everywhere or a male outfit list can land on a female person.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | Seed for reproducibility. With randomize off, the same seed reproduces the same person. |
| randomize | BOOLEAN | true | On: pick a new random person every run, ignoring the seed widget. Off: use the seed. |
| sex | COMBO | random | random, male, or female. male/female filter the sex-specific dropdowns in the UI. |
| accessories_mode | COMBO | off | How this attribute is chosen: random (any), allow_list (subset you list), fixed (the dropdown value), off (omit it). |
| accessories_allow_list | STRING | Comma-separated values used when mode=allow_list. Unknown values are added as literal descriptors. | |
| accessories_fixed | COMBO | (none) | Exact value used when mode=fixed. (none) falls back to random. |
| makeup_mode | COMBO | off | How this attribute is chosen: random (any), allow_list (subset you list), fixed (the dropdown value), off (omit it). |
| makeup_allow_list | STRING | Comma-separated values used when mode=allow_list. Unknown values are added as literal descriptors. | |
| makeup_fixed | COMBO | (none) | Exact value used when mode=fixed. (none) falls back to random. |
| clothing_mode | COMBO | off | How this attribute is chosen: random (any), allow_list (subset you list), fixed (the dropdown value), off (omit it). |
| clothing_allow_list | STRING | Comma-separated values used when mode=allow_list. Unknown values are added as literal descriptors. | |
| clothing_fixed | COMBO | (none) | Exact value used when mode=fixed. (none) falls back to random. |
| footwear_mode | COMBO | off | How this attribute is chosen: random (any), allow_list (subset you list), fixed (the dropdown value), off (omit it). |
| footwear_allow_list | STRING | Comma-separated values used when mode=allow_list. Unknown values are added as literal descriptors. | |
| footwear_fixed | COMBO | (none) | Exact value used when mode=fixed. (none) falls back to random. |
| extra_attributes | STRING | Free text appended to the description as-is, comma-separated. Pose, setting, props, extra detail, etc. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| full_style_description | STRING | — |
| sex | STRING | — |
| clothing | STRING | — |
| accessories | STRING | — |
| makeup | STRING | — |
| footwear | STRING | — |
| seed | INT | — |