Unified Presets (Primitive)
One dropdown to rule all your prompt preset families
- preset
- escape_parentheses
If you've ever stared at three separate preset selectors - System Message, Instruct Prompt, and Bonus Prompt - and thought "why can't I just have one list?", this node is that list. It unions the presets shared across those three families into a single dropdown and passes the choice through as a primitive value. It's the "primitive" version of the pack's preset system: no encoding, no template logic, just a clean string out the door.
What it is
A passthrough/selector node. The dropdown is populated at load time by intersecting the preset keys from UC_SystemMessagePresets, UC_InstructPromptPresets, and UC_BonusPromptPresets - the presets that exist in all three families, like the STYLE_3D default. Pick one and the node forwards it as an "any" type, so you can wire it into whatever wants it: a text encode, a textgen node, a concatenator.
How it works
Mechanically it's trivial - select a preset, pass the string through, also pass the escape_parentheses boolean through. That's the whole job, and it's deliberately trivial. The value is organizational: instead of remembering which family holds which preset, you get one merged list, and the same preset feeds any downstream consumer because the output type is deliberately loose (*).
escape_parentheses deserves a moment because it looks out of place on a selector. It's a companion flag that exists so you can strip weight-syntax parentheses from a preset string before it hits something that would choke on them - like an LLM-encoded prompt where (word:1.4) is literal text. Wire both outputs together into whatever consumes them and you've got a safe preset pipeline.
The inputs and outputs
- preset - the merged dropdown.
- escape_parentheses - toggle, passed through.
- Outputs: preset (any type) and escape_parentheses (BOOLEAN).
Installing it
Part of ComfyUI-UtilsCollection:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart ComfyUI, or install via ComfyUI Manager (search "ComfyUI-UtilsCollection"). No extra dependencies beyond the pack's minimal opencv-python / typing-extensions, and it needs a current ComfyUI build since the pack uses the modern Core node API.
Common issues
Two things to know. First, the dropdown only contains presets shared by all three source families - if you're hunting for a preset that lives in just one family, it won't be here; use the dedicated preset nodes for those. Second, because the output is an untyped *, you don't get the type safety that a STRING output gives - if a downstream node refuses the connection, wire the output through a text converter or a string primitive. And if the list looks different after an update, that's expected: preset families change, and the intersection changes with them.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | STYLE_3D | 82 options: STYLE_3D, STYLE_70S_SCIFI, STYLE_ADULT_SWIM, STYLE_ADVENTURE_TIME, STYLE_ANIME, STYLE_BOBS_BURGERS, +76 |
| escape_parentheses | BOOLEAN | false | Prevents errors from parentheses left in the prompt. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| preset | * | — |
| escape_parentheses | BOOLEAN | — |