Nodes/ComfyUI-OC-Generator/OC Outfit Waist Part
ComfyUI Node

OC Outfit Waist Part

Corsets, belts, and waist capes, without fighting the tag list

By Zhuozhuo-219·Created 3 months ago·Updated 2 months ago· 0
OC Outfit Waist Part
    • oc_part
    • prompt_preview
    • debug_text
    group__all_groups__
    modeunset
    option腰部 | 腰围夹克 -> acket
    color_roleauto
    seed0

    Want your character in a corset, a maid apron, or a bow tied at the waist - without remembering whether the tag is waist_apron or apron_waist? That's what this node is for. OC Outfit Waist Part is the waist slot in the ComfyUI-OC-Generator outfit assembly line: pick a look from a dropdown, and it hands your prompt a correctly-spelled English tag plus structured data a downstream block can actually reason about.

    It lives in the "OC Generator/Parts" menu, and it's one of thirteen slot nodes (upper, outer, lower, legwear, footwear, neckwear, handwear, waist, headwear, facewear, jewelry, decoration) that all feed the same thing: OC Character Outfit Block. That block stitches every connected slot into one outfit prompt fragment and hands it to OC Generator, which merges all your blocks into the positive prompt that goes into your CLIP Text Encode. So a part node on its own does nothing visible - it only earns its keep once you wire its oc_part output into a Character Outfit Block's waist_part socket.

    How it picks a tag

    Under the hood the node reads a catalog built from the pack's bundled tag data (Chinese labels plus their English booru prompts, e.g. 腰部 | 围裙 -> apron). The waist catalog is small - twelve options including corset, girdle, loincloth, sweater around waist, and waist cape. You get three controls that matter:

    • mode - unset emits nothing (the outfit block skips the slot entirely), fixed uses whatever option you selected, randomize samples from the current pool.
    • option - the static dropdown listing all twelve waist options.
    • group - filters to one subgroup (here just 腰部, or __all_groups__).

    Two optional inputs do the interesting work. color_role tells the Character Outfit Block how this part should consume the global palette: auto means "assign by slot," and the pack's default for the waist is accent - so if you've connected an OC Palette Block, a waist part will automatically get your accent color prepended ("red corset"). seed makes randomize reproducible.

    The trap in the dropdown

    The one thing that bites people: the option dropdown is static and never shrinks, even when you pick a group. If your selected option isn't in the current group, execution silently falls back to the first valid item in that group. You won't notice until you read the third output, debug_text, which helpfully prints requested option not in current group; fallback applied. If an outfit suddenly features an unsolicited loincloth, that's where to look.

    Outputs, for completeness: oc_part (the structured part data, OC_PART_OUTFIT_WAIST), prompt_preview (the resolved tag), and debug_text (what actually got selected and why).

    Install and requirements

    There are no models to download and no heavy dependencies - the pack's requirements.txt explicitly declares zero standalone PyPI packages. Install from ComfyUI Manager (search "ComfyUI-OC-Generator") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Zhuozhuo-219/ComfyUI-OC-Generator
    

    Then restart ComfyUI. Because this pack is just JSON catalogs plus Python, it's a genuinely light add - and remember it's a prompt-builder, not a generator, so pair it with an anime SDXL checkpoint (Illustrious, NoobAI, Pony) where comma-separated booru tags still speak the model's language.

    CategoryOC Generator/Parts

    Inputs (5)

    NameTypeDefaultDescription
    groupCOMBO__all_groups__Limit the part to one subgroup inside this slot. The option dropdown is still static in the UI.
    modeCOMBOunsetunset emits no prompt. fixed keeps the selected option. randomize samples within the current slot pool.
    optionCOMBO腰部 | 腰围夹克 -> acketStatic 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_roleoptCOMBOautoHow this part should consume the global palette. auto lets Character Outfit Block assign a role by slot.
    seedoptINT00–4294967295Seed used by randomize mode for reproducible part selection.

    Outputs (3)

    NameTypeDescription
    oc_partOC_PART_OUTFIT_WAISTStructured local part data for Character Outfit Block.
    prompt_previewSTRINGThe prompt fragment resolved by this part node.
    debug_textSTRINGExecution details for slot filtering and random selection.