Spaces:
Sleeping
Sleeping
File size: 1,596 Bytes
8c30b41 2d38802 c03cdfb 923a637 c03cdfb 8c30b41 923a637 8c30b41 923a637 |
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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()
|