import gradio as gr import numpy as np from PIL import Image import tensorflow as tf import tensorflow_hub as hub style_transfer_model = hub.load("https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2") def perform_style_transfer(content_image, style_image): 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. 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") # Examples golden_gate = ["examples/golden_gate_bridge.jpeg", "examples/the_great_wave.jpeg"] joshua_tree = ["examples/joshua_tree.jpeg", "examples/starry_night.jpeg"] glacier = ["examples/glacier_national_park.jpeg", "examples/the_scream.jpg"] app_interface = gr.Interface(fn=perform_style_transfer, inputs=[content_image_input, style_image_input], outputs="image", title="Image Style Transfer", description="""Neural Style Transfer. Simply upload a content image and style image, or click one of the examples to load them.""", examples=[glacier, golden_gate, joshua_tree], theme='gstaff/whiteboard') app_interface.launch()