SDXL Prompt Styler (JPS)
Artists, movies, and style presets bolted onto your prompt
- text_positive_g
- text_positive_l
- text_positive
- text_negative
Typing "in the style of [seventeen adjectives]" by hand every time you want a particular look gets old fast, and it's easy to forget the exact phrasing that worked last week. This node is a preset library for that: pick an artist, a movie's visual language, and a general style descriptor from dropdowns, and it stitches the right boilerplate into your prompt automatically. It's an extended fork of a well-known earlier node by twri (the original sdxl_prompt_styler), with JPS adding more categories and a couple of Fooocus-flavored toggles on top.
You type your own core prompt into text_positive_g and text_positive_l (the two channels SDXL's dual text encoder wants), plus whatever you want in text_negative. Then three dropdowns layer style language on top: artist (127 options, real names spanning illustration, painting, and photography), movie (40 options, visual-language references like Blade Runner 2049 or Amélie), and style (30 general descriptors - Film Noir, Gothic, Hyperrealism, and so on). Two more toggles, fooocus_enhance and fooocus_negative, borrow tricks from the Fooocus UI: Fooocus built its reputation partly on baked-in quality-boosting phrasing that most users never see or think about, and these toggles let you fold that same kind of boilerplate into your prompt and negative prompt without installing Fooocus itself. A final toggle, universal_negative, adds one shared negative-prompt block on top of whatever style-specific negative content gets pulled in, so you get a consistent baseline no matter which style you picked.
The outputs mirror the SDXL split: text_positive_g, text_positive_l, a combined text_positive for simpler pipelines that only want one string, and text_negative. Wire the _g/_l pair into CLIPTextEncodeSDXL, or the combined text_positive into a plain CLIPTextEncode if that's what your graph uses.
Worth knowing: the artist, movie, and style lists are driven by JSON files bundled with the pack, not hardcoded into the Python - which means if there's an artist or style you want that isn't in the dropdown, you can add it yourself by editing those files rather than waiting on an update.
Installing it. ComfyUI Manager, search "JPS Custom Nodes for ComfyUI," or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart and it's under JPS Nodes/Style. If reinstalling over an older copy, delete it first per the author's own instructions. No models to download - the styling is pure text substitution from the bundled JSON, no extra Python dependencies.
Troubleshooting. The most common disappointment isn't a bug, it's expectation: this node changes your prompt text, not the model's weights, so an artist or movie style will nudge output in that direction but won't reproduce anything with the precision a dedicated style LoRA would. If a particular style dropdown seems to do nothing, double-check that text_positive (the combined output) or the _g/_l pair is actually what's reaching your text encoder - it's easy to accidentally leave a separate, unrelated CLIPTextEncode still wired into the sampler instead of this node's output. And since the style vocabulary lives in editable JSON, if a style entry looks broken or produces garbage phrasing, it's worth opening the pack's style JSON file directly to see what text it's actually injecting before assuming the node itself is at fault.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| artist | COMBO | 127 options: Eyvind Earle, Lori Earley, Michael Eastman, Tristan Eaton, Janet Echelman, Harold Edgerton, +121 | |
| movie | COMBO | 40 options: 2001 - A Space Odyssey, 300, A.I., Akira, Amélie, Avatar, +34 | |
| style | COMBO | 30 options: Dystopian, Film Noir, Gothic, Horror, Hyperrealism, Manga, +24 | |
| fooocus_enhance | COMBO | 2 options: OFF, ON | |
| fooocus_negative | COMBO | 2 options: OFF, ON | |
| universal_negative | COMBO | 2 options: OFF, ON |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| text_positive_g | STRING | — |
| text_positive_l | STRING | — |
| text_positive | STRING | — |
| text_negative | STRING | — |