Pepe Anime Tag Classifier
Genres get you close. This node's tags get you 'volleyball' and 'female protagonist.'
- tags
- matched_title
- score
- matches_json
The genre node in this pack tells you a show is "Action, Fantasy, School." True, but it won't move the needle on an Illustrious prompt. "volleyball" will. "female protagonist" will. Pepe Anime Tag Classifier is the finer-grained sibling: same title-to-prompt idea, but it looks up the detailed descriptive tags instead of the broad genre labels, so you get the stuff that actually changes what the model draws.
It's the same honest shape as its packmate - an offline lookup over a CSV that ships with the repo (Data/AnimeSeriesTagList.csv, ~40,800 rows in a title;tags format), no model, no API, no key, no network. Type a title, get back a comma-separated tag string ready for your prompt.
How it works
The matching engine is shared with the genre node: titles are normalized (casefolded, punctuation stripped, & → and), compacted, and tokenized, then scored against every row with a blend of exact match, substring containment, token overlap, and difflib.SequenceMatcher fuzzy similarity. The CSV loads lazily on first use and stays cached for the process. Where the two nodes differ is just the data: tag rows are pipe-separated in the source, and the node splits on | and re-joins with commas for output. Since both classes live in the same pack, installing one gets you the other - they share the same scoring code under the hood.
The inputs and outputs that matter
Identical inputs to the genre node, and you'll set the same two:
anime_title- the show you want tags for.min_score- confidence floor, default 0.45. Raise it when the best match looks off.
include_adult and top_k behave the same way, though the adult filter here keys on the tags adult audience only and hentai rather than a genre.
Outputs: tags is the comma-separated string for your prompt, matched_title and score confirm which row won and how confidently, and matches_json shows the full candidate list when you want to audit a shaky match. Note there's no uid output like the genre node - the tag CSV simply has no MyAnimeList id column.
Installing it
Same story as the genre node - this pack is the rare custom node with zero dependencies. No requirements.txt, no model downloads. Via ComfyUI Manager, search "Pepe Anime Genre Classifier" or comfyui-PepeAnimeGenreClassifier, or clone:
cd ComfyUI/custom_nodes
git clone https://github.com/Pepehoschi/comfyui-PepeAnimeGenreClassifier
Restart ComfyUI; both nodes show up under Pepe/Anime.
Where people get burned
- These are series-level tags, not scene details. You get the show's whole identity - "volleyball" for Haikyuu, "based on a manga" for anything adapted - not "what's happening in this specific frame." Treat them as stable prompt scaffolding, not a substitute for describing your shot.
- Not every tag belongs in a prompt. The dataset includes metadata like
japanese productionandpresentthat mean something to a database and nothing to a text encoder. You'll want to eyeball the output before wiring it straight in. - Same limits as the genre node: the data is a static snapshot shipped with the repo, so recent or obscure shows won't resolve, and the dataset's exact provenance isn't documented in the README - trust the fuzzy matching, not the completeness.
- Duplicate rows are preserved deliberately, so a show with several rows may repeat in
matches_json.
Run it side by side with the genre node - genres for the broad strokes, tags for the specifics - and you can build a whole prompt from just the title of a show. Small, offline, and genuinely useful.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| anime_title | STRING | — | |
| top_k | INT | 51–20 | — |
| min_score | FLOAT | 0.450–1 | — |
| include_adult | BOOLEAN | true | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| tags | STRING | — |
| matched_title | STRING | — |
| score | FLOAT | — |
| matches_json | STRING | — |