from fastai.vision.all import * from fastai.vision.core import PILImage import gradio as gr # register your custom fn def is_cat(x): return x[0].isupper() # make sure it's in __main__ so load_learner can find it import __main__ __main__.is_cat = is_cat learn = load_learner('models/model.pkl') categories = ('Dog', 'Cat') def classify_image(img): img = PILImage.create(img) # ← convert here pred, idx, probs = learn.predict(img) return dict(zip(categories, map(float, probs))) image = gr.Image(type="pil") # or type="numpy" for Option B label = gr.Label(num_top_classes=2) examples = ['dog.png', 'cat.png', 'dunno.png'] intf = gr.Interface(classify_image, image, label, examples=examples) intf.launch(share=False)