| import gradio as gr |
| import pipeline |
|
|
| custom_css = """ |
| .gradio-container { |
| max-width: 1400px !important; |
| } |
| #component-0, #component-1, #component-2, #component-3 { |
| min-height: 500px !important; |
| } |
| .output-class { |
| min-height: 300px !important; |
| font-size: 24px !important; |
| padding: 30px !important; |
| } |
| .input-image, .input-video, .input-audio { |
| min-height: 500px !important; |
| } |
| """ |
|
|
| title = "EfficientNetV2 Deepfakes Video Detector" |
| description = "EfficientNetV2 Deepfakes Image Detector by using frame-by-frame detection." |
|
|
| image_interface = gr.Interface( |
| fn=pipeline.deepfakes_image_predict, |
| inputs=gr.Image(label="Upload Image", height=500), |
| outputs=gr.Textbox(label="Detection Result", lines=8, scale=2), |
| examples=["images/images_lady.jpg", "images/images_fake_image.jpg"], |
| cache_examples=False, |
| title="Image Deepfake Detection", |
| description="Upload an image to detect if it's real or fake" |
| ) |
|
|
| video_interface = gr.Interface( |
| fn=pipeline.deepfakes_video_predict, |
| inputs=gr.Video(label="Upload Video", height=500), |
| outputs=gr.Textbox(label="Detection Result", lines=8, scale=2), |
| examples=["videos/celeb_synthesis.mp4", "videos/real-1.mp4"], |
| cache_examples=False, |
| title="Video Deepfake Detection", |
| description="Upload a video to detect if it's real or fake (frame-by-frame analysis)" |
| ) |
|
|
| audio_interface = gr.Interface( |
| fn=pipeline.deepfakes_audio_predict, |
| inputs=gr.Audio(), |
| outputs=gr.Textbox(), |
| title="Audio Deepfake Detection" |
| ) |
|
|
| text_interface = gr.Interface( |
| fn=pipeline.deepfakes_text_predict, |
| inputs=gr.Textbox( |
| label="Input Text", |
| placeholder=( |
| "Paste any text here to check if it was written by a human or " |
| "generated by an AI (articles, essays, emails, descriptions…)" |
| ), |
| lines=10, |
| ), |
| outputs=gr.Textbox( |
| label="Detection Result", |
| lines=10, |
| ), |
| examples=[ |
| ["The Eiffel Tower, constructed between 1887 and 1889, was designed by engineer Gustave Eiffel as the entrance arch for the 1889 World's Fair held in Paris."], |
| ["In the rapidly evolving landscape of artificial intelligence, large language models have demonstrated remarkable capabilities across a wide range of natural language processing tasks, achieving state-of-the-art performance on numerous benchmarks."], |
| ["Yesterday I went to the market and bought some fresh vegetables. The tomatoes looked really good so I grabbed a few extra ones for the pasta sauce I was planning to make for dinner."], |
| ], |
| cache_examples=False, |
| title="AI Text Detection", |
| description=( |
| "Paste any text to detect whether it was written by a human or generated by an AI. " |
| "Powered by a hybrid DeBERTa-v3-small + BiLSTM + CNN + Transformer model." |
| ), |
| ) |
|
|
| app = gr.TabbedInterface( |
| [image_interface, video_interface, audio_interface, text_interface], |
| ["Image inference", "Video inference", "Audio inference", "Text inference"], |
| css=custom_css |
| ) |
|
|
| if __name__ == '__main__': |
| app.launch() |