|
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() |