Nodes/Violet Tools ๐Ÿ’…/๐Ÿ‘‘ Quality Queen
ComfyUI Node

๐Ÿ‘‘ Quality Queen

Boilerplate quality tags, without retyping them

By leylahvioletยทCreated 12 months agoยทUpdated 10 months agoยท 14
๐Ÿ‘‘ Quality Queen
    • quality
    โ—„include_boilerplatetrueโ–บ
    โ—„styleRandomโ–บ
    โ—„extraโ–บ
    โ—„extra_inputโ€”โ–บ

    Every anime-adjacent SDXL model wants its little incantation - masterpiece, best quality, ultra-detailed, absurdres - and if you're like most people you've typed it enough times to be sick of it. Quality Queen is that boilerplate, packaged as a node, with a style dropdown bolted on. It's the pack's "open with" node: you set it once and forget it.

    It's the natural first block in a Violet Tools workflow, and the README's own example chain runs Quality Queen โ†’ Scene Seductress โ†’ Aesthetic Alchemist before everything lands in ๐Ÿงฌ Encoding Enchantress. You reach for it when you want consistent baseline quality across a batch without hand-typing six tags into every prompt box.

    How it works

    Quality Queen is YAML-driven and completely algorithmic - no LLM, no API, no weights. On each run it assembles a comma-joined prompt from up to three parts: the boilerplate tag list, an optional style text, and your extra field. The whole result then passes through the pack's shared prompt deduplicator, which removes duplicate comma-separated phrases (preserving order) and fixes mangled commas - handy if you chain in text from a T5 or another prompt source that loves repeating itself.

    The boilerplate list is the classic 2023-era quality set: masterpiece, best quality, very aesthetic, detailed eyes, ultra-detailed, absurdres. Styles range from Photorealistic and Cinematic through Anime, Oil Painting, Watercolor, Hyperreal Fantasy, and Polaroid, each defined as a hand-written comma list in the YAML.

    The fields that matter

    • include_boilerplate - toggles the six boilerplate tags on or off. This is the honesty test for your model, see below.
    • style - pick one of the ~15 curated styles, or Random to let it re-roll every run. Default is Random, which is a footgun for reproducibility (see below).
    • extra - your custom text; supports the pack's {a|b|c} wildcard syntax, one option chosen per run.
    • extra_input (optional) - chained input prepended to extra, so another prompt node can feed into it.

    The single output, quality (a QUALITY_STRING), goes into the quality input on Encoding Enchantress. It's a pack-typed string, so the supported path is into the pack's own encoder, not a stock CLIP Text Encode node.

    The take you actually need

    Those boilerplate tags are alive on the anime SDXL lineage - Illustrious, NoobAI, Pony - where the vocabulary was trained in. On Flux-class and other LLM-encoded models they're essentially inert, and on distilled models a long quality dump can even be counterproductive. So if you toggle include_boilerplate and nothing visibly changes, that's your model telling you the tags don't matter to it, not the node malfunctioning. Know which family you're on before you blame the queen.

    Installing it

    Part of ComfyUI-Violet-Tools, so install the pack once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/leylahviolet/ComfyUI-Violet-Tools.git
    

    or via ComfyUI Manager (search Violet Tools), then restart ComfyUI. No model downloads; dependencies are PyYAML, rapidfuzz, and requests.

    Where people get tripped up

    The default Random style re-rolls every execution - the node deliberately forces a refresh so random selections update. That's great for exploration and terrible for "why did my image change when I only changed the seed?" If you want reproducible output, pin style to something specific. And remember the node's extra field is where wildcards live; the style dropdown won't do anything fancy for you.

    CategoryViolet Tools ๐Ÿ’…/Prompt

    Inputs (4)

    NameTypeDefaultDescription
    include_boilerplateBOOLEANtrueโ€”
    styleCOMBORandom17 options: None, Random, Photorealistic, Portrait, Cinematic, Anime, +11
    extraSTRINGโ€”
    extra_inputoptSTRINGOptional chained input - will be prepended to extra field with ', '

    Outputs (1)

    NameTypeDescription
    qualityQUALITY_STRINGโ€”