File size: 1,924 Bytes
c57354c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
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) |