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

SMP · Outfit Combiner (legacy)

Resolving #primary# and friends in the SMP outfit dict

By ping1979ping·Created 5 months ago·Updated about a month ago· 0
SMP · Outfit Combiner (legacy)
  • 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.

CategoryFVM Tools/SMP/Combiners

Inputs (2)

NameTypeDefaultDescription
outfit_rawOUTFIT_DICT_RAW
color_paletteCOLOR_PALETTE_DICT

Outputs (2)

NameTypeDescription
outfit_dictOUTFIT_DICT
summarySTRING