Prompt Styler v2
Stop retyping 'cinematic film still, shallow depth of field' β let this styler do it
- text_positive
- text_negative
If you've ever hand-typed cinematic film still, bokeh, shallow depth of field, film grain into a prompt and then done it again on the next image, you're the target audience. Prompt Styler v2 takes your bare description, wraps it in one of 107 pre-built style templates, and hands you back a finished positive/negative pair ready for the text encoder. It's the compact variant of the plain Prompt Styler that ships in the ComfyUI_Eclipse pack - same styling engine, same style library, fewer widgets cluttering your graph.
Here's the thing worth knowing up front: it's pure string templating. No model downloads, no API keys, no GPU work. You give it text, it gives you text. A style is just a template with a {prompt} placeholder plus a negative-prompt half, and the node replaces the placeholder with your prompt and merges the style's negative with yours. Under the hood it reads CSV/JSON style files straight out of the pack's styles/ folder, which gets seeded from .defaults/ on first run. Drop your own file in there and restart to see it in the dropdown.
What you actually set
Most of the schema is defaults you can ignore. The ones that matter:
text_positive- your base prompt, the "what". Feed it from any text node.style_mode-tag_based(comma-separated tags, aimed at SD 1.5/SDXL/Pony-lineage models),natural_language(flowing sentences), orcustom(your own files).style- pick from the library, e.g.sai-cinematic,ads-gourmet food photography,artstyle-watercolor.index- the batch-automation knob.0and above pick a fixed style (wrapping at the library edge),-1randomizes per queue,-2/-3advance or retreat one step per queue. Set-2with a batch count of 10 and you A/B-test ten styles without touching the dropdown.
Then there's the whole point of the "v2": instead of four checkbox rows, apply_to_positive, apply_to_negative, spaces_to_underscores and log_prompt are tucked into one compact feature-chip bar on the node. Click it to expand. The toggles serialize into hidden socketless Boolean inputs, which is why a saved workflow reloads with your choices intact - the bar is cosmetic, the booleans behind it are authoritative. Enabling spaces_to_underscores reveals max_words_to_combine (default 3), which limits underscore conversion to short comma-separated segments so prose stays prose. Underscore conversion exists because some CLIP tokenizers prefer shallow_depth_of_field over spaced words - a legacy tag-era habit that still matters for Pony/Illustrious-style models.
The two outputs, text_positive and text_negative, are plain STRINGs. Wire them into your CLIP Text Encode (positive goes to the positive conditioning, negative to the negative) or into another prompt-stitching node - this thing plays nice with anything that eats text.
Install and first run
It's part of the big Eclipse utility pack, so you can't install just the styler. Easiest path is ComfyUI Manager: search for ComfyUI_Eclipse, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
# restart ComfyUI
Then find it under the Eclipse β Text menu group. No model files to fetch - the 107 styles are in the repo. The pack's requirements are the usual stack (torch, numpy, Pillow, opencv-python) that ComfyUI already provides, so you'll rarely need to pip install anything extra for this node. Note that Eclipse changed names and dropped all legacy nodes in v4.0.0 (old workflows said "RvTools"), so pull a recent version.
Common gotchas
- Style not applied, output equals input:
apply_to_positiveis off, or the template lacks the{prompt}placeholder. Flip onlog_promptto watch the pair print to console. - The word-limit control is missing: that's expected. Enable the
spaces_to_underscoreschip; themax_words_to_combineslider only appears while it's on. - Style changes when you queue: you left
indexon-1/-2/-3. Set it to0or above for a locked style. - Your custom CSV isn't in the dropdown: styles load at startup - restart ComfyUI. Name it
natural_lang_mystyles.csvortag_based_mystyles.csvto force its mode.
One honest caveat, because the styler genre is an SDXL-era habit: this whole approach assumes a CLIP-tokenized checkpoint where tags and a meaningful negative prompt still do work. On newer LLM-encoded models your prompt is read like an instruction and the negative box can be ignored entirely. If you're on that side of the fence, natural_language mode is the one to reach for - and if you're on a classic SDXL/Illustrious/Pony workflow, this node is genuinely one of the least fiddly ways to keep your style vocabulary consistent across a batch.
Inputs (11)
| 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. |
| features | STRING | Feature-chip placeholder. The serialized Boolean inputs remain authoritative. | |
| 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 | β |