Quality Tag Prepend Node (zer0)
Staple your quality tags onto a prompt without retyping them
- Combined String
The name oversells it a little. The Quality Tag Prepend Node (zer0) doesn't know anything about quality tags - it's a two-string joiner with a configurable separator, and the "prepend" bit is just you putting the quality tags in the first box. But for what it does, it's a clean little convenience: one node that takes two strings, sticks your chosen separator between them, and hands you the result.
Where this earns its keep is prompt hygiene. On anime SDXL models - Pony, Illustrious, NoobAI, WAI - quality tags like score_9, score_8_up (Pony) or masterpiece, best quality (Illustrious/NoobAI) are real, train-in quality signals, and they belong at the front of the prompt because earlier keywords get stronger attention. Keeping them in one fixed node means you can swap the subject prompt in and out of the second box without ever retyping or re-pasting the quality block. Change the model family, change one widget, done.
How it works
It's string_one + separator + string_two, full stop. Three inputs:
- string_one - the string that goes first. This is where your quality-tag block lives. Note it's marked
defaultInput, so you can wire it from another node instead of typing. - string_two - the string that goes second. Your subject prompt.
- separator - what goes between them, default
", ". That's the sensible choice for a tag list; change it to" BREAK "and you're building CLIP chunk boundaries instead.
One output: Combined String, ready for a CLIP Text Encode or wherever your prompt text feeds next.
The catch, and the honest version
Two things worth knowing before you build a workflow around this.
First, the quality-tag habit doesn't transfer to every model. On LLM-encoded checkpoints (Flux 2 Klein, Z-Image, Anima) masterpiece, best quality is mostly inert - the vocabulary was never trained in, and you're spending tokens that would be better used describing the scene. If you're on one of those, skip this node entirely; it's solving an SDXL problem.
Second, this is genuinely just a two-string concat. If you only need to join two strings, this works. If you need to prepend a fixed quality block to a list of prompts, you'd want it chained after a combiner, and if you're combining more than two things, you'll be chaining several of these - or just reaching for the pack's List Combine Node, which is the same idea with a list instead of two slots.
Install
Standard for this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/zer0thgear/zer0-comfy-utils
Restart ComfyUI and it appears under text utility. Or use ComfyUI Manager → Install Custom Nodes → search "zer0 Comfy Utilities". The pack pulls in exactly one dependency (tiktoken) and zero model files. It's a small personal utility, last touched in early 2025, but a three-line string join doesn't need maintenance - it either runs or it doesn't, and it runs.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| string_one | STRING | The first string to be combined | |
| string_two | STRING | The second string to be combined | |
| separator | STRING | , | The separator to use when combining the strings |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Combined String | STRING | The combined strings as a single string |