upscaler / app.py
analist's picture
Update app.py
82e08d5
import streamlit as st
from super_image import EdsrModel, ImageLoader
from PIL import Image
import cv2
st.title('Take your picture to the next level')
col1, col2 = st.columns([3, 1])
preds = None
with col2:
choice = st.selectbox('Scale to', [2, 3, 4])
model_choice = st.selectbox('Model', ['EDSR', 'PAN', 'CARN'])
with col1:
file = st.file_uploader('Post your picture', type=['png', 'jpeg'])
if file is not None:
image = Image.open(file)
col1, col2 = st.columns(2)
with col1:
st.subheader('Input image')
st.image(image)
if model_choice == "EDSR":
model = EdsrModel.from_pretrained("eugenesiow/edsr-base", scale=int(choice))
inputs = ImageLoader.load_image(image)
preds = model(inputs)
ImageLoader.save_image(preds, './scaled_2x.png')
img = Image.open('./scaled_2x.png')
with col2:
st.subheader('New image')
st.image(img, caption=f'Upscaled {choice} times image')
with open('./scaled_2x.png', 'rb') as f:
st.download_button(label="Download image", data=f, file_name="upscaled.png", mime="image/png")
else:
st.text('Not supported yet. Comeback soon for fun releases')