import streamlit as st # import openai import replicate import os from dotenv import load_dotenv from streamlit_extras.stylable_container import stylable_container import streamlit_extras load_dotenv() REPLICATE_API_TOKEN = os.environ.get("REPLICATE_API_TOKEN") replicate = replicate.Client(api_token=REPLICATE_API_TOKEN) streamlit_style = """ <style> #MainMenu {visibility: hidden;} footer {visibility: hidden;} video{width:200px;} .css-1wbqy5l {visibility: hidden;} .css-15zrgzn {visibility: hidden;} .css-klqnuk {visibility: hidden;} .en6cib64 {visibility: hidden;} .css-1u4fkce {visibility: hidden;} .en6cib62 {visibility: hidden;} .css-19rxjzo, .ef3psqc11 { background-color: purple; text-color: white; } div.stButton > button:first-child { background-color: darkgreen; text-weight: bold; } </style> """ def page6(): with stylable_container( key="title", css_styles=[ """ span { text-align: center; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; }""" , """ st-emotion-cache-0{ text-align: center; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; }""", """ .e1f1d6gn0{ text-align: center; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; } """, ], ): st.markdown("<h3>Image to Text</h3>", unsafe_allow_html=True) #This is under a css style st.markdown(streamlit_style, unsafe_allow_html=True) image_file=st.file_uploader("Select Image", type=['jpeg','jpg','png']) if image_file is not None: placeholder=st.empty() col1,col2=placeholder.columns(2) col1.text("Uploaded Image") col1.image(image_file) prompt = st.text_input(label='Ask question related to image') submit_button = st.button(label='Requestion Answer') if submit_button: if prompt and (image_file is not None): with st.spinner("Recognizing Image...."): output = replicate.run( "nateraw/video-llava:a494250c04691c458f57f2f8ef5785f25bc851e0c91fd349995081d4362322dd", input={ "image_path": image_file, "text_prompt": prompt } ) print(output) col2.text("Response") col2.markdown(output)