import gradio as gr import numpy as np from PIL import Image import tensorflow as tf import tensorflow_hub as hub # Load model from TF-Hub style_transfer_model = hub.load("https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2") # function to Stylize the Image or to perform a style transfer def do_style_transfer(content_image, style_image): # Convert to float32 numpy array, add batch dimension, and normalize to range [0, 1]. Example using numpy: content_image = tf.convert_to_tensor(content_image, np.float32)[tf.newaxis, ...] / 255. style_image = tf.convert_to_tensor(style_image, np.float32)[tf.newaxis, ...] / 255. # Stylize image output = style_transfer_model(content_image, style_image) stylized_image = output[0] return Image.fromarray(np.uint8(stylized_image[0] * 255)) content_image_input = gr.inputs.Image(label="Content Image") style_image_input = gr.inputs.Image(shape=(256, 256), label="Style Image") # Add image examples for users golden_gate = ["example_deadpool2.jpeg", "style_the_great_wave.jpeg"] joshua_tree = ["example_deadpool.png", "style_starry_night.jpeg"] avatar = ["example_avatar.jpeg", "style_the_scream.jpg"] joker = ["example_joker.jpeg", "style_polasticot1.jpeg"] einstein = ["example_einstein.jpeg", "style_polasticot2.jpeg"] monalisa = ["example_mona1.jpeg", "style_polasticot3.jpeg"] paris = ["example_paris.jpeg", "style_vangogh.jpeg"] # Customize interface title = "Fast Neural Style Transfer using TF-Hub" description = "

Demo for Neural Style Transfer using a pretrained Arbitrary Image Stylization model from TensorFlow Hub. To use it, simply upload a content image and style image, or click one of the examples to load them. To learn more about the project, please find the references listed below.

" article = r""":: References ::
Tutorial to implement Fast Neural Style Transfer using the pretrained model from TensorFlow Hub
Exploring the structure of a real-time, arbitrary neural artistic stylization network
visitor badge
""" content_input = gr.inputs.Image(label="Content Image", source="upload") style_input = gr.inputs.Image(label="Style Image", source="upload") app_interface = gr.Interface(fn=do_style_transfer, inputs=[content_image_input, style_image_input], outputs="image", title=title, description=description, examples=[golden_gate,joshua_tree,avatar,joker,einstein,monalisa,paris], article=article ) app_interface.launch()