Zell
Initial Commit
9f9b2fc
raw
history blame
1.3 kB
import gradio as gr
import tensorflow as tf
import numpy as np
# 1. Load your model
model = tf.keras.models.load_model("face_forgery_detector.keras")
# 2. Define your inference function
def detect_forgery(image):
# Preprocess the image to match your model’s input requirements
img = tf.image.resize(image, (160, 160)) # Example size; adjust for your model
img = tf.expand_dims(img, axis=0)
img = img / 255.0 # Example normalization; adapt as needed
# Run inference
predictions = model.predict(img)[0] # e.g., [Real_prob, Fake_prob]
# Suppose predictions = [prob_real, prob_fake]
prob_real = predictions[0]
prob_fake = predictions[1]
# Format output
# You can return a dictionary or a string. For example:
if prob_fake > prob_real:
return f"Forged (Fake) with confidence {prob_fake:.2f}"
else:
return f"Real with confidence {prob_real:.2f}"
# 3. Build your Gradio interface
demo = gr.Interface(
fn=detect_forgery,
inputs=gr.Image(type="numpy"), # 'type="numpy"' gives a NumPy array
outputs="text",
title="Face Forgery Detector",
description="Upload a face image to check if it's likely forged or real."
)
# 4. Launch the app (Gradio handles the rest)
if __name__ == "__main__":
demo.launch()