AIorNot / app.py
brawl7787
Initial clean commit with LFS
2d2db50
Raw
History Blame Contribute Delete
1.64 kB
from fastai.vision.all import load_learner
import gradio as gr
from fastai.vision.all import *
import numpy as np
import torch
dummy_img = PILImage.create(np.zeros((224,224,3), dtype=np.uint8))
dblock = DataBlock(
blocks=(ImageBlock, CategoryBlock(vocab=['class_0', 'class_1'])),
get_items=lambda _: [dummy_img],
get_y=lambda _: 'class_0',
item_tfms=Resize(224)
)
dls = dblock.dataloaders(source=None, bs=1, device='cpu')
learn = vision_learner(
dls,
resnet18,
n_out=2,
pretrained=False,
normalize=False
)
learn.model.load_state_dict(
torch.load("toai.bin", map_location="cpu")
)
learn.model.eval()
from fastai.vision.all import PILImage
from PIL import Image
import requests
from io import BytesIO
categories = ['AI Generated', 'Not AI Generated']
def classify_image(img):
fastai_img = PILImage.create(img)
pred, pred_idx, probs = learn.predict(fastai_img)
return dict(zip(categories, map(float, probs)))
interface = gr.Interface(fn=classify_image, inputs=gr.Image(type="pil", image_mode="RGB"),
outputs=gr.Label(),
examples=["https://huggingface.co/datasets/brawl7787/example_img/resolve/main/william_D.jpeg",
"https://huggingface.co/datasets/brawl7787/example_img/resolve/main/william_D_dall-e.jpeg",
"https://huggingface.co/datasets/brawl7787/example_img/resolve/main/william_D_gemini.jpg"],
cache_examples=False,
title="AI or Not AI Image Classifier",
description="Upload an image to determine if it is AI generated or not.")
interface.launch(inline=True)