# import streamlit as st | |
# import numpy as np | |
# import cv2 | |
# import tempfile | |
# import os | |
# # ---- Page Configuration ---- | |
# st.set_page_config(page_title="Fake & Deepfake Detection", layout="wide") | |
# st.title("π° Fake News & Deepfake Detection Tool") | |
# st.write("π Detect Fake News, Deepfake Images, and Videos using AI") | |
# # ---- Fake News Detection Section ---- | |
# st.subheader("π Fake News Detection") | |
# news_input = st.text_area("Enter News Text:", "Type here...") | |
# if st.button("Check News"): | |
# st.write("π Processing...") | |
# # Fake news detection logic (Placeholder) | |
# st.success("β Result: This news is FAKE.") # Replace with ML Model | |
# # ---- Deepfake Image Detection Section ---- | |
# st.subheader("πΈ Deepfake Image Detection") | |
# uploaded_image = st.file_uploader("Upload an Image", type=["jpg", "png", "jpeg"]) | |
# if uploaded_image is not None: | |
# st.image(uploaded_image, caption="Uploaded Image", use_column_width=True) | |
# if st.button("Analyze Image"): | |
# st.write("π Processing...") | |
# # Deepfake detection logic (Placeholder) | |
# st.error("β οΈ Result: This image is a Deepfake.") # Replace with model | |
# # ---- Deepfake Video Detection Section ---- | |
# st.subheader("π₯ Deepfake Video Detection") | |
# uploaded_video = st.file_uploader("Upload a Video", type=["mp4", "avi", "mov"]) | |
# if uploaded_video is not None: | |
# st.video(uploaded_video) | |
# if st.button("Analyze Video"): | |
# st.write("π Processing...") | |
# # Deepfake video detection logic (Placeholder) | |
# st.warning("β οΈ Result: This video contains Deepfake elements.") # Replace with model | |
# st.markdown("πΉ **Developed for Fake News & Deepfake Detection Hackathon**") | |
import gradio as gr | |
import cv2 | |
import numpy as np | |
# β Image Size Limit (MB) | |
MAX_IMAGE_SIZE_MB = 5 # 5MB se zyada allow nahi karega | |
# β Video Size Limit (MB) | |
MAX_VIDEO_SIZE_MB = 20 # 20MB se zyada allow nahi karega | |
# β Image Processing Function | |
def process_image(image): | |
if image is None: | |
return "β No image uploaded!" | |
# β Image Resize (Optional: 512x512) | |
image = cv2.resize(image, (512, 512)) | |
return image | |
# β Video Processing Function | |
def process_video(video_path): | |
if video_path is None: | |
return "β No video uploaded!" | |
# β Video Size Check | |
import os | |
file_size_mb = os.path.getsize(video_path) / (1024 * 1024) | |
if file_size_mb > MAX_VIDEO_SIZE_MB: | |
return f"β Video is too large! (Size: {file_size_mb:.2f}MB) - Limit: {MAX_VIDEO_SIZE_MB}MB" | |
return f"β Video uploaded successfully! (Size: {file_size_mb:.2f}MB)" | |
# β Gradio Interface | |
with gr.Blocks() as app: | |
gr.Markdown("## π΅οΈββοΈ Fake News & Deepfake Detection Tool") | |
with gr.Row(): | |
img_input = gr.Image(type="numpy", label="πΌ Upload Image (Max: 5MB)") | |
img_output = gr.Image(label="π Processed Image") | |
img_button = gr.Button("π Detect Image") | |
img_button.click(process_image, inputs=img_input, outputs=img_output) | |
with gr.Row(): | |
video_input = gr.File(label="π₯ Upload Video (Max: 20MB)", file_types=[".mp4"]) | |
video_output = gr.Textbox(label="π Video Status") | |
video_button = gr.Button("π Detect Video") | |
video_button.click(process_video, inputs=video_input, outputs=video_output) | |
app.launch() | |