Downloads · 30 days
0
Skarn55/oai
oai is a image classification model from Skarn55. Use it when you need a label for an image. It is set up for onnxruntime. The card lists the license as apache-2.0.
🎯 Modèle ONNX optimisé pour le tagging d'images et l'analyse de contenu dans le navigateur
Downloads · 30 days
0
Access
Public
Updated Nov 16, 2025
Repo size
379 MB
Likes
0
Public
Click a slice to open those files.
.onnx379 MB · 100%
From the Hugging Face model README
🎯 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, conçu pour une inférence efficace dans les navigateurs web via ONNX Runtime Web.
Le modèle peut analyser et étiqueter des images avec une grande précision pour :
100% client-side — aucune image envoyée, tout se passe dans votre navigateur.
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
| Élément | Valeur |
|---|---|
| Inférence navigateur | 3–5 s |
| Taille modèle | ~250 Mo |
| Tags totaux | 10 861 |
| Seuil recommandé | 0.35 |
model.onnxselected_tags.csv| 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 | … |
float32, [1, 448, 448, 3], BGR, 0–255float32, [1, 10861]Licence Apache 2.0, autorise :
Veuillez créditer SmilingWolf.
wd-vit-tagger-v3wd-swinv2-tagger-v3wd-convnext-tagger-v3Skarn55/gender-classification-onnxOuvrez une issue pour tout problème concernant cette version ONNX.
Conversion ONNX réalisée avec ❤️ par François MENGUY.