Anime TIMM Classifier
The anime auto-tagger that skips the WD14 model hunt
- image
- tags
- confidence_scores
- raw_output
- general_tags
- character_tags
- artist_tags
- rating_tags
If you've ever wanted to caption a folder of anime images for LoRA training, or reverse-engineer a prompt from a piece of art you like, you know the drill: download a WD14 tagger, hunt down the right model weights, wire up the helper nodes. The Anime TIMM Classifier cuts that down to one node. Drop an image in, get a comma-separated Danbooru tag string out, and it handles downloading its own model on first run. No separate weight files, no extra moving parts.
It's worth knowing what this actually is before you use it. This is a multi-label image classifier, not a captioning LLM. It runs one of the TIMM models from the animetimm Hugging Face org - the "dbv4" tagger family that the community knows as a modern alternative to WD14 - and asks it "which of these ~7,000 Danbooru tags are in this picture?" That's the same vocabulary your Illustrious or NoobAI checkpoint was trained on, so the output plugs straight into a prompt or a training caption without translation.
How it works
Under the hood it's straightforward: the node pulls pytorch_model.bin, config.json, a preprocess.json, and a selected_tags.csv from the model repo, caches them in ComfyUI/models/animetimm, then runs the image through the TIMM model's sigmoid confidence layer. Every tag with a score over its threshold survives. The selected_tags.csv also carries each tag's category - 0 for general, 4 for character, 1 for artist, 9 for rating - which is how the node can hand you artist tags and rating tags separately from the "what's in the frame" tags.
The inputs that matter:
- image - the one thing you must feed it. Batches work; it'll tag every frame in a batch with a progress bar.
- model_repo - 20 model choices, defaulting to
animetimm/caformer_s36.dbv4-full, which is a solid accuracy/speed middle ground. Want max accuracy?eva02_large_patch14_448.dbv4-fulltops the ranklist but eats VRAM. Want speed? Themobilenetv3/mobilenetv4entries are tiny and fast. - threshold (default 0.35) - and here's the trap. Unless you flip
use_custom_thresholdon, your number isn't the only gate. The node usesmax(your threshold, best_threshold)per tag, wherebest_thresholdis a per-tag value baked intoselected_tags.csv. That's a feature - those per-tag thresholds are tuned so rare-but-meaningful tags don't get drowned out - but it means raising the slider won't always do what you expect. If you want your number to be the only number, enableuse_custom_threshold. - The
include_*toggles - general and character are on by default, artist is off (it's off because artist tags are noisy and, thanks to how Danbooru tags work, aggressively steer style when you put them in a prompt). Rating is on. - replace_underscore (default True) - turns
long_hairintolong hair. Leave it on unless you're captioning for a workflow that wants raw booru syntax.
Outputs
Seven outputs, but you'll mostly use tags - the comma-joined string that goes straight into a text encode or a caption file. confidence_scores is a float list parallel to those tags if you want to sort or filter programmatically. raw_output gives you the categorized breakdown (general: 1girl: 0.98), and general_tags, character_tags, artist_tags, rating_tags hand you each category as its own string. The tags also surface in the node's UI display, so you can just read them.
Install
ComfyUI Manager: search "ComfyUI-animetimm" and install. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/MakkiShizu/ComfyUI-animetimm
cd ComfyUI-animetimm
Then install the Python deps into ComfyUI's environment. On the Windows portable build:
..\..\..\python_embeded\python.exe -m pip install -r requirements.txt
Otherwise pip install -r requirements.txt in your active venv. The requirements (timm>=1.0.16, dghs-imgutils, pandas, huggingface_hub) are chunky - expect a real install, not a blink. Restart ComfyUI and the node appears under the AnimeTimm category.
Troubleshooting
The big one: first run downloads the model, and that can take a while - the bigger repos are hundreds of MB. It's cached after that. If the download fails (the README notes the official repos can require logging in and accepting terms), the node automatically falls back to a backup repo, Makki2104/animetimm, so most people never have to do anything. If you keep hitting gated-repo errors, huggingface-cli login with an account that's accepted the repo terms usually fixes it.
One honest caveat: this is a niche pack from a small maintainer, not a marquee name like the WD14 tagger nodes - you won't find much community discussion of it. But the dbv4 models underneath are well-regarded and the node is a thin wrapper around them. For training captions or quick prompt reversal on anime, it's the one I'd reach for.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Input image for tag prediction | |
| threshold | FLOAT | 0.350–1 | Threshold for tag prediction confidence |
| model_repo | COMBO | animetimm/caformer_s36.dbv4-full | Model to use for tag prediction |
| include_general | BOOLEAN | true | Include general tags in output |
| include_character | BOOLEAN | true | Include character tags in output |
| include_artist | BOOLEAN | false | Include artist tags in output |
| include_rating | BOOLEAN | true | Include rating tags in output |
| replace_underscore | BOOLEAN | true | Replace the underscore (_) in tags. |
| use_custom_threshold | BOOLEAN | false | Use the custom threshold instead of best threshold from selected_tags.csv |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| tags | STRING | — |
| confidence_scores | FLOAT | — |
| raw_output | STRING | — |
| general_tags | STRING | — |
| character_tags | STRING | — |
| artist_tags | STRING | — |
| rating_tags | STRING | — |