A fine-tuned
DeiT-tiny model for binary NSFW image classification (SFW vs NSFW). SFW is strictly scoped to CS/IT/Coding domain.
1from optimum.onnxruntime import ORTModelForImageClassification
2from transformers import DeiTImageProcessor
3import torch
4import requests
5from PIL import Image
6
7model_name = "navodPeiris/deit-nsfw"
8
9# Load ONNX model
10model = ORTModelForImageClassification.from_pretrained(model_name, subfolder="onnx")
11processor = DeiTImageProcessor.from_pretrained(model_name)
12
13# Image URL
14url = "https://www.cyberschoolers.com/wp-content/uploads/ztm-web-developer-course-curriculum.webp"
15
16# Download image
17image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
18
19# Preprocess
20inputs = processor(images=image, return_tensors="pt")
21
22# Run inference
23with torch.no_grad():
24 outputs = model(**inputs)
25
26logits = outputs.logits
27
28# Convert to probabilities
29probs = torch.softmax(logits, dim=-1)
30
31# Predicted class
32pred_id = torch.argmax(probs, dim=-1).item()
33label = model.config.id2label[pred_id]
34confidence = probs[0][pred_id].item()
35
36print(label, f"{confidence}")
1import { pipeline } from "@huggingface/transformers";
2const classifier = await pipeline(
3 "image-classification",
4 "navodPeiris/deit-nsfw",
5);
6const result = await classifier("image.jpg");