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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -17
app.py CHANGED
@@ -1,46 +1,45 @@
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()
 
1
  from transformers import pipeline
2
  import gradio as gr
3
+ from PIL import ExifTags
4
 
5
+ # Pakai model publik (gratis, tanpa login)
6
+ classifier = pipeline("image-classification", model="orpatashnik/image-real-fake")
7
 
8
  def detect_image(image):
9
  # --- Cek metadata (EXIF) ---
10
+ exif_result = "⚠️ Tidak ada metadata kamera"
11
  try:
12
  raw_exif = image._getexif()
13
  if raw_exif:
14
+ exif_result = "✅ Metadata kamera terdeteksi"
15
  except:
16
  pass
 
 
 
 
 
17
 
18
  # --- Prediksi model ---
19
  results = classifier(image)
20
  label = results[0]["label"]
21
  score = results[0]["score"] * 100
22
 
23
+ if "fake" in label.lower():
24
  verdict = "🚨 Kemungkinan besar Hasil AI"
25
  else:
26
  verdict = "📷 Kemungkinan besar Foto Asli"
27
 
28
+ return f"""{verdict}
29
+
30
+ Label Model: {label}
31
+ Confidence: {score:.2f}%
32
+
33
+ Cek Metadata: {exif_result}
34
+ """
35
 
36
+ # Gradio app
37
  iface = gr.Interface(
38
  fn=detect_image,
39
  inputs=gr.Image(type="pil"),
40
  outputs="text",
41
+ title="AI Image Detector (Gratis)",
42
+ description="Upload gambar untuk mendeteksi apakah foto asli atau hasil AI"
43
  )
44
 
45
  iface.launch()