Hayloo9838 commited on
Commit
7e64d27
·
verified ·
1 Parent(s): c2b312f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -0
app.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, UploadFile
2
+ from fastapi.responses import JSONResponse
3
+ from PIL import Image
4
+ import torch
5
+ from torchvision import transforms
6
+ from transformers import ViTFeatureExtractor, ViTForImageClassification
7
+ import io
8
+
9
+ app = FastAPI()
10
+
11
+ # Load model + processor
12
+ model = ViTForImageClassification.from_pretrained("Falconsai/nsfw_image_detection")
13
+ processor = ViTFeatureExtractor.from_pretrained("Falconsai/nsfw_image_detection")
14
+
15
+ transform = transforms.Compose([
16
+ transforms.Resize((224, 224)),
17
+ transforms.ToTensor()
18
+ ])
19
+
20
+ @app.post("/predict/")
21
+ async def predict(file: UploadFile):
22
+ image = Image.open(io.BytesIO(await file.read())).convert("RGB")
23
+ inputs = processor(images=image, return_tensors="pt")
24
+ with torch.no_grad():
25
+ outputs = model(**inputs)
26
+ logits = outputs.logits
27
+ predicted_class_idx = logits.argmax(-1).item()
28
+ label = model.config.id2label[predicted_class_idx]
29
+ return JSONResponse({"label": label})