Tag Category [LP]
Figure out what category each of your tags actually belongs to
- result
If you've tried Tag Category Filter or Tag Category Keeper from this same pack and hit the obvious wall - what category names am I even supposed to type in? - this is the node that answers it. Where the Filter/Keeper/Remover trio all act on categories you already know, Tag Category is the diagnostic step: it reads a tag string and tells you what category each tag falls into.
What it does
This is the node behind the README's line about "a function for defining categories of all tags." Feed it a tag string and it runs the same categorization logic the rest of the Tags nodes lean on - credited in the README to comfyui_tag_fillter - and hands back the result. In practice that means: run your autotagger output through this first, read what comes back, and now you know the real category vocabulary your specific tag set produces instead of guessing at names like "background" from the one example the README gives.
That matters more than it sounds like. Danbooru's own tagging convention splits into five buckets - General, Character, Artist, Copyright, Meta - General being poses/clothing/settings, Character being named characters, Artist shifting style toward a specific artist, Copyright being the series, Meta being technical flags like highres or absurdres. Whether this node's categorizer maps cleanly onto that exact five-way split or does its own thing under the hood isn't spelled out anywhere in the docs, which is exactly why running your own tags through Tag Category first - rather than assuming the Danbooru taxonomy applies verbatim - is the move.
Inputs and outputs that matter
It's a one-input, one-output node, nothing to overthink:
tags(required, defaults to empty) - the tag string you want categorized.
Output: result - a STRING, presumably the tags annotated with or grouped by category (the schema doesn't spell out the exact formatting, so the fastest way to know is to wire it to a Show Text node and run it once on a tag string you're familiar with).
Installing it
Through ComfyUI Manager, search "ComfyUI Level Pixel" or "ComfyUI-LevelPixel." Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/LevelPixel/ComfyUI-LevelPixel.git
Restart ComfyUI afterward. It's pure text processing - no model downloads, no extra Python dependencies beyond what the pack already needs.
Where this actually earns its keep
Treat it as a one-time (or occasional) probe rather than something you leave wired permanently into a production workflow. Run your autotagger's typical output through Tag Category once, note what category labels show up for your particular tag vocabulary, and now Tag Category Filter, Tag Category Keeper, and Tag Category Remover all stop being guesswork - you're typing category names you've actually seen the categorizer produce, not names you're hoping exist.
Common issues & troubleshooting
You get back something and have no idea how to read it. Since the exact output format isn't documented, the practical first step with this node is always the same: wire result straight into a Show Text node (or the console) and eyeball it against the input you fed in, rather than trying to parse it programmatically on faith.
Empty or garbage-looking input. This node categorizes whatever string you give it - it doesn't validate that it's a real tag string first. If tags is empty, malformed, or in a format the underlying categorizer doesn't expect (spaces instead of underscores, for instance, which matters a lot for Danbooru-style tags), you'll likely get an unhelpful or empty result rather than an error explaining why. Test with a known-good, comma-separated tag string first to confirm the node behaves as expected before trusting it on messier input.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| tags | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| result | STRING | — |