import gradio as gr from fastai.vision.all import * from huggingface_hub import from_pretrained_fastai import torch, os import traceback os.environ.setdefault("OMP_NUM_THREADS", "1") torch.set_num_threads(1) learn = from_pretrained_fastai("Pablogps/kedar-200-birds") try: learn.to_fp32() except: pass labels = learn.dls.vocab def predict(img): try: # img = PILImage.create(img) pred, pred_idx, probs = learn.predict(img) return {labels[i]: float(probs[i]) for i in range(len(labels))} except Exception as e: tb = traceback.format_exc() print(tb, flush=True) raise gr.Error(f"{type(e).__name__}: {e}") title = "Bad castle predictor" description = "A bad model that tries to identify the type of castle." examples = ['examples_american_crow.jpg', 'examples_barn_swallow.jpg', 'examples_pied_kingfisher.jpg'] demo = gr.Interface( fn=predict, inputs=gr.Image(type="pil"), outputs=gr.Label(num_top_classes=3), title=title, description=description, examples=examples, cache_examples=False, # <-- don’t pre-run at startup ) demo.queue(max_size=8).launch(show_error=True, debug=True)