Outfit Composer (kppb)
The node that stops you typing 'wearing a...' by hand
- outfit
If you generate a lot of photoreal character shots, you've spent real hours typing "wearing a red crop top, high-waisted jeans, and ankle boots" and watching the model mangle one of the three items. Outfit Composer (kppb) takes that job away: pick a top, a bottom, shoes, maybe lingerie and outerwear, throw on up to three accessories, and it assembles a natural-language outfit description like "Wearing lace bralette, crop top, high-waisted jeans, ankle boots, and choker". Out comes prose Klein's LLM encoder actually reads well, instead of a comma-dumped tag list.
How it works
The node is pure composition logic - no models, no network. Each category has its own dropdown (top, bottom, shoes as required; lingerie, outerwear, accessories as optional), and the output is built by:
- resolving any
randomselection to a concrete item per run, - prepending the color when you set one, so "Crop top" +
redbecomes "red crop top", - joining the pieces with commas and an Oxford-comma "and" into a single "Wearing …" sentence,
- turning any
removeselection into an explicit "without …" clause - handy when you specifically don't want a garment present, - deduplicating the three accessory slots so you can't double up on a choker.
The inputs that matter
The three required dropdowns are top, bottom, and shoes, each with a matching _color picker (~68 colors, from camel to metallic gold to plaid). The optional slots are where the outfit gets personality: lingerie_top / lingerie_bottom, outerwear, and accessory_1 / accessory_2 / accessory_3 (39 options, from baseball cap to body harness). extra_outfit_details appends free text if you want something the dropdowns can't say.
Everything you set lands in one output: a single outfit STRING. Wire it straight into the Prompt Builder (kppb) node's outfit input and it becomes part of the full generation prompt. That's the intended pipeline: Outfit Composer for clothes, Prompt Builder for everything else.
Installing and gotchas
Install is the pack standard - ComfyUI Manager search "Photoreal Prompt Builder", or:
cd ComfyUI/custom_nodes
git clone https://github.com/artokun/ComfyUI-Photoreal-Prompt-Builder.git comfyui-klein-photoreal-promptbuilder
Restart and the node appears under conditioning/klein in the menu. No pip dependencies.
Two things to know before you rely on it. First, the difference between unset and remove is real: unset means the category is ignored entirely, remove actively writes "without …" into the prompt - use the latter when the model keeps adding a bra under a crop top. Second, "random" rerolls on every queue run, so if you're hunting a specific look, set your choices explicitly or the outfit will drift between batches. And one honesty note: the clothing catalog leans heavily toward women's fashion, lingerie included - that's the pack's audience, not a bug.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| top | COMBO | unset | 40 options: unset, random, remove, Band t-shirt, Blouse, Bodysuit, +34 |
| top_color | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| bottom | COMBO | unset | 41 options: unset, random, remove, Asymmetrical skirt, Bell bottoms, Biker shorts, +35 |
| bottom_color | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| shoes | COMBO | unset | 30 options: unset, random, remove, Ankle boots, Ballet flats, Barefoot, +24 |
| shoes_color | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| lingerie_topopt | COMBO | unset | 21 options: unset, random, remove, Babydoll top, Balconette bra, Bralette, +15 |
| lingerie_top_coloropt | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| lingerie_bottomopt | COMBO | unset | 22 options: unset, random, remove, Bikini briefs, Bodystocking, Cheeky briefs, +16 |
| lingerie_bottom_coloropt | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| outerwearopt | COMBO | unset | 30 options: unset, random, remove, Belted coat, Blazer, Bomber jacket, +24 |
| outerwear_coloropt | COMBO | unset | 68 options: unset, random, aqua, army green, baby blue, beige, +62 |
| accessory_1opt | COMBO | unset | 39 options: unset, random, Anklet, Backpack, Bangles, Baseball cap, +33 |
| accessory_2opt | COMBO | unset | 39 options: unset, random, Anklet, Backpack, Bangles, Baseball cap, +33 |
| accessory_3opt | COMBO | unset | 39 options: unset, random, Anklet, Backpack, Bangles, Baseball cap, +33 |
| extra_outfit_detailsopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| outfit | STRING | — |