vision / app.py
ms-analytics's picture
Update app.py
e98358f
import requests
import gradio as gr
from PIL import Image
import io
import base64
from pathlib import Path
url = 'https://source.unsplash.com/random/'
def fn():
pass
def getJpeg(url):
response = requests.get(url)
response.content
in_memory_file = io.BytesIO(response.content)
im = Image.open(in_memory_file)
return im
def encode_image(url):
# To convert your image file into the base64 format required by the API
img_b64 = gr.processing_utils.encode_url_or_file_to_base64(url)
return url, img_b64
def get_caption(img_b64):
r = requests.post(url='https://hf.space/embed/OFA-Sys/OFA-Image_Caption/+/api/predict/', json={"data": [img_b64]})
result = r.json()
return result['data'][0]
def fn(url):
img_url, img_b64 = encode_image(url)
#im = getJpeg(img_url)
write_image(decode_image(img_b64))
cap = get_caption(img_b64)
return cap,Image.open('./image.png')
#img_url, img_b64 = encode_image(url)
def decode_image(img_b64):
img_b64 =img_b64.partition(",")[2]
#decode base64 string data
decoded_data=base64.b64decode((img_b64))
return decoded_data
def write_image(img):
img_file = open('./image.png', 'wb')
img_file.write(img)
img_file.close()
'''
io = gr.Interface(
fn= fn, inputs=gr.Textbox(url, label='Default URL'),
outputs=[gr.Text(label='Model\'s Description'), gr.Image(label='Image')]
)
'''
io = gr.Interface(
description="Machine Vision Generated Description of Image @ URL",
fn= fn, inputs='text' ,
outputs=['text', 'image'],
examples=[
['https://source.unsplash.com/random/'],
['https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iz_kgFAaRVSs/v1/-1x-1.jpg']
],
article=Path("./description.md").read_text()
)
io.launch()