3way Prompt Styler
A1111-style prompt styles, split for SDXL's two text encoders
- positive prompt (g)
- supporting terms (l)
- negative prompt
If you came from Automatic1111, you remember the Styles dropdown: pick a style, and a whole bundle of prompt scaffolding - positive bits, negative bits - slaps itself around your text. This node is that, rebuilt for ComfyUI and for SDXL's two text encoders. It loads named styles from a styles.csv, then applies the chosen one to your positive, supporting-terms, and negative inputs, giving you three strings out that wire straight into an SDXL CLIPTextEncode pair.
The "3way" is the SDXL split. SDXL doesn't use one text encoder - it uses two, CLIP-G (the main positive) and CLIP-L (supporting terms), and the standard workflow conditions them separately. This node keeps your prompt in the G channel, tacks the style's L terms onto the L channel, and appends the style's negatives to your negatives. On SD1.5 you'd just use the G output.
How it works
Adapted from the Load Styles CSV node, with a couple of behavioral changes. On load, the node reads styles.csv from its own folder (that's ComfyUI/custom_nodes/ComfyUI_hus_utils/). The first line is treated as a header and skipped. Every other line has four comma-separated columns:
style name, prompt G, prompt L, negative prompt
For the chosen style, the G column is searched for the literal {prompt} placeholder. Found one? Your positive_g replaces it. No placeholder? The style's G text is prepended to your input. The L and negative columns are simply appended to your positive_l and negative inputs. The "none" style passes everything through untouched, so you can chain stylers without wrecking a base prompt.
The inputs
- styles - the dropdown. Its options come from your
styles.csv; there's exactly one option until you create the file. - positive_g - your base positive prompt, goes to CLIP-G.
- positive_l - your supporting terms, goes to CLIP-L.
- negative - your base negative.
Outputs: positive prompt (g), supporting terms (l), negative prompt - all STRING.
The gotcha: there's no styles.csv shipped
This is the one that bites everyone. The pack ships example styles.csv but no actual styles.csv, so until you create one, the dropdown literally shows "Error loading styles.csv, check the console" and nothing else. Copy the example and edit it:
cd ComfyUI/custom_nodes/ComfyUI_hus_utils
cp "example styles.csv" styles.csv
Then reload the workflow. The CSV is parsed when the node loads, not on every run, so new styles need a refresh before they show up in the dropdown. Keep the header row, keep four columns, and know that the parser handles commas inside quoted fields - so "cinematic photo of {prompt}, moody" stays one field.
Install
Via ComfyUI Manager, search "hus' utils" (pack title: hus' utils for ComfyUI). Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/hustille/ComfyUI_hus_utils
Restart ComfyUI. No requirements.txt, no pip step, no model downloads. The only file you'll ever touch is styles.csv, and you create that yourself.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| styles | COMBO | 1 options: Error loading styles.csv, check the console | |
| positive_g | STRING | — | |
| positive_l | STRING | — | |
| negative | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive prompt (g) | STRING | — |
| supporting terms (l) | STRING | — |
| negative prompt | STRING | — |