Color Match Combine Presets (Badman)
Average several color-match presets into one
- name
- path
This one only makes sense once you already know its companion node. This pack's Color Match node lets you learn a color-drift correction from a reference pair and save it as a named preset. Combine Presets is the next step: take several of those saved presets and average them into a single new one - a "universal" correction built out of several specific ones, rather than picking just one and hoping it generalizes.
Why you'd want an averaged preset
Say you're correcting color drift across a project with multiple characters, each with their own drifted-versus-clean reference pair, each saved as its own Color Match preset. Any single one of those presets is tuned to that one character's palette - apply the preset learned from a pale character's portrait to a much darker-skinned character and it can visibly overcorrect. Combine Presets lets you fold several character-specific presets into one blended correction that's less overfit to any single reference, closer to a general "this project's color drift" fix than any one pair alone could give you. It's the same logic as averaging several calibration measurements instead of trusting one.
Inputs and outputs
Up to ten preset slots - preset_1 through preset_10 - each an enum populated from the presets you've already saved via Color Match. Per the pack's own description, you need at least 2 and can use up to all 10; leave the ones you're not using at whatever their default is. save_as and overwrite work exactly like they do on Color Match: name the combined preset and decide whether it's allowed to replace an existing one of that name.
The one hard rule, stated plainly in the README: all presets you combine must share the same method. Color Match presets are learned under either reinhard or hist, and those are different mathematical transforms - averaging a reinhard-learned preset with a hist-learned one doesn't produce a sensible middle ground, it produces nonsense. Build your preset library with a consistent method in mind if you're planning to combine any of them later.
Two outputs, both STRING: name and path - confirming what the combined preset got saved as and where. This node is_output_node, meaning it's meant to be a terminal step in the graph - its job is writing the combined preset to disk, not passing an image forward.
Installing it
ComfyUI Manager: search ComfyUI-BadmanNodes, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/MariusKM/ComfyUI-BadmanNodes. No dependencies beyond the pack itself - this is preset file management, not inference.
Where people get burned
Method mismatch is, again, the thing to check first if a combined preset looks wrong - it's an easy trap to fall into once you've built up a few presets over time and forgotten which method each one used. Second, this node only combines presets that already exist; it doesn't help you build the individual presets in the first place, so treat it as a finishing step after you've generated a handful of reference-pair corrections with Color Match, not a starting point. And because it's an averaging operation, a combined preset can't be "more correct" than its inputs - if two of the presets you feed in were themselves poorly learned (say, from a reference pair with barely any actual drift, or one with a genuinely wrong target color), averaging them in dilutes your better presets rather than canceling out the bad one. Curate what goes into the combine, don't just throw in everything you've saved.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| preset_1 | COMBO | 1 options: anti-terracotta | |
| preset_2 | COMBO | 1 options: anti-terracotta | |
| preset_3 | COMBO | 1 options: anti-terracotta | |
| preset_4 | COMBO | 1 options: anti-terracotta | |
| preset_5 | COMBO | 1 options: anti-terracotta | |
| preset_6 | COMBO | 1 options: anti-terracotta | |
| preset_7 | COMBO | 1 options: anti-terracotta | |
| preset_8 | COMBO | 1 options: anti-terracotta | |
| preset_9 | COMBO | 1 options: anti-terracotta | |
| preset_10 | COMBO | 1 options: anti-terracotta | |
| save_as | STRING | — | |
| overwrite | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| name | STRING | — |
| path | STRING | — |