Fans Prompt Styler Positive
Wrap your prompt in a style phrase from a CSV you can edit
- result
Fans Prompt Styler Positive is the "wrap my words in a better phrase" node. You type a prompt, pick a style from a dropdown, and it hands back your prompt nested inside whatever that style's text is. Pick "G-CloseUp" and "a close-up photo of {your prompt}," comes out the other end. It's the same trick the famous SDXL Prompt Styler pulled - a template with a {prompt} placeholder - minus the extra features, and with the style list living in a CSV you can edit yourself.
If you're on the SDXL lineage (Illustrious, NoobAI, Pony, and friends), comma-separated descriptor blocks still transfer fine, and structuring your prompt in consistent blocks is genuinely good practice - it's how the model reads your intent. A styler like this turns that habit into a one-click operation instead of something you retype every time. On newer LLM-encoded models like FLUX, plain descriptive wrappers mostly still read, just don't expect the old weighting tricks to mean anything.
How it works
The node reads styles-positive.csv from the pack's styles/ folder and turns every row into a dropdown entry. Each row is two columns: the label you see ("G-bright", "G-Photo", …) and the template text that gets injected. The mechanism, straight from the source:
- If the style's text contains
{prompt}, that placeholder is replaced with your input - that's how "a bright photo of the {prompt}," becomes "a bright photo of the [what you typed],". - If it doesn't contain
{prompt}, your prompt is simply prepended with a space:your prompt + " " + style text.
Two inputs matter: style (the dropdown, 39 choices including "None", which passes your prompt through untouched) and prompt (a multiline box where you type the subject). The single output is result, a STRING you wire into CLIP Text Encode or a concatenate node.
Editing the style list
Here's the part that beats a fixed node: styles-positive.csv is a plain two-column text file. Add a row, and your custom style appears in the dropdown after a browser refresh - no ComfyUI restart. Keep the filename exactly as-is (the code looks it up by that name), save as UTF-8, and keep the {prompt} placeholder in any row you want your text dropped into the middle of.
Install
The whole pack installs at once. ComfyUI Manager: search "ComfyUI-Fans" and install, restart, done. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/uarefans/ComfyUI-Fans
Then restart ComfyUI. No models to download, no requirements.txt - the pack is pure Python plus CSV files, so this is about as dependency-free as custom nodes get.
Troubleshooting
- Your style isn't in the dropdown: you added it to the CSV but the node's list is built when the workflow loads. Refresh the browser tab.
- Prompt text appears twice: you have a style that lacks a
{prompt}placeholder, so the node prepends instead of replacing. Add the placeholder to the row if you want replacement behavior. - Node missing in a shared workflow: install the pack via Manager; that's the standard missing-node fix.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| style | COMBO | None | 39 options: None, Positive Prompt, ------, G-bright, G-CloseUp, G-Cropped, +33 |
| prompt | STRING | Input Your Prompt Here | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| result | STRING | — |