Spaces:
Runtime error
Runtime error
##### Set API variables ##### | |
import os | |
hf_api_key = os.environ['HF_API_KEY'] | |
hf_api_itt_base = os.environ['HF_API_ITT_BASE'] | |
##### Helper functions ##### | |
import io, base64, requests, json | |
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 get_completion(inputs, parameters = None, ENDPOINT_URL = hf_api_itt_base): | |
headers = { | |
"Authorization": f"Bearer {hf_api_key}", | |
"Content-Type": "application/json" | |
} | |
data = { "inputs" : inputs } | |
if parameters is not None: | |
data.update({"parameters" : parameters}) | |
response = requests.post(ENDPOINT_URL, | |
headers = headers, | |
data = json.dumps(data)) | |
return json.loads(response.content.decode("utf-8")) | |
def captioner(pil_image): | |
base64_image = image_to_base64_str(pil_image) | |
result = get_completion(base64_image) | |
return result[0]['generated_text'] | |
##### Gradio App ##### | |
import gradio as gr | |
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", | |
examples = ["tank-aerial-view.jpg", "f35-carrier-takeoff.jpg", "the_los_angelesclass_submarine.jpg"]) | |
demo.launch() |