Spaces:
Sleeping
Sleeping
| 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) | |
| 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() | |