# -*- coding: utf-8 -*- import numpy as np import tensorflow as tf import gradio as gr from huggingface_hub import from_pretrained_keras model = from_pretrained_keras("keras-io/CycleGAN", compile=False) # Define the standard image size. orig_img_size = (286, 286) # Size of the random crops to be used during training. input_img_size = (256, 256, 3) def normalize_img(img): img = tf.cast(img, dtype=tf.float32) # Map values in the range [-1, 1] return (img / 127.5) - 1.0 def preprocess_test_image(img): # Only resizing and normalization for the test images. img = tf.image.resize(img, [input_img_size[0], input_img_size[1]]) img = normalize_img(img) return img # img_path = './n02381460_1010.jpg' def generate_img(img_path): img = tf.io.read_file(img_path) img = tf.image.decode_png(img) img = tf.expand_dims(img, axis=0) img = preprocess_test_image(img) prediction = model(img, training=False)[0].numpy() prediction = (prediction * 127.5 + 127.5).astype(np.uint8) return prediction image = gr.inputs.Image(type="filepath") op = gr.outputs.Image(type="numpy") iface = gr.Interface( generate_img, image, op, title="CycleGAN", description='Keras Implementation of CycleGAN model using Horse to Zebra dataset', article='Author: Anurag Singh. Based on the keras example from A_K_Nain', examples=["n02381460_360.jpg", "n02381460_4410.jpg"], ) iface.launch(cache_examples=True)