Nodes/comfyui-fvmtools/SMP · Outfit Generator (dict) (legacy)
ComfyUI Node

SMP · Outfit Generator (dict) (legacy)

An outfit as structured data, not just a sentence

By ping1979ping·Created 5 months ago·Updated about a month ago· 0
SMP · Outfit Generator (dict) (legacy)
    • outfit_raw
    • summary
    outfit_set
    seed0
    style_presetgeneral
    formality0.50
    coverage0.50
    enable_headwearfalse
    enable_toptrue
    enable_bottomtrue
    enable_footweartrue
    enable_outerwearfalse
    enable_accessoriesfalse
    enable_bagfalse
    print_probability0.30
    text_modeauto
    overrides

    The pack's headline Outfit Generator produces a plain text prompt. This one - the "(dict)" variant - produces the same thing as structured data: an OUTFIT_DICT_RAW where every garment is its own record with a name, fabric, color_role, a region hint, and a prompt_fragment still full of #primary#-style color tokens. Same engine, same outfit_lists/ data as the non-dict version; the difference is the shape it hands downstream, which is what lets the SMP pipeline route each garment to a specific region of the image later.

    446 outfit sets at last count, scanned from the pack's outfit_lists/ directory - business, casual, sheer/layered, aerobic sub-themes, all the way to female_lingerie. And it's seed-controlled, so the same seed gives the same outfit every run. For reproducible character styling across a batch, that's the whole game.

    How it works

    It wraps core.outfit_engine.generate_outfit_records and adds per-slot color roles plus region hints - including a sam_class_hint, so a top knows it maps to SAM3's upper_clothes class downstream. Each garment slot is gated by an enable toggle and filtered by the formality and coverage sliders; print_probability and text_mode control whether garments get prints or text decorations.

    Inputs that matter

    • outfit_set - which of the ~446 sets to draw from.
    • seed - reproducible outfits.
    • formality / coverage - the style sliders (0.0–1.0).
    • The enable_* toggles - top, bottom, footwear default on; headwear, outerwear, accessories, bag default off.
    • overrides (optional) - a manual bypass string, same idea as the text generator's override.

    Outputs

    • outfit_raw - wire it into SMP · Outfit Combiner.
    • summary - a string describing what was generated.

    Install

    Zero extra dependencies. The SMP dict pipeline uses numpy and pydantic 2, both already in the ComfyUI venv:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ping1979ping/comfyui-FVMtools
    

    Restart and you're live.

    Common issues

    An outfit that ignores your formality slider usually means the set you picked simply doesn't have garments in that range - some sets are single-tone. And the gotcha that trips everyone migrating from the text generator: this node does not resolve colors. The tokens stay in the fragments by design, and the Outfit Combiner after it is what spends them. Wire the combiner or you'll be feeding literal #primary# text to your encoder.

    CategoryFVM Tools/SMP/Generators

    Inputs (15)

    NameTypeDefaultDescription
    outfit_setCOMBO395 options: business_female2, female/athleisure/general, female/athleisure/hot_pilates, female/athleisure/hybrid_athflow, female/athleisure/low_intensity_walk, female/athleisure/outdoor_trail, +389
    seedINT00–18446744073709550000
    style_presetCOMBOgeneral14 options: beach, casual_daywear, cyberpunk_neon, earthy_natural, evening_gala, festival, +8
    formalityFLOAT0.500–1
    coverageFLOAT0.500–1
    enable_headwearBOOLEANfalse
    enable_topBOOLEANtrue
    enable_bottomBOOLEANtrue
    enable_footwearBOOLEANtrue
    enable_outerwearBOOLEANfalse
    enable_accessoriesBOOLEANfalse
    enable_bagBOOLEANfalse
    print_probabilityFLOAT0.300–1
    text_modeCOMBOauto4 options: auto, quoted, descriptive, off
    overridesoptSTRING

    Outputs (2)

    NameTypeDescription
    outfit_rawOUTFIT_DICT_RAW
    summarySTRING