File size: 1,613 Bytes
5a8da99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9a7077b
c8e72b8
 
5a8da99
c8e72b8
 
 
5a8da99
 
 
 
 
 
c8e72b8
5a8da99
 
 
 
 
c8e72b8
 
 
5a8da99
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
# import gradio as gr
# # from PIL import Image
# from transformers.utils import logging
# from transformers import BlipForConditionalGeneration, AutoProcessor

# logging.set_verbosity_error()

# model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
# processor = AutoProcessor.from_pretrained("Salesforce/blip-image-captioning-base")

# def caption_image(image):
#     inputs = processor(image, return_tensors="pt")
#     out = model.generate(**inputs)
#     caption = processor.decode(out[0], skip_special_tokens=True)
#     return caption



# gr.Interface(caption_image, gr.inputs.Image(), "text").launch()
# # gr.Interface(caption_image, image_input, caption_output).launch()




import streamlit as st
# from PIL import Image
from transformers.utils import logging
from transformers import BlipForConditionalGeneration, AutoProcessor
import torch

logging.set_verbosity_error()

model = BlipForConditionalGeneration.from_pretrained("./models/Salesforce/blip-image-captioning-base")
processor = AutoProcessor.from_pretrained("./models/Salesforce/blip-image-captioning-base")

st.title("Image Captioning")

uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])

if uploaded_file is not None:
    image = Image.open(uploaded_file)
    st.image(image, caption="Uploaded Image", use_column_width=True)
    st.write("")
    st.write("Generating caption...")
    inputs = processor(image, return_tensors="pt")
    out = model.generate(**inputs)
    caption = processor.decode(out[0], skip_special_tokens=True)
    st.write("Caption:", caption)