MetaQu commited on
Commit
330b6d2
·
verified ·
1 Parent(s): 1c41370

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -22
app.py CHANGED
@@ -1,32 +1,46 @@
1
- import gradio as gr
2
  from transformers import pipeline
3
- from PIL import Image
 
4
 
5
- # Gunakan model deteksi publik
6
- classifier = pipeline("image-classification", model="dima806/deepfake_vs_real_image_detection")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- def detect(image):
9
- # image dari Gradio
10
  results = classifier(image)
11
- # hasil tertinggi
12
- best = max(results, key=lambda x: x['score'])
13
- label = best['label']
14
- confidence = best['score'] * 100
15
 
16
- if "fake" in label.lower() or "generated" in label.lower() or "ai" in label.lower():
17
- verdict = "⚠️ Kemungkinan besar Gambar AI / Fake"
18
  else:
19
- verdict = " Kemungkinan besar Foto Asli"
20
 
21
- return f"{verdict}\n\nLabel: {label}\nConfidence: {confidence:.2f}%"
 
 
22
 
23
- app = gr.Interface(
24
- fn=detect,
25
- inputs=gr.Image(type="pil", label="Upload Foto"),
26
- outputs=gr.Textbox(label="Hasil Deteksi"),
27
- title="Detektor Foto vs AI",
28
- description="Unggah foto realistik untuk mendeteksi apakah foto asli atau hasil AI."
 
29
  )
30
 
31
- if __name__ == "__main__":
32
- app.launch()
 
 
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()