          var_x = SeparableConv2D(filters,
                                  kernel_size=kernel_size,
                                  strides=strides,
                                  padding="same",
                                  **kwargs)(inp)
          var_x = Activation("relu", name="{}_relu".format(name))(var_x)
          return var_x
  
  # <<< GAN V2.2 Blocks >>> #
 
</s> remove             var_x = SubPixelUpscaling()(var_x)
 </s> add             var_x = SubPixelUpscaling(name="{}_subpixel".format(name))(var_x) </s> remove         var_x = LeakyReLU(alpha=0.2)(var_x)
 </s> add         var_x = LeakyReLU(alpha=0.2, name="{}_leakyrelu_3".format(name))(var_x) </s> remove             var_x = PixelShuffler()(var_x)
 </s> add             var_x = PixelShuffler(name="{}_pixelshuffler".format(name))(var_x) </s> remove         var_x = self.blocks.conv2d(var_x, 3, kernel_size=5, padding="same", activation="sigmoid")
 </s> add         var_x = self.blocks.conv2d(var_x, 3,
                                   kernel_size=5,
                                   padding="same",
                                   activation="sigmoid",
                                   name="face_out")
                                name="{}_seperableconv2d".format(name),
          var_x = SeparableConv2D(filters,
                                  kernel_size=kernel_size,
                                  strides=strides,
                                  padding="same",
                                name="{}_seperableconv2d".format(name),
                                  **kwargs)(inp)
          var_x = Activation("relu", name="{}_relu".format(name))(var_x)
          return var_x
  
  # <<< GAN V2.2 Blocks >>> #
keep keep keep add keep keep keep keep keep
 Model Structure Changes

Standardize inputs for AutoEncoders
Name outputs from AutoEncoders
Name layers in nn_blocks.py 
lib/model/nn_blocks.py