import gradio as gr import numpy as np import tensorflow as tf import PIL import os ''' def sepia(input_img): sepia_filter = np.array([[.393, .769, .189], [.349, .686, .168], [.272, .534, .131]]) sepia_img = input_img.dot(sepia_filter.T) sepia_img /= sepia_img.max() return sepia_img ''' def normalize_img(img): img = tf.cast(img, dtype=tf.float32) # Map values in the range [-1, 1] return (img / 127.5) - 1.0 def predict_and_save(img, generator_model): img = normalize_img(img) prediction = generator_model(img, training=False)[0].numpy() prediction = (prediction * 127.5 + 127.5).astype(np.uint8) im = PIL.Image.fromarray(prediction) return im def run(image_path): model = tf.keras.models.load_model('generator') img = tf.keras.preprocessing.image.load_img( image_path, target_size=(256, 256) ) #https://www.tensorflow.org/api_docs/python/tf/keras/utils/load_img img_array = tf.keras.preprocessing.image.img_to_array(img) img_array = tf.expand_dims(img_array, 0) predict_and_save(img_array, model) iface = gr.Interface(run, gr.inputs.Image(shape=(256, 256)), "image") iface.launch(share = True)