| |
| |
| """ |
| Created on Tue Jan 13 09:52:28 2026 |
| |
| @author: standarduser |
| """ |
|
|
| from gradio_client import Client, handle_file |
| import gradio as gr |
|
|
| def predict_from_space(image_path): |
| """Classify image using Space API.""" |
| |
| client = Client("ElBeh/image-fake-detector") |
| |
| try: |
| result = client.predict( |
| image=handle_file(image_path), |
| api_name="/predict" |
| ) |
| |
| |
| confidences = result['confidences'] |
| |
| |
| proba_dict = {item['label']: item['confidence'] for item in confidences} |
| proba_real = proba_dict.get('Real', 0.0) |
| proba_fake = proba_dict.get('Fake', 0.0) |
| |
| |
| prediction = 1 if proba_fake > 0.5 else 0 |
| label = "Fake" if prediction == 1 else "Real" |
| confidence = proba_fake if prediction == 1 else proba_real |
| |
| print(f"\nPrediction: {label}") |
| print(f"Confidence: {confidence:.4f} ({confidence*100:.2f}%)") |
| print(f"Real: {proba_real:.4f} | Fake: {proba_fake:.4f}") |
| |
| return { |
| 'Real': float(proba_real), |
| 'Fake': float(proba_fake) |
| } |
| |
| except Exception as e: |
| print(f"Error: {e}") |
| raise |
|
|
| def create_tab_classify_image(tab_label): |
| with gr.TabItem(tab_label): |
| gr.Interface( |
| fn=predict_from_space, |
| inputs=[ |
| gr.Image(type="filepath", label="Upload Image"), |
| ], |
| outputs=gr.Label(num_top_classes=2, label="Prediction"), |
| title="Image Fake Detector", |
| description="Upload an image to classify it as real or fake. The detector(XGBoost) uses several image statistics to classify the image." |
| ) |