import tensorflow as tf

  x = tf.image.random_saturation(x, lower=lower, upper=upper)
  x = tf.image.random_hue(x, max_delta=0.2*s)
  x = tf.clip_by_value(x, 0, 1)
  return x

def color_drop(image):
  image = tf.image.rgb_to_grayscale(image)
  image = tf.tile(image, [1, 1, 1, 3])
  return image

# pylint: disable=not-callable
@gin.configurable(blacklist=["kwargs"])
class CLGAN(modular_gan.ModularGAN):
  """Self-Supervised GAN with Contrastive Loss"""
