import gradio as gr from deepface import DeepFace import tempfile import os import traceback def analyze_image(image): try: # Save image to temp file with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as temp_file: image.save(temp_file.name) temp_path = temp_file.name # Run analysis result = DeepFace.analyze( img_path=temp_path, actions=["emotion", "gender"], enforce_detection=False )[0] os.remove(temp_path) emotion = result.get("dominant_emotion", "Unknown") gender = result.get("dominant_gender", "Unknown") return f"Gender: {gender}\nEmotion: {emotion}" except Exception as e: tb = traceback.format_exc() return f"Error occurred:\n{e}\n\nTraceback:\n{tb}" demo = gr.Interface( fn=analyze_image, inputs=gr.Image(type="pil"), outputs=gr.Textbox(label="Prediction"), title="DeepFace: Emotion & Gender Detection", description="Upload a clear face image. Model predicts gender and emotion." ) demo.launch()