--- 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.