Nodes/comfyui-outfit/♀️ Female Outfit
ComfyUI Node

♀️ Female Outfit

The ComfyUI Female Outfit Node

By manifestationsΒ·Created about a year agoΒ·Updated 12 months agoΒ· 3
♀️ Female Outfit
    • positive_prompt
    • seed
    • negative_prompt
    • metadata
    β—„presetnoneβ–Ί
    β—„preset_colorstrueβ–Ί
    β—„avoid_termsβ–Ί
    β—„age_grouprandomβ–Ί
    β—„character_nameβ–Ί
    β—„body_typerandomβ–Ί
    β—„poserandomβ–Ί
    β—„backgroundrandomβ–Ί
    β—„racerandomβ–Ί
    β—„moodrandomβ–Ί
    β—„time_of_dayrandomβ–Ί
    β—„weatherrandomβ–Ί
    β—„color_schemerandomβ–Ί
    β—„description_stylerandomβ–Ί
    β—„creative_scalenoneβ–Ί
    β—„custom_attributesβ–Ί
    β—„seed0β–Ί
    β—„style_seed0β–Ί
    β—„seed_moderandomβ–Ί
    β—„export_presetfalseβ–Ί
    β—„lock_preset_fieldsfalseβ–Ί
    β—„enable_cachetrueβ–Ί
    β—„armrandomβ–Ί
    β—„cheeksrandomβ–Ί
    β—„earrandomβ–Ί
    β—„eyewearrandomβ–Ί
    β—„feetrandomβ–Ί
    β—„fingersrandomβ–Ί
    β—„forearmrandomβ–Ί
    β—„foreheadrandomβ–Ί
    β—„hairstylerandomβ–Ί
    β—„handrandomβ–Ί
    β—„headgearrandomβ–Ί
    β—„legsrandomβ–Ί
    β—„lipsrandomβ–Ί
    β—„neckrandomβ–Ί
    β—„noserandomβ–Ί
    β—„torsorandomβ–Ί
    β—„waistrandomβ–Ί

    If you've ever written 1girl, red dress, ankle boots, gold necklace by hand and squinted at the result, this node is aimed at you. Female Outfit (class FemaleOutfitNode, in the πŸ‘— Outfit/Female menu) is the flagship of the comfyui-outfit pack: a giant dropdown-driven prompt builder that assembles a complete character prompt - clothing, accessories, hair, pose, background, lighting, the works - without you typing more than a name.

    It's niche, but it fills a slot the ecosystem genuinely lacks. The dropdown-heavy approach shows up in community threads about modular prompt builders - people who want "a dropdown for everything" keep rediscovering packs like this one - and comfyui-outfit is the one that goes deepest on attire specifically. If your whole workflow is "generate a fashion image from scratch," it beats writing prompt templates.

    How it works

    Every dropdown you see is loaded from JSON on disk, not hardcoded: the pack ships outfit catalogs in data/outfit/female/*.json (torso, legs, feet, hands, headgear, jewelry, and so on - 20+ body parts), plus data/backgrounds.json, data/age_groups.json, data/race.json, and style lists under data/styles/. When a dropdown is set to random, the node picks from that list using a seed, then a PromptBuilder assembles the final text as labeled fragments - something like Age: adult (30-45 years), Attire: torso: red dress, legs: tights, feet: ankle boots, Pose: ..., Avoid: blurry, low-res.

    That "labeled fragments" style is the main thing to know before you use it. The output is a prompt component list, not a polished sentence. On SDXL-lineage models that's fine - tag-ish input is exactly what they want. For a model that prefers natural language (Flux-style), set description_style to flux and the builder swaps in a "natural language style" hint; it's a nudge, not a rewrite, so keep expectations realistic.

    Presets (the preset dropdown, 35 of them from the default data/presets.json) fill only fields that are empty, none, or random - anything you've explicitly chosen wins. preset_colors decides whether the preset also pins clothing colors or leaves them for the model. Flip export_preset on and it prints a JSON snippet of your current selections to the console, ready to paste back into presets.json as your own preset.

    The inputs and outputs that matter

    You can't realistically touch all ~40 inputs; here's what you'll actually set:

    • preset - none, random (pick a random preset from all of them), or a named preset like Cyberpunk or Ballerina.
    • seed / seed_mode / style_seed - seed_mode controls the main image seed (fixed, random, increment, decrement). style_seed is the clever one: set 0 to follow the image seed, or give it its own value to vary the outfit while keeping the image seed fixed - great for batch "same girl, different dress" runs.
    • avoid_terms - a comma-separated list of things you don't want (e.g. blurry, extra fingers). These get folded into the negative_prompt output alongside the pack's own baseline negatives and a few auto-generated ones (like glasses for no eyewear).
    • The attire dropdowns (torso, legs, feet, hairstyle, headgear, jewelry) - leave them on random and let the seed do the exploring.

    It returns four outputs: positive_prompt (wire into your CLIP/text encoder), seed (feed back into your KSampler so the image seed matches), negative_prompt, and metadata (a JSON dump of everything it picked - handy for logging). The seed output is worth wiring: if you leave it floating and just read the prompt, you lose reproducibility.

    Install

    Grab it via ComfyUI Manager (search "ComfyUI Outfit Selection") or:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/manifestations/comfyui-outfit.git
    

    Then restart ComfyUI. The requirements.txt is light - requests, pillow, numpy, torch - and the core outfit nodes download no model files at all. The Ollama LLM/vision nodes elsewhere in the pack are the ones that need a local model and a running Ollama server; this node is self-contained.

    Common issues

    • Preset keys get ignored with a console warning. If a preset references a key that isn't a current input (data rot after an update), it logs contains unknown keys - your preset silently half-applies. Check the warning, fix the JSON.
    • enable_cache bites you. It's on by default, and identical inputs return cached output. If you're flipping an input and "nothing changes," toggle cache off or change the seed - you're probably hitting the cache key.
    • Output reads oddly. Remember the labeled-fragment format; if your checkpoint wants comma-separated tags, the format is fine. If it wants sentences, you picked the wrong description_style.
    CategoryπŸ‘— Outfit/Female

    Inputs (39)

    NameTypeDefaultDescription
    presetCOMBOnoneChoose a preset to auto-fill fields. Use 'random' to randomly select from all cultural and themed presets!
    preset_colorsBOOLEANtrueIf OFF, preset fills only clothing types without colors (AI picks colors). If ON, uses preset colors exactly.
    avoid_termsSTRINGβ€”
    age_groupCOMBOrandom10 options: none, random, adult (30-45 years), baby (0-2 years), child (5-12 years), middle-aged (46-59 years), +4
    character_nameSTRINGβ€”
    body_typeCOMBOrandom17 options: none, random, apple, athletic, average, curvy, +11
    poseCOMBOrandom60 options: none, random, A sultry look over the shoulder with a subtle hip pop., Adjusting a stylish hat, with a sly smile that says 'I know you're looking.', Bending down slightly, looking up with a mischievous gaze., Casually leaning against a car, with the keys dangling in the hand., +54
    backgroundCOMBOrandom42 options: none, random, Ancient temple courtyard, Art gallery, Beach boardwalk, Botanical garden, +36
    raceCOMBOrandom12 options: none, random, African, Caucasian, East Asian, Latino/Hispanic, +6
    moodCOMBOrandom20 options: none, random, bright, dark, dramatic, dreamy, +14
    time_of_dayCOMBOrandom14 options: none, random, afternoon, blue hour, dawn, dusk, +8
    weatherCOMBOrandom14 options: none, random, crisp, dry, foggy, humid, +8
    color_schemeCOMBOrandom14 options: none, random, analogous, complementary, cool tones, earth tones, +8
    description_styleCOMBOrandom5 options: none, random, flux, sd3, sdxl
    creative_scaleCOMBOnone8 options: none, random, cinematic, detailed, exact, exaggerated, +2
    custom_attributesSTRINGβ€”
    seedINT00–4294967295Main seed for image generation. Controls final image output.
    style_seedINT00–4294967295Separate seed for outfit/style randomization. Use 0 to follow main seed, or set different value to vary outfit while keeping same image seed.
    seed_modeCOMBOrandomHow the main seed behaves: fixed=use exact value, random=new each time, increment/decrement=step from last value
    export_presetBOOLEANfalseβ€”
    lock_preset_fieldsBOOLEANfalseIf on, also lock non-attire style fields (pose, background, etc.) to preset values
    enable_cacheBOOLEANtrueCache outputs for identical inputs (faster repeats)
    armCOMBOrandom25 options: none, random, arm band, arm tattoo, arm warmers, armband, +19
    cheeksCOMBOrandom12 options: none, random, birthmark, cheek piercing, dimples, face paint, +6
    earCOMBOrandom33 options: none, random, bare ears, cartilage piercing, chandelier earrings, climber earrings, +27
    eyewearCOMBOrandom27 options: none, random, aviator sunglasses, butterfly glasses, cat-eye glasses, colored contacts, +21
    feetCOMBOrandom37 options: none, random, ankle boots, ankle-strap heels, ballet flats, bare feet, +31
    fingersCOMBOrandom33 options: none, random, bare fingers, birthstone ring, class ring, cocktail ring, +27
    forearmCOMBOrandom30 options: none, random, UV protection sleeve, arm guard, arm sleeve, arm warmer, +24
    foreheadCOMBOrandom28 options: none, random, bandage, bare forehead, bindi, birthmark, +22
    hairstyleCOMBOrandom43 options: none, random, Bantu knots, Dutch braid, French twist, Fulani braids, +37
    handCOMBOrandom30 options: none, random, bare hands, compression gloves, cycling gloves, disposable gloves, +24
    headgearCOMBOrandom37 options: none, random, bandana, barrette, baseball cap, beanie, +31
    legsCOMBOrandom26 options: none, random, culottes, dhoti, dirndl skirt, fishnet tights, +20
    lipsCOMBOrandom17 options: none, random, bow lips, cupid's bow, full lips, heart-shaped lips, +11
    neckCOMBOrandom32 options: none, random, amulet, ascot, bandana, bare neck, +26
    noseCOMBOrandom28 options: none, random, L-shaped nose stud, bare nose, bridge piercing, bulak, +22
    torsoCOMBOrandom41 options: none, random, blazer, blouse, bodycon dress, bodysuit, +35
    waistCOMBOrandom11 options: none, random, belt, chain belt, corset, cummerbund, +5

    Outputs (4)

    NameTypeDescription
    positive_promptSTRINGβ€”
    seedINTβ€”
    negative_promptSTRINGβ€”
    metadataSTRINGβ€”