Spaces:
Sleeping
Sleeping
| # First, make sure you've installed required packages | |
| # !pip install -U gradio transformers torch torchvision | |
| import gradio as gr | |
| from transformers import pipeline | |
| from PIL import Image | |
| import requests | |
| import torch | |
| # Load the pipeline (auto-detects CUDA if available) | |
| device = 0 if torch.cuda.is_available() else -1 | |
| pipe = pipeline("image-classification", model="prithivMLmods/Deep-Fake-Detector-v2-Model", device=device) | |
| def classify_image(image=None, url=None): | |
| if image is None and not url: | |
| return "Skill issue: You gave me nothing to work with." | |
| try: | |
| if url: | |
| image = Image.open(requests.get(url, stream=True).raw).convert("RGB") | |
| elif image: | |
| image = Image.fromarray(image).convert("RGB") | |
| except Exception as e: | |
| return f"Bro... that ain't an image: {str(e)}" | |
| result = pipe(image) | |
| return {entry["label"]: round(entry["score"], 3) for entry in result} | |
| # Set up the Gradio interface | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# π DeepFake Detector\nUpload an image or paste a URL. Let's see if you're being catfished.") | |
| with gr.Row(): | |
| image_input = gr.Image(type="numpy", label="Upload Image") | |
| url_input = gr.Textbox(label="Or Enter Image URL") | |
| submit_btn = gr.Button("π¨ Detect") | |
| output = gr.Label(num_top_classes=2) | |
| submit_btn.click(fn=classify_image, inputs=[image_input, url_input], outputs=output) | |
| # Launch the app | |
| demo.launch() | |