MetaQu commited on
Commit
404b831
·
verified ·
1 Parent(s): d4d87dd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -12
app.py CHANGED
@@ -1,14 +1,46 @@
1
  from transformers import pipeline
 
 
2
 
3
- # Menggunakan model publik dan gratis untuk klasifikasi gambar.
4
- # Model 'orpatashnik/image-real-fake' diganti karena tidak dapat diakses.
5
- classifier = pipeline("image-classification", model="google/vit-base-patch16-224")
6
-
7
- # Ini adalah contoh penggunaan, Anda bisa mengadaptasi sesuai kebutuhan.
8
- # Contoh: Melakukan klasifikasi pada file gambar.
9
- # from PIL import Image
10
- # import requests
11
- # url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/cat-dog.jpg"
12
- # image = Image.open(requests.get(url, stream=True).raw)
13
- # result = classifier(image)
14
- # print(result)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from transformers import pipeline
2
+ import gradio as gr
3
+ from PIL import Image, ExifTags
4
 
5
+ # Muat model Hugging Face khusus deteksi AI
6
+ classifier = pipeline("image-classification", model="elacour/ai-image-detection")
7
+
8
+ def detect_image(image):
9
+ # --- Cek metadata (EXIF) ---
10
+ exif = {}
11
+ try:
12
+ raw_exif = image._getexif()
13
+ if raw_exif:
14
+ exif = {ExifTags.TAGS.get(k, k): v for k, v in raw_exif.items()}
15
+ except:
16
+ pass
17
+
18
+ if not exif:
19
+ exif_result = "⚠️ Tidak ada metadata kamera → kemungkinan besar AI atau editan"
20
+ else:
21
+ exif_result = "✅ Metadata kamera terdeteksi"
22
+
23
+ # --- Prediksi model ---
24
+ results = classifier(image)
25
+ label = results[0]["label"]
26
+ score = results[0]["score"] * 100
27
+
28
+ if "fake" in label.lower() or "ai" in label.lower():
29
+ verdict = "🚨 Kemungkinan besar Hasil AI"
30
+ else:
31
+ verdict = "📷 Kemungkinan besar Foto Asli"
32
+
33
+ # --- Gabungan hasil ---
34
+ final_result = f"{verdict}\n\nLabel Model: {label}\nConfidence: {score:.2f}%\n\nCek Metadata: {exif_result}"
35
+ return final_result
36
+
37
+ # Buat UI Gradio
38
+ iface = gr.Interface(
39
+ fn=detect_image,
40
+ inputs=gr.Image(type="pil"),
41
+ outputs="text",
42
+ title="Hybrid AI Image Detector",
43
+ description="Upload foto untuk mendeteksi apakah gambar hasil kamera asli atau hasil AI."
44
+ )
45
+
46
+ iface.launch()