Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| from PIL import Image | |
| import os | |
| # Lấy giá trị của biến môi trường | |
| model_name = os.getenv("Model_name") # Lấy giá trị của biến môi trường | |
| # Khởi tạo pipeline | |
| pipe = pipeline("image-classification", model=model_name) | |
| # Hàm xử lý ảnh đầu vào | |
| def detect(image): | |
| # Chạy mô hình trên ảnh | |
| results = pipe(image) | |
| # Chuyển kết quả thành dạng dễ đọc | |
| result_dict = {res["label"]: res["score"] for res in results} | |
| # Lấy xác suất của từng lớp (DeepFake và Real) | |
| deepfake_score = result_dict.get("Fake", 0.0) | |
| real_score = result_dict.get("Real", 0.0) | |
| return deepfake_score, real_score | |
| custom_css = """ | |
| .button-gradient { | |
| background: linear-gradient(45deg, #ff416c, #ff4b2b, #ff9b00, #ff416c); | |
| background-size: 400% 400%; | |
| border: none; | |
| padding: 14px 28px; | |
| font-size: 16px; | |
| font-weight: bold; | |
| color: white; | |
| border-radius: 10px; | |
| cursor: pointer; | |
| transition: 0.3s ease-in-out; | |
| animation: gradientAnimation 2s infinite linear; | |
| box-shadow: 0 4px 10px rgba(255, 65, 108, 0.6); | |
| } | |
| @keyframes gradientAnimation { | |
| 0% { background-position: 0% 50%; } | |
| 25% { background-position: 50% 100%; } | |
| 50% { background-position: 100% 50%; } | |
| 75% { background-position: 50% 0%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| .button-gradient:hover { | |
| transform: scale(1.05); | |
| box-shadow: 0 6px 15px rgba(255, 75, 43, 0.8); | |
| } | |
| """ | |
| # Giao diện Gradio | |
| with gr.Blocks(css=custom_css) as demo: | |
| gr.Markdown("# 🔍 DeepFake Detector\nUpload an image to check if it's DeepFake or Real.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| image = gr.Image(type="pil", label="Upload Image") | |
| detect_button = gr.Button("Detect") | |
| with gr.Column(): | |
| deepfake_label = gr.Label(label="DeepFake Probability") | |
| real_label = gr.Label(label="Real Probability") | |
| detect_button.click(detect, inputs=[image], outputs=[deepfake_label, real_label]) | |
| # Khởi chạy ứng dụng | |
| demo.launch() | |