Neons Style Explorer
3,015 Style Prefixes in One Dropdown
- positive
- negative
- debug
Every checkpoint has a style vocabulary and almost none of it is documented. The anime bases solved this with artist-tag explorers, and the advice there is consistent: treat style discovery as setup work, find a dozen looks you like, prompt from those. Neons Style Explorer is that idea as a ComfyUI node - 3,015 style entries, a dice to roll them, and a batch mode that generates previews of the lot.
What it actually is
Text in, text out. It renders nothing, touches no sampler, and sits in front of your CLIP Text Encode handing over a prompt you didn't write. Each entry is a style prefix and nothing else - how the picture is rendered, closing with its medium: ... anime style image, ... photograph style image. No subject, no instructions, no fighting your text. The pack lints for that rule.
The catalog is 1,419 hand-written clauses plus 1,596 imported from ThetaCursed's Krea 2 style collection (MIT, credited in THIRD-PARTY-NOTICES.md), across nine families: anime & manga, photography & film, traditional painting, 3D & games, illustration, comics & print, design & aesthetics, experimental & material, western animation. Then 97 formats and 51 finishes on separate axes.
How the composing works
One composer does the work, and the node's own panel calls it over HTTP - so what you see previewed is exactly the string you'll get. With style_position on start:
masterpiece, best quality, Anime broadcast still: flat cel colouring in hard shadow bands, simplified on-model faces, painted matte background, mild compression softness and grain, anime style image. a woman on a fire escape at night
quality always sits at the very front and your prompt follows the clause. Only the leading style contributes a closing medium - extras get theirs stripped, so you never get two mediums in one prompt. Stack three via style / style_2 / style_3, joined by style_mix: blended with, mixed with, layered over, then also. custom_style takes your own entries and stays empty until you write one.
style_weight surprises people. 1.0 is neutral; above it, natural mode wraps the clause as (clause:1.5) and the booru modes wrap every tag as (tag:1.5). Colons inside the clause are rewritten to hyphens first so CLIP doesn't read them as nested weights. output_format picks natural, danbooru or natural + danbooru, tag_separator applies in the booru modes only, and include_style_negative (on by default) merges the style's own avoid terms into your negative.
The controls that matter
prompt,quality,negative- scene, themasterpiece, best qualitybox, your avoid terms. Put quality tags inqualityso they stop drifting.style- the dice lives at the top.roll_scopesets the pool (everything, the primary style's family, favourites, recent, or by preview state) androll_seedseeds it; use the control-after-generate widget, set to randomize. 0 also rolls fresh each run.crawl+crawl_missing_only+auto_gallery- the batch machine. Crawl walks the dropdown one entry per queued run, starting where you parked it.crawl_missing_onlyon,auto_galleryonevery, queue a few hundred: the gallery fills itself in order.
Outputs
positive to your positive CLIP Text Encode, negative to the negative one. debug is worth wiring to a Preview Text node while you learn the thing - chosen styles, medium, weight, crawl state, both composed strings.
Install
Manager: search Neons Style Explorer, install, restart ComfyUI. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Neon-Sparks/ComfyUI-NeonsStyleExplorer
Restart the process, not just the browser. The front end talks to the node over HTTP routes registered at startup, so a refresh loads the new interface but not the routes - and half the controls will tell you the server hasn't loaded this version. No extra dependencies: Pillow and numpy, both already in ComfyUI.
Where people get burned
The weighting slider does nothing on LLM-encoded models. Krea 2, Qwen-Image, Anima, the Flux 2 family: attention weights are discarded, so your parentheses and :1.5 arrive as literal punctuation - worse than not weighting. Leave style_weight at 1.0 there and say it in words.
The Extra family reads differently. Those 1,596 entries are flat descriptor lists, not written clauses, and their booru tags are the same descriptors. Filter by family or source when you want only the written catalog.
custom_style stays empty until you create one, and you'll want Refresh Node Definitions after the first.
Three things that look like bugs and aren't. The dropdown moving on its own means crawl is on. Favourites or recents empty makes the dice fall back to the whole catalog rather than doing nothing. A deleted style is hidden, not destroyed - Restore deleted brings it back. And the gallery ships empty; no previews are bundled, that part is on you.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Your subject and scene. | |
| quality | STRING | Quality prefix, kept at the very front of the prompt (e.g. masterpiece, best quality, highres). | |
| negative | STRING | Your avoid terms. Style negatives are merged in when enabled. | |
| style | COMBO | None | Main style. Pick the dice entry to roll a random style each run. |
| style_2 | COMBO | None | Optional second style. |
| style_3 | COMBO | None | Optional third style. |
| custom_style | COMBO | None | Your own styles only — anything you wrote in the editor. Composes as a fourth style slot. Empty until you create one; use Refresh Node Definitions after adding one. |
| style_mix | COMBO | blended with | How extra styles are joined in natural language. |
| format | COMBO | None | Optional picture format (sheet, cover, contact sheet, widescreen...). |
| finish | COMBO | None | Optional finish qualifier layered on top of the style. |
| output_format | COMBO | natural | natural = sentences. danbooru = booru tags. both = sentences plus a tag line. |
| style_position | COMBO | start | Put the style clause in front of your prompt or after it. |
| include_style_negative | BOOLEAN | true | Merge the style's own avoid terms into the negative output. |
| style_weight | FLOAT | 1.501–5 | How hard the style pushes. 1.0 = no emphasis. Wraps the style clause as (clause:weight) in natural mode and every style tag as (tag:weight) in booru modes. |
| tag_separator | COMBO | comma+space | Booru modes: how tags are joined. |
| crawl | BOOLEAN | false | Walk the main style dropdown one entry per queued run instead of rolling, so a batch fills the gallery in order. It starts from whatever style is selected, so park on the one you want to begin at. Turns the dice off on every slot while it is on; the set it walks is roll_scope (use 'missing preview' with auto_gallery to fill the gaps). |
| crawl_missing_only | BOOLEAN | false | While crawling, skip styles that already have a preview. The list is re-checked at every step, so entries drop out as their previews are made. Ignored when crawl is off. |
| roll_scope | COMBO | all | Which styles the dice may land on, and which set crawl walks: everything, the primary style's family, your favourites, recently used, or by preview state. |
| roll_seed | INT | 00–4294967295 | Seeds the dice. Use the control under it (randomize / increment) so every run rolls a different style; 0 also rolls freshly each run. |
| auto_gallery | COMBO | off | Save generated images to the style gallery automatically. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | STRING | — |
| negative | STRING | — |
| debug | STRING | — |