user-agent's picture
Update app.py
30a32d3 verified
raw
history blame
1.4 kB
from turtle import title
import requests
from io import BytesIO
import gradio as gr
from transformers import pipeline
import numpy as np
from PIL import Image
import spaces
pipe = pipeline("zero-shot-image-classification", model="patrickjohncyh/fashion-clip")
images="dog.jpg"
@spaces.GPU
def shot(input, labels_text):
if isinstance(input, str) and (input.startswith("http://") or input.startswith("https://")):
# Input is a URL
response = requests.get(input)
PIL_image = Image.open(BytesIO(response.content)).convert('RGB')
else:
# Input is an uploaded image
PIL_image = Image.fromarray(np.uint8(input)).convert('RGB')
labels = labels_text.split(",")
res = pipe(images=PIL_image,
candidate_labels=labels,
hypothesis_template="This is a photo of a {}")
return {dic["label"]: dic["score"] for dic in res}
# Define the Gradio interface with the updated components
iface = gr.Interface(
fn=shot,
inputs=[
gr.Textbox(label="Image URL (starting with http/https) or Upload Image"),
gr.Textbox(label="Labels (comma-separated)")
],
outputs=gr.Label(),
description="Add an image URL (starting with http/https) or upload a picture, and provide a list of labels separated by commas.",
title="Zero-shot Image Classification"
)
# Launch the interface
iface.launch()