Spaces:
Sleeping
Sleeping
| 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() | |