Nodes/comfyui-a1111-styles/A1111 Styles Selector (Tags)
ComfyUI Node

A1111 Styles Selector (Tags)

Your saved styles as removable chips, not a wall of checkboxes

By azarasi3·Created 6 months ago·Updated 6 months ago· 1
A1111 Styles Selector (Tags)
    • positive
    • negative
    csv_fileNone
    selected_styles[]
    positive
    negative

    Remember the Styles dropdown in the A1111 web UI? Saved named prompt fragments - positive and negative text bundled together, applied with one click - and for years it was the easiest way to keep a personal library of looks. ComfyUI never shipped an equivalent, and the popular JSON-based Styler nodes have a real flaw: one style per node, so combining a few spawns a tree of identical boxes. This pack brings the A1111 behavior over. This is the Tags variant, and it's the compact one - a dropdown to add styles, chips to see what's active, an × to kick one out.

    So when do you pick Tags over its sibling, the CheckList node? When your stylesheet is big and your selection is small. A hundred styles as checkboxes is a wall of noise; a hundred styles behind a dropdown plus your three active chips is a tidy little node. It's the "I know roughly what I want" picker, and it auto-grows the node when you stack on more tags.

    How it works

    Both nodes share one backend class, so the mechanics are identical. You pick a stylesheet in csv_file, and the node lists every style it contains. In Tags mode you add a style through the "+ Add Style..." dropdown - it appears as a blue chip with an × on its right. Click × to remove it. The dropdown only offers styles you haven't already added, which quietly keeps duplicates out of your prompt.

    At execution time the backend loads the CSV fresh, looks up each selected style, and merges its positive and negative text into your incoming prompt, joined with clean commas. A trailing comma on your input gets stripped first, so combos like oil painting, golden hour land as one readable string instead of a wall of commas.

    Inputs and outputs that matter

    • csv_file - the dropdown of stylesheets it found. "None" means it found nothing to read. If your A1111 install is wired in via extra_model_paths.yaml, there'll be a special styles.csv (A1111) entry.
    • selected_styles - a JSON array holding the active chips. Hidden behind the scenes; the UI writes it for you and it survives workflow save/reload.
    • positive / negative - optional STRING inputs for your base prompt, merged before the selected styles' text.

    Outputs are positive and negative, both STRING - wire them into your CLIP Text Encode node's prompt inputs. If you need to add more prompt text around them, chain the output through a text-concatenation node first.

    Install

    Via ComfyUI Manager, search comfyui-a1111-styles. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/azarasi3/comfyui-a1111-styles
    

    Restart ComfyUI afterward. It's light: pinned deps are just aiohttp and PyYAML, both already present in ComfyUI, and there are no model downloads at all - it's Python plus a bit of frontend JS.

    Feeding it a stylesheet

    Two options. Reuse your real A1111 install by adding this to ComfyUI/extra_model_paths.yaml:

    a111:
        base_path: /StableDiffusion/stable-diffusion-webui/
    

    Point base_path at your webui folder and it reads that install's styles.csv directly. Or drop any CSV of your own into ComfyUI/custom_nodes/comfyui-a1111-styles/csv/ and pick it from the dropdown. Either way the format is the A1111 standard - name,positive,negative, header row skipped, entries shorter than three columns ignored.

    Where people get burned

    • The stylesheet list is cached. Drop in a new CSV and it won't appear until you click the Refresh button in the node, or restart ComfyUI.
    • Silent passthrough. If csv_file is "None" or the file's gone, the node returns your inputs unchanged. Unconfigured, not broken - easy to misread.
    • Small pack, Japanese README, no big community. Nodes 2.0 support is planned but not shipped, and the whole UI is an HTML overlay on the LiteGraph canvas. If you're on the Nodes 2.0 renderer and the chips don't draw, that's why - the workflow still runs via passthrough, you just lose the picker.
    CategoryA1111 Styles

    Inputs (4)

    NameTypeDefaultDescription
    csv_fileCOMBONone1 options: None
    selected_stylesSTRING[]
    positiveoptSTRING
    negativeoptSTRING

    Outputs (2)

    NameTypeDescription
    positiveSTRING
    negativeSTRING