File size: 820 Bytes
335843d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from transformers import AutoModelForImageClassification
from transformers import ViTImageProcessor
from PIL import Image
import torch

MODEL_NAME = "Jabrave/deepfake-detector"

model = AutoModelForImageClassification.from_pretrained(MODEL_NAME)

processor = ViTImageProcessor.from_pretrained(MODEL_NAME)

model.eval()


def predict_image(image_path):
    image = Image.open(image_path).convert("RGB")

    inputs = processor(images=image, return_tensors="pt")

    with torch.no_grad():
        outputs = model(**inputs)

    probs = torch.softmax(outputs.logits, dim=1)

    confidence, predicted_class = torch.max(probs, dim=1)

    label = model.config.id2label[predicted_class.item()]

    return {
        "label": label,
        "confidence": round(confidence.item() * 100, 2)
    }