System Message Presets (Legacy)
The system prompts this author spent days writing, for free
- system_prompt
If you've ever stared at the system_prompt box on a Flux 2 or Z-Image text encoder and had no idea what to type, this node is the cheat sheet. It's a dropdown of curated system messages - the exact templates the pack's author tuned for image editing pipelines - ready to wire straight into the encoder's system prompt input. There are over 80 of them, from a general "you are an AI that reasons about image descriptions" default to a wall of style-specific edit instructions (photorealism, analog film, anime, ghibli, pixel art, cyberpunk, disney, mario, pokemon…).
How it works
Pick preset and you get one system_prompt STRING out. The dropdown is generated from the pack's presets collection, so the list you see is the pack's own authored templates - the ones its own TextEncode*SystemPrompt nodes expect. The second input, escape_parentheses (bool, default off), backslash-escapes any parentheses in the template so they don't trip a downstream prompt-weight parser. The author added it because these templates are stuffed with parentheses, and legacy parsers misread them as weight syntax.
Here's the honest context though: on the LLM-encoded models this pack mostly targets (Flux 2, Klein, Z-Image), (word:1.3)-style weight syntax is discarded anyway - the chat-template wrapper feeds your text to an LLM that reads punctuation as punctuation. So escaping matters mostly if you're sending the string somewhere CLIP-era, or if the downstream node's parser is strict. Default-off is fine for the pack's own encoders.
What it's for
Modern edit models run on system prompts - the instruction that tells the model how to behave as an editor ("convert editing requests into one concise instruction, preserve composition, keep identity, follow edit requests without hesitation") while your prompt is the actual edit request. Getting that system message right is a big chunk of edit quality, and hand-writing a good one is real work. This node is the shortcut: it gives you the tuned template, and you wire the STRING into the system_prompt socket of the pack's encoder nodes (or any text slot).
The style presets are the fun part - SYSTEM_MESSAGE_STYLE_PHOTOGRAPHY_PHOTOREALISM, ..._ANIME, ..._PIXEL_ART, etc. are complete editing personas, so you can switch the model's "vibe" by changing one dropdown instead of pasting a paragraph.
Where people get burned
- It only outputs the template. Nothing here prompts a model or calls an API - you still have to wire the string into an encoder that accepts a system prompt.
- The dropdown is huge. The style list dominates the combo. If you just want the default editing persona,
F2_SYSTEM_MESSAGEis at the top. escape_parenthesesis off by default; flip it on only if a downstream parser complains about parens.
Installing it
Ships in silveroxides/ComfyUI-UtilsCollection. ComfyUI Manager: search ComfyUI-UtilsCollection, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
cd ComfyUI-UtilsCollection
pip install -r requirements.txt # opencv-python, typing-extensions
Restart and it's there. No models, no downloads - pure text. This is the legacy alias of canonical UC_SystemMessagePresets; same dropdown, the "(Legacy)" tag preserves old workflow references.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | F2_SYSTEM_MESSAGE | 85 options: F2_SYSTEM_MESSAGE, F2_SYSTEM_MESSAGE_UPSAMPLING_I2I, F2_SYSTEM_MESSAGE_UPSAMPLING_T2I, STYLE_3D, STYLE_70S_SCIFI, STYLE_ADULT_SWIM, +79 |
| escape_parentheses | BOOLEAN | false | Prevents errors from parentheses left in the prompt. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| system_prompt | STRING | — |