Prompt Style Selector
The A1111 prompt-style dropdown, rebuilt for ComfyUI
- positive
- negative
If you ever used A1111 or Forge, you remember the Styles dropdown: pick "DreamShaper 8 (real)" and it silently prepends a pile of quality tags to your prompt and dumps a matching pile into your negative. Prompt Style Selector is that feature, rebuilt as a ComfyUI node. You feed it your positive and negative text, pick a style, and it hands back both strings, ready for your CLIP Text Encode nodes.
It's pure text preprocessing. No API, no model files, no style transfer - despite the name, it's not a style model and needs nothing downloaded. What it gives you is one searchable dropdown that injects a reusable chunk of prompt boilerplate, which is exactly the thing people coming from the form-UI world miss most in ComfyUI.
How it works
The node reads style definitions from .csv or .xlsx files in the pack's styles/ folder. Each row needs name, prompt, negative_prompt, description, and category columns. The sample file ships 72 styles, mostly aimed at SD 1.5 checkpoints, so on day one the dropdown is already populated.
The one keyword that matters is {prompt}. When a style contains it, that token gets replaced by your actual prompt; when it doesn't, your text just gets appended after a comma. So "Comic drawing of a {prompt}, epic, ..." becomes "Comic drawing of a robot samurai, epic, ...". The replacement is case-insensitive after a recent fix, so {Prompt} works too.
There's real polish under the hood: the dropdown is searchable (a small JS extension swaps the stock combo for a filterable popup), switching csv_file refetches the style list through a tiny API route, and the node marks itself changed whenever the CSV on disk changes - so editing a styles file doesn't force a ComfyUI restart.
The inputs that matter
positive/negative- your raw prompt text. Pipe your existing positive and negative straight in.csv_file- which stylesheet instyles/to use.style_name- the style itself.
Outputs are positive and negative strings: wire them into the two CLIP Text Encode nodes feeding your KSampler's positive and negative conditioning. Pick "none" and it just passes your text through unchanged.
Installing
Via ComfyUI Manager: search "ComfyUI Config Presets" and hit install. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/pooria98/ComfyUI-Config-Presets.git
then restart ComfyUI. Requirements are light - pandas>=2.0 and openpyxl>=3.1 for reading CSV/XLSX:
python -m pip install -r custom_nodes/ComfyUI-Config-Presets/requirements.txt
One wrinkle: the README's manual-install pip example has a copy-paste folder typo in it (ComfyUI-style-selector). Your folder is ComfyUI-Config-Presets. No checkpoints, no model downloads.
Gotchas
The bundled styles are SD 1.5 flavored - "masterpiece, best quality, 8k" tags that do almost nothing on SDXL and are pure noise on Flux. Don't treat the sample as a recommendation; the real value is dropping your own CSV into styles/ so one style wrapper stays consistent across your whole graph. And be honest about the negative side: that wall of "worst quality, bad anatomy, ..." boilerplate is mostly placebo at the CFG values SD 1.5 actually uses. The genuinely useful part is consistent positive framing plus a reusable negative you trust.
If the dropdown comes up empty, your CSV's column headers don't match name/prompt/negative_prompt - the parser is strict about that. If you get an import error mentioning pandas, you skipped the requirements step.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | STRING | — | |
| negative | STRING | — | |
| csv_file | COMBO | 1 options: model_presets_sample.csv | |
| style_name | COMBO | 72 options: AstraAnime, CitrineDreamMix, Comic Mix NSFW, Cute Yuki Mix Adorable, Dark Sushi 2.5D, Dark Sushi Mix, +66 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | STRING | — |
| negative | STRING | — |