Danila-Pechenev
Make the app able to work with multiple users
36a8e57
raw
history blame
1.38 kB
import streamlit as st
from tensorflow import keras
from PIL import Image
import io
import model
def configure():
st.set_page_config(page_title="Low-light image enhancement")
if "model" not in st.session_state:
st.session_state["model"]: keras.Model = model.create_model()
def describe_service():
st.title("Low-light image enhancement")
st.subheader("Just upload your low-light image and get the processed one!")
@st.experimental_memo
def call_model(uploaded_file: io.BytesIO) -> Image.Image:
return model.run_model(uploaded_file, st.session_state["model"])
def process_image():
uploaded_file = st.file_uploader(
label="Choose a file (you can upload new files without refreshing the page)",
type=["png", "jpg", "jpeg"],
)
if uploaded_file:
placeholder = st.empty()
placeholder.info("The image is being processed. It may take some time. Wait, please...")
image = call_model(uploaded_file)
placeholder.empty()
placeholder.image(image)
image_bytes = io.BytesIO()
image.save(image_bytes, format="png")
st.download_button(
label="Download lightened image", data=image_bytes, file_name="lightened.png", mime="image/png"
)
def main():
describe_service()
process_image()
if __name__ == "__main__":
configure()
main()