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