Downloads · 30 days
0
DraconicDragon/taggerine-mixed-bf16
taggerine-mixed-bf16 is a image classification model from DraconicDragon. Use it when you need a label for an image. The card lists the license as apache-2.0.
This repository contains a mixed precision version of lodestones/taggerine. The backbone weights are converted to bf16 and the projection head weights are kept in fp32.
Downloads · 30 days
0
Access
Public
Updated Sep 19, 2026
Repo size
3.6 GB
Likes
0
Public
Click a slice to open those files.
.safetensors3.6 GB · 100%
From the Hugging Face model README
This repository contains a mixed precision version of lodestones/taggerine.
The backbone weights are converted to bf16 and the projection head weights are kept in fp32.
Why? – Because the original ReadMe states that the backbone was trained in bf16, so I'm thinking keeping it in fp32 is waste of storage space and bandwidth depending on situation.
Original ReadMe content
A multi-label image tagger trained on e621 and Danbooru annotations, using a DINOv3 ViT-H/16+ backbone fine-tuned end-to-end with a single linear projection head.
| Property | Value |
|---|---|
| Backbone | facebook/dinov3-vith16plus-pretrain-lvd1689m |
| Architecture | ViT-H/16+ · 32 layers · hidden dim 1280 · 20 heads · SwiGLU MLP · RoPE · 4 register tokens |
| Head | Linear((1 + 4) × 1280 → 74 625) — CLS + 4 register tokens concatenated |
| Vocabulary | 74 625 tags (min frequency ≥ 50 across training set) |
| Input resolution | Any multiple of 16 px — trained at 512 px, generalises to higher resolutions |
| Input normalisation | ImageNet mean/std [0.485, 0.456, 0.406] / [0.229, 0.224, 0.225] |
| Output | Raw logits — apply sigmoid for per-tag probabilities |
| Parameters | ~632 M (backbone) + ~480 M (head) |
| Hyperparameter | Value |
|---|---|
| Training data | e621 + Danbooru (parquet) |
| Batch size | 32 |
| Learning rate | 1e-6 |
| Warmup steps | 50 |
| Loss | BCEWithLogitsLoss with per-tag pos_weight = (neg/pos)^(1/T), cap 100 |
| Optimiser | AdamW (β₁=0.9, β₂=0.999, wd=0.01) |
| Precision | bfloat16 (backbone) / float32 (projection + loss) |
| Hardware | 2× GPU, ThreadPoolExecutor + NCCL all-reduce |

pip install -r requirements.txt
Or manually:
pip install torch torchvision safetensors Pillow requests \
python-multipart fastapi uvicorn jinja2 aiofiles
huggingface-cli download lodestones/taggerine \
tagger_proto.safetensors \
tagger_vocab_with_categories_and_alias_updated.json \
tagger_ui_server.py \
inference_tagger_standalone.py \
--local-dir .
Note:
tagger_proto.safetensorsis ~5.3 GB. Make sure you have enough disk space.
tagger_ui/ templates folderThe server requires the tagger_ui/templates/ directory to be present alongside tagger_ui_server.py:
huggingface-cli download lodestones/taggerine \
--include "tagger_ui/**" \
--local-dir .
python tagger_ui_server.py \
--checkpoint tagger_proto.safetensors \
--vocab tagger_vocab_with_categories_and_alias_updated.json \
--port 7860
# → open http://localhost:7860
CPU-only machine? Add --device cpu (inference will be slower):
python tagger_ui_server.py \
--checkpoint tagger_proto.safetensors \
--vocab tagger_vocab_with_categories_and_alias_updated.json \
--device cpu \
--port 7860
python inference_tagger_standalone.py \
--checkpoint tagger_proto.safetensors \
--vocab tagger_vocab_with_categories_and_alias_updated.json \
--images photo.jpg \
--topk 30
| File | Description |
|---|---|
tagger_proto.safetensors | Model weights (bfloat16) |
tagger_vocab_with_categories_and_alias_updated.json | {"idx2tag": [...], "tag2category": {...}} — 74 625 tags with category metadata |
tagger_vocab_with_categories.json | Same without alias data |
tagger_vocab.json | Minimal vocab — {"idx2tag": [...]} only |
inference_tagger_standalone.py | Self-contained CLI inference script (no transformers dep) |
tagger_ui_server.py | FastAPI + Jinja2 web UI server |
requirements.txt | Python dependencies |
Tags are sourced from e621 and Danbooru annotations and cover:
solo, duo, anthro, 1girl, male, …)looking at viewer, sitting, …digital art, hi res, sketch, watercolor, …Minimum tag frequency threshold: 50 occurrences across the combined dataset.
Apache 2.0