PixAI Tagger v1.0 banner

PixAI Tagger v1.0

Tag your anime images with 30,877 tags for characters, clothing, styles, and more.

Use the tags to organize your collection, prepare a dataset, or help write captions. Cutoff: May 2026.

Quickstart · v0.9 comparison · Benchmark · Inference performance · Limitations

Quickstart

You’ll need PyTorch, torchvision, Transformers, timm, NumPy, and Pillow. Then load the tagger and pass it an image:

from PIL import Image
from transformers import pipeline

model_id = "pixai-labs/pixai-tagger-v1.0"
tagger = pipeline(
    model=model_id,
    image_processor=model_id,
    trust_remote_code=True,
)

image = Image.open("image.jpg")
results = tagger(image)["results"]
print(results["general"])
# {"1girl": 0.98, "solo": 0.95, ...}  # illustrative output

Already downloaded the model? Set model_id to your local folder. trust_remote_code=True loads the model code included in this repo.

results contains tag names and scores, grouped by category. The pipeline uses the recommended settings below by default.

Recommended thresholds

You can adjust thresholds per category. These settings are already the defaults in the pipeline and demo:

General Character Style Copyright Meta Rating
0.17 0.27 0.15 0.24 0.17 0.41

They’re the per-category macro-F1 settings from the full-vocabulary evaluation. They were selected on that test set, so use them as starting points for your own images. The report’s 0.20 overall threshold is a separate single-threshold result.

Raise a threshold for fewer, more confident tags. Lower it to include more possibilities. To pass the recommended settings explicitly:

results = tagger(
    image,
    threshold={
        "general": 0.17,
        "character": 0.27,
        "style": 0.15,
        "copyright": 0.24,
        "meta": 0.17,
        "rating": 0.41,
    },
)["results"]

You can also override just one category, such as threshold={"general": 0.25}; the others keep their defaults. To use one threshold for every category, pass a number, such as threshold=0.20.

What it recognizes

The model uses a finetuned SAM3 backbone at 1008 × 1008 resolution. It resizes and pads your images without stretching them.

Model details
Property Value
Backbone finetuned SAM3 backbone
Parameters 486.3 million
Input 1008 × 1008; aspect ratio preserved with resizing and padding
Vocabulary 30,877 tags across six categories
Cutoff May 2026
Output Tag confidence scores, grouped by category
Default thresholds General 0.17 · Character 0.27 · Style 0.15 · Copyright 0.24 · Meta 0.17 · Rating 0.41
Output category Tags Description
general 15,043 Visible content, including clothing, poses, objects, and composition
character 8,308 Named characters
style 4,917 Style labels
copyright 2,460 Source works and franchises, plus original
meta 145 Medium, provenance, resolution, and status labels
rating 4 rating:g, rating:s, rating:q, and rating:e

Compared with PixAI Tagger v0.9

v1.0 supports 30,877 tags, up from 13,461 in v0.9, and works at 1008 × 1008 instead of 448 × 448.

PixAI Tagger v0.9 in muted blue and v1.0 in gold: shared-tag General and Character micro F1

Release Vocabulary Input resolution General micro F1 Character micro F1
PixAI Tagger v0.9 13,461 448 × 448 0.5980 0.8198
PixAI Tagger v1.0 30,877 1008 × 1008 0.6660 0.9242

On the same test images and shared tags, v1.0 gains 6.80 percentage points in General micro F1 and 10.44 points in Character micro F1 over v0.9. Both use thresholds chosen on calibration images only.

Common-tag benchmark

We tested v1.0 against seven other anime taggers, including v0.9, using the same images. For each category, we scored only tags the models share. That keeps a longer tag list from giving a model an automatic advantage.

General tags

General micro F1, macro F1, and mAP across eight taggers

v1.0 leads all three General scores in this test of 8,407 shared tags across 50,416 images. Gold marks v1.0; muted blue marks v0.9.

See General scores and details

Each model’s threshold was chosen on calibration images only. Plot axes use different ranges; scores are point estimates without confidence intervals.

Highest General micro F1, macro F1, and mAP among the eight models shown in our common-tag benchmark. Tagger v1.0 reaches 0.6660 micro F1, a 2.25 percentage-point lead over the next model, and 0.3807 mAP on 8,407 shared General tags. These results describe the evaluated models and dataset, rather than every available tagger.

Model Micro F1 ↑ Macro F1 ↑ mAP ↑
PixAI Tagger v1.0 0.6660 0.3885 0.3807
AnimeTIMM CAFormer B36 0.6435 0.3539 0.3324
AnimeTIMM ConvNeXtV2 Huge 0.6421 0.3752 0.3333
AnimeTIMM EVA Giant 0.6410 0.3796 0.3391
AnimeTIMM EVA02 Large 0.6401 0.3742 0.3423
AnimeTIMM SigLIP Giant 0.6362 0.3722 0.3267
PixAI Tagger v0.9 0.5980 0.3286 0.3251
Camie v2 0.5775 0.2109 0.2245

The next-best models are CAFormer B36 for micro F1, EVA Giant for macro F1, and EVA02 Large for mAP. The mAP lead is 3.84 percentage points.

Character tags

Tagger v1.0 ranks second in micro F1 on 2,099 shared Character tags.

See Character scores and details
Model Micro F1 ↑ Macro F1 ↑ mAP ↑
PixAI Tagger v1.0 0.9242 0.8919 0.9226
AnimeTIMM CAFormer B36 0.9069 0.8779 0.9079
AnimeTIMM ConvNeXtV2 Huge 0.9188 0.8974 0.9182
AnimeTIMM EVA Giant 0.9221 0.9018 0.9271
AnimeTIMM EVA02 Large 0.9179 0.8923 0.9226
AnimeTIMM SigLIP Giant 0.9265 0.9082 0.9232
PixAI Tagger v0.9 0.8198 0.7791 0.8376
Camie v2 0.7261 0.6491 0.7192

Tagger v1.0 ranks second in Character micro F1, 0.23 percentage points behind SigLIP Giant. SigLIP Giant also leads macro F1; EVA Giant leads mAP. These scores do not measure recognition outside the shared vocabulary.

Style tags

The benchmark scores 620 shared Style tags. These labels are returned under style by the Tagger v1.0 pipeline.

Model Micro F1 ↑ Macro F1 ↑ mAP ↑
PixAI Tagger v1.0 0.8143 0.7700 0.7976
Camie v2 0.3764 0.2914 0.4088

v0.9 and the five AnimeTIMM models do not support Style tags and are excluded from this table; missing support is not a zero score. The Style label set and scores are unchanged from the previous round. v0.9’s endpoint derives copyright/series tags from character names using a lookup table; it has no separate probability head for those tags, so we exclude them from learned-head comparisons.

How we ran the comparison
  • Images: 99,999 total, with 50,416 test images and 49,583 calibration images. Image dates span June 1–August 10, 2026, with 33,333 images from each of June, July, and August. No September images are included.
  • Shared labels: tags must appear in the vocabulary intersection for each supported category and have at least five ground-truth occurrences. Adding v0.9 reduced the shared sets to 8,407 General and 2,099 Character tags. All General and Character scores were recomputed on these new sets; none use the previous round’s intersection. Style, Copyright, and Meta retain their 620, 1,096, and 91 shared tags. Only Style scores for these categories are shown here.
  • Thresholds: each model and category uses one scalar threshold, selected on calibration and evaluated on test. The new summary does not list the selected threshold values.
  • Metrics: micro F1 aggregates prediction counts across tags; macro F1 weights each tag equally. mAP is mean average precision, computed using predictions saved with a common 0.05 probability floor, rather than fully dense scores.
  • Coverage: v0.9 completed inference on all 99,999 images. Existing models were rescored from their saved predictions without rerunning inference.
  • Overlap controls: evaluation uses the release's original labels. Known matches to our training data were excluded by key, MD5, and exact perceptual hash. External models' training overlap is unknown; approximate perceptual-hash matching was not performed. Release dates alone do not establish whether training data overlap.
  • Interpretation: no statistical significance analysis or full-dataset FP32 comparison was performed. Small differences should be treated as observations for this evaluation.

Inference performance

General micro F1 versus batch-16 throughput on an H100

On an H100 80 GB, v1.0 processed 48.3 images/s at batch 16, excluding preprocessing. It scored highest on General micro F1, though the other seven models ran faster in this setup.

See model sizes, speeds, and test setup
Model Params (M) Full vocabulary Input side (px) Eval batch End-to-end images/s/GPU B1 latency (ms) B16 images/s
PixAI Tagger v1.0 486.3 30,877 1008 16 21.8 24.95 48.3
AnimeTIMM CAFormer B36 134.0 12,476 384 32 128.5 19.53 375.8
AnimeTIMM ConvNeXtV2 Huge 692.6 12,476 512 32 73.8 14.98 122.1
AnimeTIMM EVA Giant 1030.6 12,476 560 32 35.7 17.37 108.8
AnimeTIMM EVA02 Large 316.8 12,476 448 32 85.3 21.82 170.5
AnimeTIMM SigLIP Giant 1183.5 12,476 512 32 40.6 19.01 136.8
PixAI Tagger v0.9 317.9 13,461 448 32 40.3 30.34 50.1
Camie v2 143.0 70,527 512 32 56.1 7.70 287.7

Full vocabulary sizes describe model resources; they are not the number of tags scored in the shared-vocabulary tables.

Timing scope. B1 and B16 include the forward pass, sigmoid, and output copy to CPU; preprocessing is excluded. End-to-end rates include the evaluation pipeline and are normalized per GPU. Each process used one H100 80 GB. v0.9 completed its eight-GPU run, including startup, in about 345.0 seconds. Its end-to-end rate divides the image count by the sum of shard runtimes, not the eight-GPU wall time. CPU allocation, cache, storage, and other jobs on the node can affect end-to-end speed.

Precision. v0.9 used FP32 weights, forward pass, and sigmoid, with TF32 disabled. Tagger v1.0 used a BF16 model with FP32 sigmoid. The five AnimeTIMM models used FP32 weights with BF16 autocast and FP32 sigmoid. Camie v2 used its official FP32 ONNX path. These are measurements of the configured paths, not a comparison of each model's maximum optimization potential.

Giant model timing and numerical checks

Each Giant used four GPUs; both ran simultaneously on one node sharing 40 CPUs. End-to-end throughput is image count divided by the sum of shard runtimes, not aggregate four-GPU throughput. CPU allocation, cache, and storage affect these rates. B1/B16 rates were derived from mean batch latency across four shards.

EVA Giant completed inference, including startup, in approximately 778.2 seconds; SigLIP Giant took 706.5 seconds. Together they added 199,998 image predictions.

FP32/BF16 probes used 64 distinct images per Giant. Maximum probability differences were 0.04323 for EVA Giant and 0.06364 for SigLIP Giant; these probes do not establish precision equivalence over the full dataset. Native preprocessing matched unmodified dghs-imgutils 0.19.0 exactly on 32 real images and six boundary-size images per Giant.

Full-vocabulary evaluation

On the full-vocabulary test set, v1.0 scored 0.723 overall micro F1 across its full tag list.

Full per-category precision, recall, F1, and thresholds

The full-vocabulary evaluation used a separate 80,531-image held-out test split and each of Tagger v1.0's 30,877 tags. It reached 0.723 overall micro F1. These results use a different dataset, vocabulary, and threshold-selection method from the common-tag benchmark above.

Thresholds in this table were selected after evaluating the test split, separately to maximize macro or micro F1. They are descriptive operating points, not independent estimates of performance at calibration-selected thresholds.

Category Tags Macro thr. Macro P Macro R Macro F1 Micro thr. Micro P Micro R Micro F1
Overall 30,877 0.20 0.714 0.671 0.674 0.35 0.732 0.714 0.723
General 15,043 0.17 0.504 0.506 0.480 0.34 0.699 0.693 0.696
Character 8,308 0.27 0.908 0.857 0.875 0.37 0.929 0.861 0.894
Style 4,917 0.15 0.934 0.873 0.894 0.19 0.944 0.861 0.901
Copyright 2,460 0.24 0.849 0.744 0.778 0.46 0.933 0.854 0.892
Meta 145 0.17 0.506 0.408 0.417 0.47 0.926 0.859 0.891
Rating 4 0.41 0.841 0.881 0.860 0.43 0.832 0.881 0.856

P = precision; R = recall; thr. = threshold. Macro and micro columns may use different thresholds.

Ways to use it

  • Make your image collection searchable.
  • Add tags to a dataset and review the results.
  • Use tags as a starting point for captions.
  • Use tags in your text-to-image workflow.

Limitations

  • Best suited to anime illustrations. We haven’t measured how well it works on other kinds of images.
  • It can only return tags it knows. The cutoff is May 2026, so newer characters, franchises, and styles may be missing.
  • Expect some missed or incorrect tags. Check details like counts, attributes, and style labels when they matter.
  • Adjust thresholds for your images. A high score doesn’t guarantee a correct tag.
  • Moderation: do not rely on the tagger alone for safety moderation, legal decisions, or age verification.
  • Benchmark scope: the comparison covers the listed models, shared labels, and measured inference configurations. It does not establish universal superiority or performance outside the shared vocabulary.

Figure source data

The benchmark figures and comparison tables use the supplied evaluation summary. Common-tag data, v0.9 comparison data and the Python plotting script are included, along with editable SVG and PDF versions of all three figures in figures/. No evaluation was rerun for this card.

Downloads last month
10
Safetensors
Model size
0.5B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using pixai-labs/pixai-tagger-v1.0 1