import gradio as gr from fastai.vision.all import * from huggingface_hub import from_pretrained_fastai import torch, os os.environ.setdefault("OMP_NUM_THREADS", "1") torch.set_num_threads(1) learn = from_pretrained_fastai("Pablogps/castle-classifier-25") try: learn.to_fp32() except: pass labels = learn.dls.vocab def predict(img): img = PILImage.create(img) # same flow as before pred, pred_idx, probs = learn.predict(img) return {labels[i]: float(probs[i]) for i in range(len(labels))} title = "Bad castle predictor" description = "A bad model that tries to identify the type of castle." examples = ['spanish', 'french', 'japanese'] 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)