import gradio as gr from fastai.learner import load_learner from fastai.vision.all import PILImage # Load the model directly (since it will be in the same repository) model = load_learner('model.pkl') def classify_image(image): # Convert to FastAI format img = PILImage.create(image) # Get prediction pred, pred_idx, probs = model.predict(img) # Return prediction and probability confidence = float(probs[pred_idx]) return { "Cat": confidence if str(pred).lower() == "cat" else 1 - confidence, "Not Cat": confidence if str(pred).lower() != "cat" else 1 - confidence } # Create the interface demo = gr.Interface( fn=classify_image, inputs=gr.Image(type="pil"), outputs=gr.Label(num_top_classes=2), title="🐱 Cat Detector", description="Upload an image to check if it contains a cat!", ) demo.launch()