AI-or-Not-v2 / app.py
Omnibus's picture
Update app.py
063d7d0
raw
history blame
No virus
1.5 kB
import gradio as gr
import torch
from transformers import AutoFeatureExtractor, AutoModelForImageClassification, pipeline
models=[
"Nahrawy/AIorNot",
"RishiDarkDevil/ai-image-det-resnet152",
"arnolfokam/ai-generated-image-detector",
]
pipe = pipeline("image-classification", "umm-maybe/AI-image-detector")
def image_classifier(image):
outputs = pipe(image)
results = {}
for result in outputs:
results[result['label']] = result['score']
return results
#demo = gr.Interface(fn=image_classifier, inputs=gr.Image(type="pil"), outputs="label", title=title, description=description)
#demo.launch(show_api=False)
def aiornot(image,mod_choose):
labels = ["Real", "AI"]
#feature_extractor = AutoFeatureExtractor.from_pretrained("microsoft/resnet-50")
mod=models[int(mod_choose)]
feature_extractor = AutoFeatureExtractor.from_pretrained("Nahrawy/AIorNot")
model = AutoModelForImageClassification.from_pretrained("Nahrawy/AIorNot")
input = feature_extractor(image, return_tensors="pt")
with torch.no_grad():
outputs = model(**input)
logits = outputs.logits
prediction = logits.argmax(-1).item()
label = labels[prediction]
return label
with gr.Blocks() as app:
with gr.Row():
with gr.Column():
inp = gr.Image(type='filepath')
mod_choose=gr.Number(value=0)
btn = gr.Button()
outp = gr.Textbox()
btn.click(aiornot,[inp,mod_choose],outp)
app.launch()