File size: 1,784 Bytes
e7568f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
from tensorflow.python.ops.numpy_ops import np_config
from visualblocks import register_vb_fn, Server

np_config.enable_numpy_behavior()

hub_handle = "https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2"
hub_module = hub.load(hub_handle)


# Register the function with visual blocks using the "generic" type (meaning
# tensors in, tensors out)
@register_vb_fn(type="generic")
def styleTransfer(tensors):
    """Inference function for use with Visual Blocks.

    This function is passed to the Visual Blocks server, which calls it to
    implement a Colab model runner block.

    Args:
      tensors: A list of np.ndarrays as input tensors. For this particular
      inference function, only the first two np.ndarrays are used. The first
      np.ndarrays is the input content image as a tensor of size [1,
      content_image_height, content_image_width, 3] with floating point pixel
      values ranging from 0 to 1. The second np.ndarrays is the
      input style image as a tensor of size [1, style_image_height,
      style_image_width, 3] with floating point pixel values ranging from 0 to 1.

    Returns:
      tensors: A list of np.ndarrays as output tensors. For this particular
      inference function, only the first item is used. The first item is the
      output image as a tensor of size [1, height, width, 3] with floating point
      pixel values ranging from 0 to 1.
    """

    content_tensor = tf.constant(tensors[0], dtype=tf.float32)
    style_tensor = tf.constant(tensors[1], dtype=tf.float32)
    outputs = hub_module(content_tensor, style_tensor)
    stylized_image = outputs[0].numpy()

    return [
        stylized_image,
    ]


server = Server()
server.run()