from transformers import pipeline import gradio as gr from PIL import Image, ExifTags # Muat model Hugging Face khusus deteksi AI classifier = pipeline("image-classification", model="elacour/ai-image-detection") def detect_image(image): # --- Cek metadata (EXIF) --- exif = {} try: raw_exif = image._getexif() if raw_exif: exif = {ExifTags.TAGS.get(k, k): v for k, v in raw_exif.items()} except: pass if not exif: exif_result = "⚠️ Tidak ada metadata kamera → kemungkinan besar AI atau editan" else: exif_result = "✅ Metadata kamera terdeteksi" # --- Prediksi model --- results = classifier(image) label = results[0]["label"] score = results[0]["score"] * 100 if "fake" in label.lower() or "ai" in label.lower(): verdict = "🚨 Kemungkinan besar Hasil AI" else: verdict = "📷 Kemungkinan besar Foto Asli" # --- Gabungan hasil --- final_result = f"{verdict}\n\nLabel Model: {label}\nConfidence: {score:.2f}%\n\nCek Metadata: {exif_result}" return final_result # Buat UI Gradio iface = gr.Interface( fn=detect_image, inputs=gr.Image(type="pil"), outputs="text", title="Hybrid AI Image Detector", description="Upload foto untuk mendeteksi apakah gambar hasil kamera asli atau hasil AI." ) iface.launch()