Load Styles CSV
Bring your A1111 prompt styles into ComfyUI without retyping a single one
- positive prompt
- negative prompt
If you spent a couple of years in the Automatic1111 webui, you probably left it with a styles.csv full of saved prompt combos - every look you'd ever dialed in, sitting in a file in A1111's root folder. Then you switched to ComfyUI, and suddenly none of that followed you. Load Styles CSV is the node that pulls it across: point it at your styles file, pick a name from a dropdown, and it hands you back the positive and negative prompts as two strings ready to feed a CLIPTextEncode.
That's the whole pitch, and the honest framing is that this is a migration tool, not a daily driver. The "move my A1111 styles over" wave was very real through 2023 and early 2024 and has since gone quiet, because most people either migrated or never had the file in the first place. But if you do have a hard-won styles collection, this is the least-effort way to keep it useful. No API, no model downloads, no dependencies beyond Python's standard library - the entire pack is one small, MIT-licensed Python file.
How it works
At load time the node reads styles.csv from the ComfyUI root directory - the folder where main.py lives, not custom_nodes. It skips the header row, then splits each line into name, positive, negative using a quote-aware CSV parser, so commas inside quoted prompt text don't break things. The style names become the dropdown options; selecting one outputs its prompt pair.
The file format is exactly what A1111 wrote:
name,prompt,negative_prompt
"Professional Portrait","portrait photography, professional lighting, sharp focus","ugly, deformed, extra limbs"
"Golden Hour","landscape photography, golden hour, wide angle","people, buildings, urban"
The one mechanic worth understanding before it confuses you: the dropdown is populated once, when the node class loads. Edit the CSV while ComfyUI is running and the dropdown will not magically update - you have to hit the Refresh button (or restart ComfyUI) to repopulate it.
The inputs and outputs that matter
Two inputs, and you'll mostly touch one.
- styles (required) - the dropdown of style names from your CSV. This is all you set on a normal day.
- csv_file_path (optional) - defaults to
styles.csv. You can point it at a custom file instead: relative paths resolve from the ComfyUI root (my_styles/portraits.csv), or you can pass an absolute path. If the style you selected isn't in the custom file, it falls back to the defaultstyles.csv- handy for keeping one dropdown that spans several themed files.
Outputs are exactly two STRING values, named like the author meant them: positive prompt and negative prompt. Wire them into the positive and negative conditioning inputs of a CLIPTextEncode node and you've got your A1111-style presets in a ComfyUI graph.
Installing it
Easiest route is ComfyUI Manager - search for "Styles CSV Loader" and click install. Or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader
Then restart ComfyUI. There's no requirements.txt to run and no models to fetch - the pyproject lists only optional test tooling. That makes it one of the rare custom nodes you can install and genuinely forget about.
The gotchas that will actually bite you
- Wrong file location is the classic fail. The node looks for
styles.csvin the ComfyUI root, alongsidemain.py- not incustom_nodes, not in the pack's own folder. Miss that and you'll see the tell: the dropdown shows a single option reading "Error loading styles.csv, check the console", which is literally what the code returns when the file isn't found. That's also why that odd entry shows up in the node's schema - it's the error placeholder, not a real style. - Refresh after editing. Save your CSV, then hit Refresh in ComfyUI before you hunt for the new style name. The enum is frozen from import time.
- The CSV has to be well-formed UTF-8 with all three columns. A row missing the negative column will throw an exception that gets caught and dumps the whole thing back to the error placeholder. Commas inside quotes are fine; stray unquoted commas are not.
The usual custom-node caution applies here as it does everywhere in the ecosystem: this runs arbitrary Python with your user privileges, so it's worth knowing the pack is a single small open-source file with zero network calls. That's about as safe as custom nodes get - but the reflexive "have a look before you install" habit is a good one regardless.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| styles | COMBO | 1 options: Error loading styles.csv, check the console |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive prompt | STRING | — |
| negative prompt | STRING | — |