| from PIL import Image | |
| import requests | |
| import gradio as gr | |
| from transformers import BlipProcessor, BlipForConditionalGeneration | |
| model_id = "Salesforce/blip-image-captioning-base" | |
| model = BlipForConditionalGeneration.from_pretrained(model_id) | |
| processor = BlipProcessor.from_pretrained(model_id) | |
| def launch(input): | |
| outputs = [] | |
| for file in input: | |
| inputs = processor(Image.open(file.name), return_tensors="pt") | |
| out = model.generate(**inputs) | |
| outputs.append(processor.decode(out[0], skip_special_tokens=True)) | |
| return outputs | |
| description = "Simple BLIP image captioning app that supports multiple images as input." | |
| iface = gr.Interface(launch, description=description, inputs=gr.inputs.File(file_count="multiple"), outputs="text") | |
| iface.launch() |