Describe the issue
Issue:
I’m trying to use the gradio_client python library to run LLaVa
Command:
from gradio_client import Client, file
imagePath = ""# a path to an image on your computer, or a url to an image
client = Client("https://llava.hliu.cc/")
job = client.submit("what image is this, file(imagePath), "Crop", api_name="/add_text")
return(job.result())# it returns a tuple, instead of a byte, string
Log/output:
([['<img src=igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi+1S2to1jiQAAAYzx1PqferFZ+kS6nLbSHVII4phIQgQjBXA56nvmtCsWbIKKKKQwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=" alt="user upload image" />what image is this', None]], '', None)
I had to reduce the output, because it is too large.
How I tried to fix the issue:
I used this function
import base64
def encodeImage(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
then I tried to decode the image using the above function before submitting it to gradio, but it didn’t work
after that, I did this:
def decodeBytes(byte_data):
return base64.b64decode(byte_data).decode('utf-8')
This function in the other hand, is being called after gradio’s request, but I got an error like this:
File "C:Userskefaspython programsgradio.py", line 9, in <module>
decoded_result = base64.b64decode(job.result()).decode('utf-8')
File "C:Program FilesPython310libbase64.py", line 80, in b64decode
s = _bytes_from_decode_data(s)
File "C:Program FilesPython310libbase64.py", line 45, in _bytes_from_decode_data
raise TypeError("argument should be a bytes-like object or ASCII "
TypeError: argument should be a bytes-like object or ASCII string, not 'tuple'
What can I do?