ComfyUI Node

Combine Styles

Three style guides, one coherent brief — Combine Styles is the glue for your LLM prompt pipeline

By lunaaispace-eng·Created 3 months ago·Updated 7 days ago· 0
Combine Styles
    • style_guide
    style_1
    style_2
    style_3
    label_prioritytrue

    Combine Styles (class CombineStyles) is the companion to the 🎨 Style Prompt Library picker, and it solves the problem you hit about five minutes after installing that node: you found three good styles and you want all three, but you don't want a garbled soup of comma-phrases dumped into your prompt node.

    So what does it do? It's a pure text joiner. It takes up to three style strings and returns one style_guide, formatted so an LLM actually understands the hierarchy. The first style is labeled PRIMARY STYLE; the other two are grouped as ACCENT STYLES, with the explicit instruction to defer to the primary on any conflict. No model call, no token math, no API - it's string concatenation with headers, and it exists to stop your LLM prompt node from trying to honor two contradictory styles at equal weight.

    How it works

    Wire one, two, or three Style Prompt Library nodes (or any text source - it's just STRING sockets) into style_1, style_2, and style_3. The node strips empty strings, and if only one input is populated it passes that through unchanged - so it behaves fine as a pass-through if you haven't filled every slot. When there are two or more, it emits the labeled block:

    PRIMARY STYLE:
    film noir cinematography, high-contrast black and white...
    
    ACCENT STYLES (blend in as secondary treatment; defer to PRIMARY on any conflict):
    80s retro-futurism, neon signage, chrome reflections...
    

    That label_priority boolean, on by default, is the whole point - a small local LLM is surprisingly obedient about "defer to PRIMARY on any conflict," and without the header it has to guess which of three styles is the base look. Flip it off and you get plain newline-joined text if you'd rather do your own formatting downstream.

    The inputs that matter

    • style_1 - required, the primary/base style.
    • style_2, style_3 - optional accent styles. Leave unwired and they're ignored.
    • label_priority - the important one. Default true; adds the PRIMARY/ACCENT headers so the LLM knows which style wins a conflict.

    Output is a single style_guide string - wire it into your LLM prompt node's style input, which is the pattern the README recommends:

    Style Prompt Library -> style_1
    Style Prompt Library -> style_2
    Style Prompt Library -> style_3
    Combine Styles -> LLM prompt node
    

    The one real gotcha

    The README's advice is worth taking seriously: combine across dimensions, not within one. One medium plus one lighting/rendering treatment plus one fashion-or-mood accent reads as a coherent brief. Two strong mediums - say oil painting and watercolor - are instructions in direct conflict, and no header labeling saves you from that; the LLM will faithfully produce something that is neither. If your output looks like a style collision, that's almost always why.

    Install

    Same as the pack's main node: it ships in the same folder, so one install gets you both. ComfyUI Manager (search "StylePromptLibrary") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/lunaaispace-eng/ComfyUI-StylePromptLibrary
    

    Restart, Ctrl+F5 the browser, and both nodes appear under Add Node → Style Prompt Library. No dependencies, no model downloads - a rare pack where "just works" is literal.

    Troubleshooting

    • Output is empty - all three inputs were empty or whitespace. It can't conjure a style from nothing.
    • LLM ignores the accent styles - that's expected to a degree; the labels bias it toward the primary. If you want accents louder, swap them into style_1.
    • Combined output has no headers - label_priority is off. Turn it back on unless you're doing your own formatting.

    If you run an LLM-prompt workflow, this is the difference between a flat prompt and a brief with a hierarchy. Small node, genuinely useful job.

    CategoryStyle Prompt Library

    Inputs (4)

    NameTypeDefaultDescription
    style_1STRING
    style_2optSTRING
    style_3optSTRING
    label_priorityoptBOOLEANtrueAdd PRIMARY/ACCENT headers so the LLM knows which style wins a conflict.

    Outputs (1)

    NameTypeDescription
    style_guideSTRING