from transformers import pipeline import gradio as gr import os import io import IPython.display from PIL import Image import base64 get_completion = pipeline("image-to-text",model="Salesforce/blip-image-captioning-base") def summarize(input): output = get_completion(input) return output[0]['generated_text'] import gradio as gr def image_to_base64_str(pil_image): byte_arr = io.BytesIO() pil_image.save(byte_arr, format='PNG') byte_arr = byte_arr.getvalue() return str(base64.b64encode(byte_arr).decode('utf-8')) def captioner(image): base64_image = image_to_base64_str(image) result = get_completion(base64_image) return result[0]['generated_text'] gr.close_all() demo = gr.Interface(fn=captioner, inputs=[gr.Image(label="Upload image", type="pil")], outputs=[gr.Textbox(label="Caption")], title="Image Captioning with BLIP", description="Caption any image using the BLIP model", allow_flagging="never") demo.launch()