SMP · Color Generator (dict) (legacy)
A color palette as a typed dict, with atmosphere tokens — the SMP color generator
- color_palette
- summary
FVM_SMP_ColorGenerator is the dict-emitting version of the pack's color palette generator, built for the legacy StructPromptMaker pipeline. Same underlying color-theory algorithm as FVM_ColorPaletteGenerator - same harmony types, same style presets, same seed-driven reproducibility - but instead of a palette_string and a swatch, it outputs a typed COLOR_PALETTE_DICT that SMP's combiners consume directly. If you're on an SMP workflow, this is how colors enter it.
The reason it exists as a separate node is the data shape. Where the modern color node hands you color names for a prompt string, this one produces a structured document with:
- Garment role colors - colors assigned to outfit roles (primary, secondary, accent, and so on) that the SMP OutfitCombiner substitutes into garment prompts.
- Atmosphere tokens -
ambient_lightandshadow_toneentries derived from the same palette, which the LocationCombiner uses to write scene lighting ("amber light, warm shadows") that matches the wardrobe colors. That's the genuinely nice touch: the palette drives both the clothes and the light, so a character doesn't end up in a crimson dress under blue moonlight. - A
raw_tokenssubstitution map - the internal token→color mapping both combiners apply when they resolve prompts.
Inputs and outputs
Inputs are the familiar color knobs: seed, num_colors (2–8), harmony_type (auto/analogous/complementary/split_complementary/triadic/tetradic/monochromatic), style_preset (the same 14), vibrancy, contrast, warmth. Outputs: color_palette (the typed dict - wire it into the SMP OutfitCombiner and LocationCombiner) and summary (a human-readable string of what the palette resolved to, for sanity checks without a ShowText).
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/ping1979ping/comfyui-FVMtools
No extra dependencies. Restart ComfyUI; it's under FVM Tools/SMP/Generators.
The legacy framing
This whole SMP branch is superseded by the JB suite, and the author says so in the README. JB · OutfitBlock and JB · LocationBlock fold color generation into a single resolved-JSON node with none of the dict ceremony - for new work, use those. Where this node (and SMP generally) keeps value is the atmosphere token system: the modern blocks bake colors into the outfit but don't export an ambient_light/shadow_tone pair for the scene. If you want a palette that coordinates garment colors with scene lighting in one shot, that's a genuine SMP-only feature worth keeping in mind. Just know you're committing to the whole dict-pipeline stack to use it.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| num_colors | INT | 52–8 | — |
| harmony_type | COMBO | auto | 7 options: auto, analogous, complementary, split_complementary, triadic, tetradic, +1 |
| style_preset | COMBO | general | 14 options: beach, casual_daywear, cyberpunk_neon, earthy_natural, evening_gala, festival, +8 |
| vibrancy | FLOAT | 0.500–1 | — |
| contrast | FLOAT | 0.500–1 | — |
| warmth | FLOAT | 0.500–1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| color_palette | COLOR_PALETTE_DICT | — |
| summary | STRING | — |