File size: 4,907 Bytes
d1ceb4e 7727360 d1ceb4e 7727360 d1ceb4e 7727360 d1ceb4e 7727360 d1ceb4e 7727360 d1ceb4e 7727360 d1ceb4e 2c90212 7d52236 2c90212 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
---
license: apache-2.0
base_model: SmilingWolf/wd-vit-tagger-v3
pipeline_tag: image-classification
library_name: onnxruntime
language:
- fr
- en
tags:
- image-tagging
- anime
- photo-realistic
- onnx
- waifu-diffusion
- computer-vision
- browser-ml
- multi-label-classification
datasets:
- SmilingWolf/wd-vit-tagger-v3
---
# WD ViT Tagger v3 - ONNX Runtime
🎯 **Modèle ONNX optimisé pour le tagging d'images et l'analyse de contenu dans le navigateur**
Ce dépôt héberge une version ONNX optimisée du modèle [WD ViT Tagger v3](https://huggingface.co/SmilingWolf/wd-vit-tagger-v3), conçu pour une inférence efficace dans les navigateurs web via ONNX Runtime Web.
---
## 📋 Détails du Modèle
- **Modèle de Base** : [SmilingWolf/wd-vit-tagger-v3](https://huggingface.co/SmilingWolf/wd-vit-tagger-v3)
- **Type de Modèle** : Vision Transformer (ViT) pour classification multi-labels d'images
- **Format** : ONNX (optimisé pour WebAssembly)
- **Taille d'Entrée** : 448×448 RGB (ordre des canaux **BGR**)
- **Sortie** : ~9 000 tags répartis en plusieurs catégories
- **Licence** : Apache 2.0
---
## 🎨 Capacités
Le modèle peut analyser et étiqueter des images avec une grande précision pour :
- **Tags généraux** : Objets, actions, attributs, styles
- **Tags de personnages** : Identification de personnages (anime/manga)
- **Tags de classification** : général / sensible / explicite
- **Photos réalistes** : Fonctionne parfaitement sur des images réelles
- **Anime/Manga** : Modèle spécialisé pour styles illustrés
---
## 🚀 Utilisation
### 🌐 Outil en ligne (100% local, aucun serveur)
👉 **https://fmenguy.fr/oai/**
> **100% client-side** — aucune image envoyée, tout se passe dans votre navigateur.
---
### 📦 JavaScript (Navigateur – ONNX Runtime Web)
```javascript
import * as ort from 'onnxruntime-web';
// Charger le modèle
const session = await ort.InferenceSession.create(
'https://huggingface.co/Skarn55/oai/resolve/main/model.onnx',
{ executionProviders: ['wasm'] }
);
// Préparer l'image (448x448, BGR, plage 0-255)
const imageData = prepareImage(votreImage); // Voir preprocessing ci-dessous
const tensor = new ort.Tensor('float32', imageData, [1, 448, 448, 3]);
// Exécuter l'inférence
const results = await session.run({ [session.inputNames[0]]: tensor });
const scores = results[session.outputNames[0]].data;
// Filtrer les tags
const tags = scores
.map((score, i) => ({ tag: tagNames[i], score }))
.filter(x => x.score > 0.35)
.sort((a, b) => b.score - a.score);
// Affichage résultat
console.log("Tags détectés :", tags);
```
🔧 Prétraitement (Python)
def prepare_square_image(image, target_size=448):
canvas = Image.new("RGBA", image.size, (255, 255, 255))
canvas.alpha_composite(image.convert("RGBA"))
image = canvas.convert("RGB")
max_dim = max(image.size)
pad_left = (max_dim - image.size[0]) // 2
pad_top = (max_dim - image.size[1]) // 2
padded = Image.new("RGB", (max_dim, max_dim), (255, 255, 255))
padded.paste(image, (pad_left, pad_top))
if max_dim != target_size:
padded = padded.resize((target_size, target_size), Image.BICUBIC)
return padded
## 📊 Performance
| Élément | Valeur |
|--------|--------|
| Inférence navigateur | 3–5 s |
| Taille modèle | ~250 Mo |
| Tags totaux | 10 861 |
| Seuil recommandé | 0.35 |
---
## 📁 Fichiers fournis
- `model.onnx`
- `selected_tags.csv`
---
## 🏷️ Catégories de tags
| Catégorie | Description | Exemples |
|----------|-------------|----------|
| Général | tags visuels | girl, solo |
| Artiste | noms d’artistes | … |
| Copyright | franchises | … |
| Personnage | noms de personnages | … |
| Meta | métadonnées | … |
| Classification | general, sensitive, explicit | … |
---
## 🎯 Cas d'usages
- Tagging automatique d'images
- Modération / filtrage
- SEO (métadonnées images)
- Annotation datasets ML
- Apps 100% navigateur (confidentialité)
---
## ⚙️ Spécifications Techniques
- Entrée : `float32`, `[1, 448, 448, 3]`, **BGR**, 0–255
- Sortie : `float32`, `[1, 10861]`
- Activation : **sigmoid**
---
## 🙏 Crédits
- **Modèle original** : SmilingWolf
- **Dataset** : WaifuDiffusion v3
- **Conversion ONNX** : François MENGUY
---
## 📜 Licence
Licence **Apache 2.0**, autorise :
- Utilisation commerciale
- Modifications
- Distribution
- Usage privé
Veuillez créditer **SmilingWolf**.
---
## 🔗 Modèles Associés
- `wd-vit-tagger-v3`
- `wd-swinv2-tagger-v3`
- `wd-convnext-tagger-v3`
---
## 🛠️ Autres modèles par François MENGUY
- `Skarn55/gender-classification-onnx`
- https://fmenguy.fr/oai/
---
## 📧 Contact
Ouvrez une issue pour tout problème concernant cette version ONNX.
> Conversion ONNX réalisée avec ❤️ par François MENGUY.
|