Prompt Styler
100+ A1111-Style Presets, Without Leaving ComfyUI
- text_positive
- text_negative
What it is
Back in the A1111 days, everyone had a list of "sai-" styles - sai-cinematic, sai-anime, sai-analog film - each a canned bundle of positive tags plus a matching negative prompt that turned a bland prompt into something with a consistent look. Prompt Styler brings exactly that to ComfyUI: over a hundred style templates, applied to your prompt with one dropdown.
The value is the same as it ever was. Instead of hand-typing "cinematic film still, shallow depth of field, bokeh, film grain, grainy" and remembering the matching "anime, cartoon, glitch, deformed" negative, you pick the style and get both. It's a consistency tool as much as a convenience - the same style across a whole batch or a whole project keeps outputs visually coherent without you babysitting the prompt text.
How it works
Each style is a template with three fields: a name, a positive prompt containing a {prompt} placeholder, and a negative prompt. The node does string work, not generation: it drops your text_positive into the template in place of {prompt}, and it combines your text_negative with the style's own negative. Two strings out, ready for your CLIP encoders.
The styles ship as CSV/JSON files in the pack's styles/ folder - the familiar sai- family (3D model, analog film, anime, cinematic, and the rest) plus natural-language variants and room for your own. The folder is yours to edit, and git updates won't clobber your changes, because the pack only extracts default files that don't already exist.
Three modes: tag_based (comma-separated tag lists, the danbooru-flavored style most checkpoints want), natural_language (flowing sentences, for models that prefer prose), and custom (your own added style files). The spaces_to_underscores toggle converts spaces to underscores in short tag segments - handy when your target model was trained on analog_film style tags - and max_words_to_combine stops it from mangling longer natural-language phrases.
The inputs that matter
- text_positive - your prompt;
{prompt}in the template gets replaced with this. - style_mode - tag_based / natural_language / custom.
- style - the style dropdown, which populates from the style files on disk.
- index - 0+ picks a fixed style; -1 randomizes, -2 increments, -3 decrements (the navigation buttons drive it).
- apply_to_positive / apply_to_negative - toggle which side the style touches.
- text_negative (optional) - combined with the style's negative prompt.
Outputs: text_positive and text_negative, ready to wire into your text encoders.
When you'd use it
When you want a consistent visual language across a batch, or when you're iterating on look and want to A/B different styles without retyping prompts. It's also a great on-ramp if you're coming from A1111 and miss having the style presets one click away.
Installing it
Ships with ComfyUI_Eclipse:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
pip install -r ComfyUI_Eclipse/requirements.txt
then restart, or use Manager and search "Eclipse". If the style dropdown shows "No styles found", the style files weren't extracted - first launch should pull them from .defaults/, so restart once and check the logs. And if you're restoring old workflows, the pack (formerly RvTools_v2) removed legacy nodes in v4.0.0; the bundled migration tool upgrades old graphs.
Common issues
The most common complaint is styles doing nothing - which is almost always the placeholder. If your template doesn't contain {prompt}, your prompt never gets inserted and the style overwrites it. Also remember styles are opinionated: a heavy sai-cinematic negative prompt will fight a photorealistic checkpoint's default negative, so check what the style is adding before you wonder why results changed. And if the dropdown is missing styles you added, you may need to re-add the style folder path - the node reads from the repo's styles/ (or its models/Eclipse/styles junction), so put files there, not somewhere ComfyUI won't look.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive | STRING | Positive prompt text. Will replace {prompt} in the style template. | |
| style_mode | COMBO | tag_based | Select style format: tag_based uses comma-separated tags, natural_language uses flowing sentences, custom shows user-added style files. |
| style | COMBO | Select style to apply (contains both positive and negative prompts). | |
| index | INT | 0-3β999999 | Style index: 0+ = fixed position, -1 = random, -2 = increment, -3 = decrement. Use navigation buttons to control. |
| spaces_to_underscores | BOOLEAN | false | Convert spaces to underscores in tag-like segments (comma-separated parts with few words). |
| max_words_to_combine | INT | 32β10 | Maximum words in a segment to apply underscore conversion. Segments with more words are treated as natural language and left unchanged. |
| apply_to_positive | BOOLEAN | true | Apply style to positive prompt. |
| apply_to_negative | BOOLEAN | true | Apply style to negative prompt. |
| log_prompt | BOOLEAN | false | Log the styled prompts to console. |
| text_negativeopt | STRING | Negative prompt text. Will be combined with the style's negative prompt. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text_positive | STRING | β |
| text_negative | STRING | β |