File size: 1,103 Bytes
2d38802
330b6d2
9bc11a6
b8bf0c0
9bc11a6
 
330b6d2
 
 
9bc11a6
330b6d2
 
 
9bc11a6
330b6d2
 
b8bf0c0
330b6d2
2f69448
330b6d2
 
d748331
9bc11a6
330b6d2
b8bf0c0
330b6d2
2f69448
9bc11a6
 
 
 
 
 
 
871fbb3
9bc11a6
330b6d2
 
 
 
9bc11a6
 
c1ebb63
d748331
330b6d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from transformers import pipeline
import gradio as gr
from PIL import ExifTags

# Pakai model publik (gratis, tanpa login)
classifier = pipeline("image-classification", model="orpatashnik/image-real-fake")

def detect_image(image):
    # --- Cek metadata (EXIF) ---
    exif_result = "⚠️ Tidak ada metadata kamera"
    try:
        raw_exif = image._getexif()
        if raw_exif:
            exif_result = "✅ Metadata kamera terdeteksi"
    except:
        pass

    # --- Prediksi model ---
    results = classifier(image)
    label = results[0]["label"]
    score = results[0]["score"] * 100

    if "fake" in label.lower():
        verdict = "🚨 Kemungkinan besar Hasil AI"
    else:
        verdict = "📷 Kemungkinan besar Foto Asli"

    return f"""{verdict}

Label Model: {label}
Confidence: {score:.2f}%

Cek Metadata: {exif_result}
"""

# Gradio app
iface = gr.Interface(
    fn=detect_image,
    inputs=gr.Image(type="pil"),
    outputs="text",
    title="AI Image Detector (Gratis)",
    description="Upload gambar untuk mendeteksi apakah foto asli atau hasil AI"
)

iface.launch()