Dharshaneshwaran's picture
Upload 11 files
f365f9c verified
import gradio as gr
import inference_2 as inference
title = " Multimodal Deepfake Detector"
description = "Detect deepfakes across **Video**, **Audio**, and **Image** modalities."
# Update layout with proportional scaling and spacing
video_interface = gr.Interface(
inference.deepfakes_video_predict,
gr.Video(label="Upload Video", scale=1),
"text",
examples=["videos/aaa.mp4", "videos/bbb.mp4"],
cache_examples=False
)
image_interface = gr.Interface(
inference.deepfakes_image_predict,
gr.Image(label="Upload Image", scale=1),
"text",
examples=["images/lady.jpeg", "images/fake_image.jpg"],
cache_examples=False
)
audio_interface = gr.Interface(
inference.deepfakes_spec_predict,
gr.Audio(label="Upload Audio", scale=1),
"text",
examples=["audios/DF_E_2000027.flac", "audios/DF_E_2000031.flac"],
cache_examples=False
)
# Apply CSS for consistent spacing and alignment
css = """
.gradio-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
padding: 20px;
}
.gradio-container .output {
margin-top: 10px;
width: 100%;
}
.gradio-container .input {
margin-bottom: 20px;
width: 100%;
}
"""
# Ensure the app layout is responsive
app = gr.TabbedInterface(
interface_list=[video_interface, audio_interface, image_interface],
tab_names=['Video Inference', 'Audio Inference', 'Image Inference'],
title=title,
css=css
)
# Add accessibility features (e.g., labels for inputs and outputs)
if __name__ == '__main__':
app.launch(share=False)