bhoumik12's picture
Upload 3 files
ee8615d verified
import gradio as gr
from web_backend import predict_image_pil
def analyze_image(image):
label, confidence, heatmap = predict_image_pil(image)
if label == "Fake":
if confidence >= 90:
risk = "🚨 High likelihood of Deepfake"
elif confidence >= 60:
risk = "⚠️ Possibly Deepfake"
else:
risk = "⚠️ Uncertain Deepfake"
else:
if confidence >= 90:
risk = "✅ Likely Real"
elif confidence >= 60:
risk = "⚠️ Possibly Real"
else:
risk = "⚠️ Uncertain – Needs Review"
return label, f"{confidence} %", risk, heatmap
with gr.Blocks() as demo:
# -------- MAIN TITLE ONLY --------
gr.Markdown("# 🧠 Deepfake Image Detection System")
with gr.Row():
# LEFT SIDE
with gr.Column(scale=1):
image_input = gr.Image(
label="Upload Image",
type="pil",
height=280
)
submit_btn = gr.Button("Submit")
clear_btn = gr.Button("Clear")
# RIGHT SIDE
with gr.Column(scale=2):
prediction = gr.Text(label="Prediction")
confidence = gr.Text(label="Confidence")
risk = gr.Text(label="Risk Assessment")
heatmap = gr.Image(
label="Explainability Heatmap",
height=280
)
submit_btn.click(
fn=analyze_image,
inputs=image_input,
outputs=[prediction, confidence, risk, heatmap]
)
clear_btn.click(
fn=lambda: (None, "", "", None),
inputs=None,
outputs=[image_input, prediction, confidence, risk]
)
demo.launch()