Portrait Fashion Prompt
Dress your character from 748 outfits without guessing a single tag
- text
You know the grind: you want a character in a doctor's coat, leather jacket, and high-waisted jeans, and you spend ten minutes fighting the tokenizer over whether it's "jeans" or "denim pants" before giving up and writing "cute outfit". Portrait Fashion Prompt exists to end that. It's a giant dropdown form - 748 kinds of clothes, 363 colors, plus hats, shoes, gloves, and a dozen jewelry/decoration slots - and it turns whatever you pick into a proper weighted prompt. It's from ComfyUI-PromptWrapper, a Chinese-built pack that is basically unknown in the English-speaking community (zero exact matches in the reddit corpus), and that's a shame, because this is its most popular node for a reason.
How it works
The node is a front end over bundled datasets - JSONL files of clothing terms in the pack's assets/ folder, in both Chinese and English. Each dropdown has a -- (omit this) and a random 🎲 option. Pick random and the node does seed % dataset_length to choose an entry, so the same seed gives you the same outfit every time. Weights work the way they do in a normal weighted prompt: weight 1 means the bare text, anything else becomes (text:1.35).
The inputs that matter
You don't touch all 45 of them. Realistically:
- clothes and clothes_color - the two that carry the image. Leave the rest at
--. - clothes_weight, clothes_color_weight - the sliders (0–2) that decide how hard the model tries. 0 omits the slot entirely.
- seed - reproduces any
randompick. - language -
ChineseorEnglish; this swaps the dataset, so you can generate bilingual prompts. - preset_prompt and the optional input_prompt - both get prepended to whatever the node builds, handy for a fixed subject line like "1girl, standing".
The single text output wires straight into a CLIP Text Encode node.
Install
ComfyUI Manager → Custom Nodes Manager → search ComfyUI-PromptWrapper → Install, then restart ComfyUI. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/clouddreamfly/ComfyUI-PromptWrapper
The builder nodes need nothing extra - the datasets ship with the pack. No models, no API keys.
Where people get burned
Two things. First, the (word:weight) syntax the node emits is a CLIP-encoder convention: it works great on SD 1.5/SDXL-lineage checkpoints like Illustrious or Pony, but 2026's LLM-encoded models (Flux with T5, Z-Image, Anima) silently discard those weights. On those, this node is just a fancy tag picker. Second, the default language is Chinese - switch it to English if you don't want 医生的白大褂 showing up in your prompt, because the "English" dataset is genuinely translated and reads better to most models.
It's not a workflow engine and it won't compose a scene for you. It's a fast, structured way to describe clothing, and for character work it beats typing tags by hand.
Inputs (45)
| Name | Type | Default | Description |
|---|---|---|---|
| language | COMBO | Chinese | 2 options: Chinese, English |
| clothes | COMBO | -- | 748 options: --, random 🎲, 医生的白大褂, 厨师的传统白色厨服, 建筑工人的安全马甲, 带有裤子的白色护士服, +742 |
| clothes_weight | FLOAT | 1.000–2 | — |
| clothes_color | COMBO | -- | 363 options: --, random 🎲, 藕色的衣服, 酱色的衣服, 茶色的衣服, 赫色的衣服, +357 |
| clothes_color_weight | FLOAT | 1.000–2 | — |
| up_clothes | COMBO | -- | 330 options: --, random 🎲, 上衣, 外套/外衣, 西装上衣, 风衣, +324 |
| up_clothes_weight | FLOAT | 1.000–2 | — |
| down_clothes | COMBO | -- | 103 options: --, random 🎲, 牛仔裤, 阔腿裤, 紧身裤, 直筒裤, +97 |
| down_clothes_weight | FLOAT | 1.000–2 | — |
| trousers | COMBO | -- | 298 options: --, random 🎲, 裤子, 工装裤, 马裤, 牛仔短裤, +292 |
| trousers_weight | FLOAT | 1.000–2 | — |
| underwear | COMBO | -- | 245 options: --, random 🎲, 内衣, 睡衣, 胸衣, 丰胸垫, +239 |
| underwear_weight | FLOAT | 1.000–2 | — |
| underpants | COMBO | -- | 245 options: --, random 🎲, 内裤, 丁字裤, 底裤, 法式浪漫蕾丝三角裤, +239 |
| underpants_weight | FLOAT | 1.000–2 | — |
| socks | COMBO | -- | 188 options: --, random 🎲, 袜子, 裤袜, 白裤袜, 黑色裤袜, +182 |
| socks_weight | FLOAT | 1.000–2 | — |
| shoes | COMBO | -- | 234 options: --, random 🎲, 高跟鞋, 运动鞋, 平底鞋, 凉鞋, +228 |
| shoes_weight | FLOAT | 1.000–2 | — |
| hat | COMBO | -- | 299 options: --, random 🎲, 帽子, 没有帽子, 棒球帽, 针织帽, +293 |
| hat_weight | FLOAT | 1.000–2 | — |
| gloves | COMBO | -- | 29 options: --, random 🎲, 手套, 脱下手套, 去掉了(原设有的)手套, 单只手套, +23 |
| gloves_weight | FLOAT | 1.000–2 | — |
| head_decoration | COMBO | -- | 342 options: --, random 🎲, 发带, 洛丽塔发带, 褶边发带, 蕾丝边饰发带, +336 |
| head_decoration_weight | FLOAT | 1.000–2 | — |
| ears_decoration | COMBO | -- | 15 options: --, random 🎲, 耳环, 十字耳环, 水晶耳环, 花耳环, +9 |
| ears_decoration_weight | FLOAT | 1.000–2 | — |
| neck_decoration | COMBO | -- | 138 options: --, random 🎲, 颈部饰品, 黑色颈圈, 领巾, 红领巾, +132 |
| neck_decoration_weight | FLOAT | 1.000–2 | — |
| chest_decoration | COMBO | -- | 6 options: --, random 🎲, 中间一朵花, 中间一颗宝石, 中间一颗钻石, 中间一颗水晶 |
| chest_decoration_weight | FLOAT | 1.000–2 | — |
| waist_decoration | COMBO | -- | 123 options: --, random 🎲, 腰带, 红色的腰带, 绿色系带, 黄色系带, +117 |
| waist_decoration_weight | FLOAT | 1.000–2 | — |
| arms_decoration | COMBO | -- | 49 options: --, random 🎲, 长袖, 短袖, 宽袖, 振袖, +43 |
| arms_decoration_weight | FLOAT | 1.000–2 | — |
| hands_decoration | COMBO | -- | 133 options: --, random 🎲, 手镯, 花手镯, 带钉手镯, 腕饰, +127 |
| hands_decoration_weight | FLOAT | 1.000–2 | — |
| legs_decoration | COMBO | -- | 124 options: --, random 🎲, 腿环|袜带, 吊带袜的吊带, 大腿绑带, 大腿缎带, +118 |
| legs_decoration_weight | FLOAT | 1.000–2 | — |
| feet_decoration | COMBO | -- | 10 options: --, random 🎲, 袜带, 鞋子上一朵花, 鞋子上镶嵌一个宝石, 鞋子上镶嵌一个水晶, +4 |
| feet_decoration_weight | FLOAT | 1.000–2 | — |
| seed | INT | 00–18446744073709550000 | — |
| enable | BOOLEAN | true | — |
| preset_prompt | STRING | — | |
| input_promptopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |