SMP · Outfit Combiner (legacy)
Resolving #primary# and friends in the SMP outfit dict
- outfit_raw
- color_palette
- outfit_dict
- summary
If you've used the pack's plain-text Outfit Generator, you know the color tag trick: prompts come out with #primary#, #accent#, #neutral# placeholders that get swapped for real color names later. The SMP Outfit Combiner is that same trick, dict-native. It takes the OUTFIT_DICT_RAW from SMP · Outfit Generator, resolves every #primary# / #secondary# / #accent# / #neutral# / #metallic# token inside each garment's prompt_fragment using the supplied palette, and stamps each garment with a color_resolved field based on its color_role.
The color-coordination angle is what makes it worth caring about. Generate a palette once, feed it to both this and the Location Combiner, and every garment and every bit of scene lighting comes out speaking the same color language. That's the whole consistency thesis of the SMP pipeline in one wire.
How it works
Same architecture as its location sibling. It deep-copies the input OUTFIT_DICT_RAW (no mutation), builds a substitution table from the palette's garment colors and pre-built raw tokens, then replaces tokens per garment fragment. It also sets color_resolved on each garment from its assigned color_role - so downstream you can tell which garment ended up primary, which ended up accent, without re-parsing prose. If the outfit didn't carry a color_tone and the palette has one, it inherits it.
The two inputs that matter
outfit_raw- from SMP · Outfit Generator.color_palette- from SMP · Color Generator.
Two inputs, two outputs. It's the definition of a glue node, and it's the node that makes the outfit dict usable.
Outputs
outfit_dict- the resolved dict. Wire it into SMP · Clothing Builder or straight into the Structured Prompt Assembler.summary- verification string; check it in a ShowText when a garment looks off.
Install
Nothing extra. Base pack install only - no models, no extra pip:
cd ComfyUI/custom_nodes
git clone https://github.com/ping1979ping/comfyui-FVMtools
Restart, done.
Common issues
Leftover tokens mean the palette didn't carry the role colors the outfit expects - usually because the palette was generated with fewer colors than the outfit's roles require, or the Color Generator isn't wired in. One gotcha specific to this node: it resolves role tokens (#primary#, #accent#...), so if you've customized an outfit list to use positional #color3#-style tags instead, make sure the palette's raw_tokens cover those too.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| outfit_raw | OUTFIT_DICT_RAW | — | |
| color_palette | COLOR_PALETTE_DICT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| outfit_dict | OUTFIT_DICT | — |
| summary | STRING | — |