MetaQu's picture
Update app.py
923a637 verified
raw
history blame
1.6 kB
import gradio as gr
from transformers import pipeline
from PIL import Image
# Model utama untuk deteksi real vs AI
detector = pipeline("image-classification", model="umm-maybe/AI-image-detector")
# Model tambahan general classifier (backup)
general = pipeline("image-classification", model="google/vit-base-patch16-224")
def detect_image(img):
try:
# Prediksi dengan AI detector
result1 = detector(img)
label1 = result1[0]['label']
conf1 = round(result1[0]['score'] * 100, 2)
# Prediksi dengan model general (untuk cek ganda)
result2 = general(img)
label2 = result2[0]['label']
conf2 = round(result2[0]['score'] * 100, 2)
# Logika sederhana untuk memutuskan hasil
if "fake" in label1.lower() or "artificial" in label1.lower():
final = f"⚠️ Kemungkinan Besar AI Generated ({conf1}%)"
elif "real" in label1.lower():
final = f"✅ Kemungkinan Besar Foto Asli ({conf1}%)"
else:
final = f"⚠️ Tidak Pasti (cek manual)"
output = f"""
### Hasil Deteksi:
{final}
**Model AI-detector:** {label1} ({conf1}%)
**Model General (ViT):** {label2} ({conf2}%)
"""
return output
except Exception as e:
return f"Terjadi error: {str(e)}"
# UI Gradio
iface = gr.Interface(
fn=detect_image,
inputs=gr.Image(type="pil"),
outputs="markdown",
title="AI vs Real Image Detector",
description="Upload foto untuk mendeteksi apakah gambar kemungkinan besar asli atau hasil AI."
)
if __name__ == "__main__":
iface.launch()