vision / app.py
ms-analytics's picture
Update app.py
e98358f
raw
history blame contribute delete
No virus
1.82 kB
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()