ida / app.py
zeimoto's picture
first commit
c57354c
import requests
import gradio as gr
import json
from PIL import Image
from io import BytesIO
from resources import HF_ACCESS_TOKEN
def fetch_image(url):
try:
# Fetch the image from the provided URL
response = requests.get(url)
image = Image.open(BytesIO(response.content))
return image, response
except Exception as e:
return None
def url_to_image(url):
image, message = fetch_image(url)
if image:
return image, message
else:
return "Invalid URL or Unable to Fetch Image"
def caption (url):
#url = "https://1779092274.rsc.cdn77.org/temp/1714987285_ab89b05ca8071c563d50c6d85a7fdcbd.jpg"
image, desc = url_to_image(url)#requests.get(url=url)
API_URL = "https://api-inference.huggingface.co/models/Salesforce/blip-image-captioning-large"
headers = {"Authorization": "Bearer "+HF_ACCESS_TOKEN}
print("Status code:",desc.status_code)
if desc.status_code == 200:
print("Image downloaded successfully")
response = requests.post(API_URL, headers=headers, data=desc)
else:
print("Failed to download image")
return image,json.loads(response.text)[0]["generated_text"]
text_input = gr.Textbox(
label="URL",
info="Image's URL",
lines=5,
value="https://1779092274.rsc.cdn77.org/temp/1714987285_ab89b05ca8071c563d50c6d85a7fdcbd.jpg"
)
text_output = gr.Textbox(
label="Description",
info="Image's Description",
lines=5,
value=""
)
image_output = gr.Image(label="Output Image")
demo = gr.Interface(
fn=caption,
description= "Get the description for this image",
inputs=[text_input],
outputs=[image_output, text_output],
title="Image Description Assistante",
#capture_session=True
)
if __name__ == "__main__":
demo.launch(share=True)