OC Outfit Upper Part
The upper slot
- oc_part
- prompt_preview
- debug_text
OCOutfit Upper Part fills the upper slot of the character outfit - everything from the waist up. 73 options under the single 上衣 (tops) subcategory, which sounds narrow until you look at what's actually in there. Alongside the expected blouses, camisoles, cardigans, and T-shirts sit the tags that make this pack feel purpose-built for character art: sailor_shirt, backcutout (露背上衣), clothes_open, clothes_down (褪下衣物), clothes_removed, button_gap, cleavage_ccutout, borrowec_garments (borrowed clothes). The catalog is a proper Danbooru-style top list, not a clothing-store inventory.
It's one of the 13 part nodes that feed Character Outfit Block. Pick a top, set the mode, and the part resolves to a tag like sailor_shirt; the outfit block joins it in fixed slot order with your other garments and hands the composed outfit phrase to OC Generator.
How it works
The standard part-node controls, with the two that matter being:
mode-unset(default, emits nothing),fixed(your pick), orrandomize(seeded sample from the pool). This is the whole game: forget to change it offunsetand your character wears nothing, silently.option- the static dropdown, formatted上衣 | 水手服衬衫 -> sailor_shirt.
group filters the single 上衣 subcategory (two choices, __all_groups__ or 上衣, so it's mostly ceremony here), and the dropdown is static - it won't shrink when you change group. In a one-subcategory node like this, a group mismatch can't really happen, so the fallback behavior that nags the bigger nodes is a non-issue. randomize is deterministic (same seed, same top), and color_role defaults to auto, which maps the upper slot to primary - so with a palette connected, your top gets the palette's primary color prefixed, keeping the whole outfit coordinated.
Outputs
The standard trio: oc_part (typed OC_PART_OUTFIT_UPPER, wire it into Character Outfit Block's upper_part), prompt_preview (the resolved tag), and debug_text (mode, color role, pool index).
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Zhuozhuo-219/ComfyUI-OC-Generator
Restart ComfyUI, or use ComfyUI Manager and search ComfyUI-OC-Generator. No extra dependencies, no model files - the tag catalog ships with the repo.
Honest caveat: the pack is new and under-discussed, so don't expect a stack of community workflows to copy. The 上衣 catalog covers the common tops well and the expressive "state of clothing" tags even better, but for a specific niche garment you'll want OC Generator's prefix_prompt as the escape hatch. And seriously - check that mode isn't unset before you run.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| group | COMBO | __all_groups__ | Limit the part to one subgroup inside this slot. The option dropdown is still static in the UI. |
| mode | COMBO | unset | unset emits no prompt. fixed keeps the selected option. randomize samples within the current slot pool. |
| option | COMBO | 上衣 | 水手服衬衫 -> sailor_shirt | Static dropdown for all options in this part node. If the selected option is outside the current group, execution falls back to the first valid item in that group. |
| color_roleopt | COMBO | auto | How this part should consume the global palette. auto lets Character Outfit Block assign a role by slot. |
| seedopt | INT | 00–4294967295 | Seed used by randomize mode for reproducible part selection. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| oc_part | OC_PART_OUTFIT_UPPER | Structured local part data for Character Outfit Block. |
| prompt_preview | STRING | The prompt fragment resolved by this part node. |
| debug_text | STRING | Execution details for slot filtering and random selection. |