ComfyUI Node

Prompt Styler

One-click style presets, but you bring the styles

By HavocsCall·Created 2 years ago·Updated 9 months ago· 4
Prompt Styler
    • Styled_Positive_Prompt
    • Styled_Negative_Prompt
    Positive_Prompt
    Negative_Prompt
    Style
    Style_Positivetrue
    Style_Negativetrue
    Log_Promptsfalse

    Prompt Styler is the pack's style-preset node: pick a style from a dropdown and it wraps your positive and negative prompts in that style's template text. It's modeled on the classic SDXL Prompt Styler and the author says so in the acknowledgements - but here's the thing you need to know up front: it ships with almost no styles, and you're expected to bring your own JSON.

    What it does

    The idea is simple and genuinely nice. You write your bare prompt - "a red fox" - and pick "Cinematic" (or whatever you've defined), and the node rewrites it to something like cinematic lighting, dramatic atmosphere, {prompt} on the positive side and applies the matching negative template too. Your prompts stay clean; the style layer is applied mechanically at generation time.

    Inputs:

    • Positive_Prompt, Negative_Prompt - your two raw prompts (wired in).
    • Style - the dropdown, alphabetized with "None" pinned on top.
    • Style_Positive, Style_Negative - booleans that turn styling off for each side independently. Handy when a style's positive template is great but its negative is garbage.
    • Log_Prompts - prints your before/after prompts to the console. Nice for debugging a style you're authoring.

    Outputs:

    • Styled_Positive_Prompt, Styled_Negative_Prompt - feed these into your CLIPTextEncode nodes.

    The mechanism (and the gotcha)

    Styles live as JSON files in the pack's nodes/Styler Data folder. Each entry has a Name and Positive_Style / Negative_Style templates containing a {prompt} placeholder, which gets swapped for your text:

    styled_prompt = style.replace("{prompt}", prompt)
    

    The catch: the folder ships with only an Example.json (two placeholder styles) plus the built-in "None". So out of the box your Style dropdown has three options and none of them are useful. This is not a bug - it's the design. The README points to the pack's wiki for how to add styles, and the file naming is significant: each JSON file's name becomes a prefix on its styles (filename - Style Name), which lets you organize hundreds of styles by file.

    Where people get burned

    The biggest trap is installing this expecting a library of ready-made styles. You'll get None and two examples. You need to source or write your own JSON - and if you've used SDXL Prompt Styler or Comfyroll's style files, those JSONs can usually be adapted since the format is similar (watch for differing field names like Positive_Style vs positive_prompt).

    Also note the forceInput prompts: you must wire prompts in; you can't type into the node. And file-name prefixes mean a JSON named cinematic.json will list its styles as "cinematic - ...", so name files to match the category.

    Installing it

    ComfyUI Manager → search "HavocsCall" → install → restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes
    

    Restart, under HavocsCall/Prompt Styler. No requirements.txt, no model downloads - but budget real time for finding or writing style JSONs before this node does anything for you.

    CategoryHavocsCall/Prompt Styler

    Inputs (6)

    NameTypeDefaultDescription
    Positive_PromptSTRING
    Negative_PromptSTRING
    StyleCOMBO1 options: None
    Style_PositiveBOOLEANtrue
    Style_NegativeBOOLEANtrue
    Log_PromptsBOOLEANfalse

    Outputs (2)

    NameTypeDescription
    Styled_Positive_PromptSTRING
    Styled_Negative_PromptSTRING