Resorting Tags [LP]
Reassembling filtered tags into one ordered prompt
- priority_texts
- inclusive_texts
- auxiliary_texts
- tags TEXT
- tags_with_rating TEXT
This node takes three separate lists of tags and stitches them back into one string, in a deliberate order - priority tags first, inclusive tags next, auxiliary tags last. It's the reassembly step in a filter-then-rebuild pattern: split your tags into categories somewhere upstream, then bring the pieces back together here in the order that actually matters for prompting.
Why order matters here
If you prompt with Danbooru-style tags - the comma-separated vocabulary Illustrious, NoobAI, and other anime-trained checkpoints expect - earlier tags in the string generally carry more weight than later ones. That's exactly why a node like this needs an explicit priority structure instead of just concatenating everything: a character tag or a key pose descriptor buried at position 40 in an auto-assembled prompt doesn't pull its weight the way it would at position 2. This node's three-tier input (priority / inclusive / auxiliary) is built to put your most important tags first on purpose, not by accident of whatever order your upstream sources happened to produce them in.
It pairs naturally with the pack's Tag Category Filter nodes - the README describes a set of nodes "that allow you to filter tags by category," crediting comfyui_tag_fillter by sugarkwork, useful for pulling out just the tags for a specific category (background, character, clothing) from a larger tagged prompt. Filter first, then feed the results into this node to reassemble them with intent.
The inputs and outputs that matter
- priority_texts, inclusive_texts, auxiliary_texts - each a LIST of tag strings, not a plain comma-separated STRING. These need to come from an upstream node that actually produces a list - most naturally the pack's category-filter nodes - rather than a plain multiline text box.
- Outputs: tags TEXT (the reassembled tag string) and tags_with_rating TEXT (the same, with a rating component included - likely a Danbooru-style content rating tag such as
general/sensitive/nsfw/explicit, though the exact rating logic isn't documented in the README).
How to install it
ComfyUI Manager: search "ComfyUI Level Pixel" or ComfyUI-LevelPixel, install, restart - updates automatically via Manager's "Update ALL." Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/LevelPixel/ComfyUI-LevelPixel.git
Restart ComfyUI. No models needed - this is text/list processing.
Common issues & troubleshooting
The node errors or behaves oddly when you feed it a plain string. All three inputs are typed as LIST, not STRING - a comma-separated tag string won't satisfy that connection. Split your text into an actual list first (or use output from a node that already produces one, like this pack's own tag-category filters) rather than wiring in raw text.
Your priority tags aren't showing up first the way you expected. Check which of the three inputs you actually wired each source into - priority_texts genuinely needs to be the list you want leading the output, not just "the tags you care about most" in a general sense. Mixing up priority vs. inclusive vs. auxiliary produces valid output that's ordered wrong for your purposes.
You're not sure what tags_with_rating adds over the plain tags TEXT output. Compare the two outputs directly through a Show Text node once - the rating component's exact format isn't spelled out in the README, so the fastest way to know is to look at both side by side on a real prompt.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| priority_texts | LIST | — | |
| inclusive_texts | LIST | — | |
| auxiliary_texts | LIST | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| tags TEXT | STRING | — |
| tags_with_rating TEXT | STRING | — |