nightfury commited on
Commit
1bc6c48
·
1 Parent(s): 8ea0869

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+ from PIL import Image
4
+ import tensorflow as tf
5
+ import tensorflow_hub as hub
6
+
7
+ # Load model from TF-Hub
8
+ style_transfer_model = hub.load("https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2")
9
+
10
+ # function to Stylize the Image or to perform a style transfer
11
+ def do_style_transfer(content_image, style_image):
12
+ # Convert to float32 numpy array, add batch dimension, and normalize to range [0, 1]. Example using numpy:
13
+ content_image = tf.convert_to_tensor(content_image, np.float32)[tf.newaxis, ...] / 255.
14
+ style_image = tf.convert_to_tensor(style_image, np.float32)[tf.newaxis, ...] / 255.
15
+ # Stylize image
16
+ output = style_transfer_model(content_image, style_image)
17
+ stylized_image = output[0]
18
+
19
+ return Image.fromarray(np.uint8(stylized_image[0] * 255))
20
+
21
+
22
+ content_image_input = gr.inputs.Image(label="Content Image")
23
+ style_image_input = gr.inputs.Image(shape=(256, 256), label="Style Image")
24
+
25
+ # Add image examples for users
26
+ golden_gate = ["golden_gate_bridge.jpeg", "the_great_wave.jpeg"]
27
+ joshua_tree = ["joshua_tree.jpeg", "starry_night.jpeg"]
28
+ glacier = ["glacier_national_park.jpeg", "the_scream.jpg"]
29
+
30
+ # Customize interface
31
+ title = "Fast Neural Style Transfer using TF-Hub"
32
+ 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."
33
+ article = "**References**\n\n"
34
+ "<a href='https://www.tensorflow.org/hub/tutorials/tf2_arbitrary_image_stylization' target='_blank'> Tutorial to implement Fast Neural Style Transfer using the pretrained model from TensorFlow Hub</a> \n"
35
+ "<p style='text-align: center'><a href='https://arxiv.org/abs/1705.06830'>Exploring the structure of a real-time, arbitrary neural artistic stylization network</a></p>"
36
+ ""
37
+ content_input = gr.inputs.Image(label="Content Image", source="upload")
38
+ style_input = gr.inputs.Image(label="Style Image", source="upload")
39
+
40
+ app_interface = gr.Interface(fn=do_style_transfer,
41
+ inputs=[content_image_input, style_image_input],
42
+ outputs="image",
43
+ title=title,
44
+ description=description,
45
+ examples=[glacier, golden_gate, joshua_tree],
46
+ article=article
47
+ )
48
+ app_interface.launch()