|
import streamlit as st |
|
import tensorflow as tf |
|
import numpy as np |
|
from PIL import Image |
|
from io import BytesIO |
|
|
|
st.title("Colorize black and white image using an AI model trained on Flickr images with the Pix2pix architecture.") |
|
image = st.file_uploader("Upload an image", type=["jpg", "png","jpeg"]) |
|
model = tf.keras.models.load_model('generator_color.keras') |
|
|
|
if image : |
|
button = st.button("Colore") |
|
image = Image.open(image) |
|
image = image.convert("L") |
|
image = image.resize((128,128)) |
|
image = np.array(image) |
|
if button: |
|
image = image - 127.5 |
|
image = image / 127.5 |
|
image.shape = (1,128,128,1) |
|
|
|
result = model(image,training = True) |
|
result = (result * 127.5) + 127.5 |
|
numpy_array = np.array(result.numpy()[0] , dtype=np.uint8) |
|
pillow_image = Image.fromarray(numpy_array) |
|
output_path = "output_image.jpg" |
|
pillow_image.save(output_path) |
|
st.image([output_path], caption='Colored Image', use_column_width=False) |
|
st.download_button( |
|
label="Download Colored Image", |
|
data=BytesIO(numpy_array.tobytes()), |
|
file_name="output_image.jpg", |
|
key="download_button", |
|
help="Click to download the colored image.", |
|
) |
|
|