File size: 2,007 Bytes
3bf0da9 998b26e 3bf0da9 998b26e 3bf0da9 998b26e 380880b 998b26e 3bf0da9 998b26e 979cba9 998b26e 3bf0da9 998b26e 380880b 979cba9 380880b 3bf0da9 998b26e |
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 |
from utils.image_utils import load_image, check_url
from utils.caption_utils import ImageCaptioning
from utils.topic_generation import TopicGenerator
import streamlit as st
def main():
st.title("TopicGen")
# Load the models just once
topic_generator = TopicGenerator()
img_caption = ImageCaptioning()
user_input = st.selectbox(label="Text Input or Image Input", options=["Text", "Image", "Image URL"])
if user_input == "Text":
text_input = st.text_input(label="Put in your Idea, Let's generate a matching Topic Sentence🤗🤗")
if text_input:
generated_topics = topic_generator.generate_topics(text_input)
for idx, topic in enumerate(generated_topics, 1):
st.write(f"Topic {idx}: {topic}")
elif user_input == "Image":
img_files = st.file_uploader(label="Drop an Image you have been admiring, Let's see what we can do🤔🤔",
type=["jpg", "png", "jpeg"], accept_multiple_files=True)
for img_file in img_files or []:
img_bytes = img_file.read()
caption = img_caption.get_caption(img_bytes)
st.image(image=img_bytes, caption=caption, width=250)
generated_topics = topic_generator.generate_topics(caption)
for idx, topic in enumerate(generated_topics, 1):
st.write(f"Topic {idx}: {topic}")
elif user_input == "Image URL":
url_input = st.text_input(label="Do you have a link to the Image you would like to drop, Go Ahead and We got you covered😉😉")
if url_input:
img_load = load_image(check_url(url_input))
caption = img_caption.get_caption(img_load)
st.image(image=img_load, caption=caption, width=250)
generated_topics = topic_generator.generate_topics(caption)
for idx, topic in enumerate(generated_topics, 1):
st.write(f"Topic {idx}: {topic}")
if __name__ == "__main__":
main()
|