Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import requests | |
| from PIL import Image, UnidentifiedImageError | |
| from transformers import AutoProcessor, Blip2ForConditionalGeneration | |
| import torch | |
| import io | |
| st.title("Image Captioning with Fine-Tuned BLiPv2 Model") | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| try: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption="Uploaded Image", use_column_width=True) | |
| try: | |
| files = {"file": uploaded_file.getvalue()} | |
| print("Sending API request") | |
| response = requests.post("http://0.0.0.0:8502/generate-caption/", files=files) | |
| caption = response.json().get("caption") | |
| except requests.exceptions.RequestException as e: | |
| st.error(f"An error occurred while making the API request: {str(e)}") | |
| caption = "Error generating caption" | |
| except ValueError as e: | |
| st.error(f"An error occurred while parsing the API response: {str(e)}") | |
| caption = "Error generating caption" | |
| st.write("Generated Caption:") | |
| st.write(f"**{caption}**") | |
| except UnidentifiedImageError: | |
| st.error("The uploaded file is not a valid image. Please upload a JPG, JPEG, or PNG file.") | |
| except Exception as e: | |
| st.error(f"An unexpected error occurred: {str(e)}") | |
| else: | |
| st.write("Please upload an image to generate a caption.") |