๐ Quality Queen
Boilerplate quality tags, without retyping them
- quality
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, orRandomto let it re-roll every run. Default isRandom, 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 toextra, 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| include_boilerplate | BOOLEAN | true | โ |
| style | COMBO | Random | 17 options: None, Random, Photorealistic, Portrait, Cinematic, Anime, +11 |
| extra | STRING | โ | |
| extra_inputopt | STRING | Optional chained input - will be prepended to extra field with ', ' |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| quality | QUALITY_STRING | โ |