import gradio as gr from transformers import pipeline classifier = pipeline( "zero-shot-image-classification", model="google/siglip2-base-patch16-224", device=-1 ) def classify_image(image, candidate_labels): """ Takes an image and a comma-separated string of candidate labels, and returns the classification scores. """ labels = [label.strip() for label in candidate_labels.split(",") if label.strip()] results = classifier(image, candidate_labels=labels) return results[0] iface = gr.Interface( fn=classify_image, inputs=[ gr.Image(type="pil", label="Input Image"), gr.Textbox(value="cat, dog, bird, car, airplane", label="Candidate Labels (comma separated)") ], outputs=gr.JSON(label="Classification Results"), title="SigLIP Zero-Shot Image Classifier", description="This app uses the Google SigLIP model (siglip2-base-patch16-224) for zero-shot image classification on CPU. " "Enter an image and a set of candidate labels to see the prediction scores." ) if __name__ == "__main__": iface.launch()