                            SeparableConv2D, UpSampling2D)
  from keras.initializers import he_uniform, VarianceScaling
  
  from .initializers import ICNR, ConvolutionAware
  from .layers import PixelShuffler, ReflectionPadding2D
  from .normalization import InstanceNormalization
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
 
</s> remove from keras.layers import (Activation, Add, Concatenate, Conv2D as KConv2D, LeakyReLU,
                          SeparableConv2D, UpSampling2D)
 </s> add from keras.layers import (Activation, Add, BatchNormalization, Concatenate, Conv2D as KConv2D,
                          DepthwiseConv2D as KDepthwiseConv2d, LeakyReLU, SeparableConv2D,
                          UpSampling2D) </s> remove                                          kernel_size=self._kernel_size,
 </s> add                                          kernel_size=self._args[-1], </s> remove         var_x = Conv2DBlock(128)(var_x)
        var_x = Conv2DBlock(256)(var_x)
        var_x = Conv2DBlock(512)(var_x)
 </s> add         var_x = Conv2DBlock(128, activation="leakyrelu")(var_x)
        var_x = Conv2DBlock(256, activation="leakyrelu")(var_x)
        var_x = Conv2DBlock(512, activation="leakyrelu")(var_x)
 </s> remove         Returns
        -------
        :class:`keras.initializers.Initializer`
            The kernel initializer to use for this convolutional layer. Either the original given
            initializer, he_uniform or convolutional aware (if selected in config options)
        """
        if initializer is None:
            retval = ConvolutionAware() if _CONFIG["conv_aware_init"] else he_uniform()
            logger.debug("Set default kernel_initializer: %s", retval)
        else:
            retval = initializer
            logger.debug("Using model supplied initializer: %s", retval)
        return retval
 </s> add     Parameters are the same, with the same defaults, as a standard
    :class:`keras.layers.DepthwiseConv2D` except where listed below. The default initializer is
    updated to `he_uniform` or `convolutional aware` based on user configuration settings.

    Parameters
    ----------
    padding: str, optional
        One of `"valid"` or `"same"` (case-insensitive). Default: `"same"`. Note that `"same"` is
        slightly inconsistent across backends with `strides` != 1, as described
        `here <https://github.com/keras-team/keras/pull/9473#issuecomment-372166860/>`_.
    check_icnr_init: `bool`, optional
        ``True`` if the user configuration options should be checked to apply ICNR initialization
        to the layer. This should only be passed in from :class:`UpscaleBlock` layers.
        Default: ``False``
    """
    def __init__(self, *args, padding="same", check_icnr_init=False, **kwargs):
        if kwargs.get("name", None) is None:
            kwargs["name"] = _get_name("dwconv2d")
        initializer = _get_default_initializer(kwargs.pop("depthwise_initializer", None))
        if check_icnr_init and _CONFIG["icnr_init"]:
            initializer = ICNR(initializer=initializer)
            logger.debug("Using ICNR Initializer: %s", initializer)
        super().__init__(*args, padding=padding, depthwise_initializer=initializer, **kwargs)
from .layers import PixelShuffler, ReflectionPadding2D, Swish
                            SeparableConv2D, UpSampling2D)
  from keras.initializers import he_uniform, VarianceScaling
  
  from .initializers import ICNR, ConvolutionAware
from .layers import PixelShuffler, ReflectionPadding2D, Swish
  from .normalization import InstanceNormalization
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
keep keep keep keep replace keep keep keep keep keep
 lib.model - Maintenance
  - Add Depthwise option to Conv Block
  - Add Swish Activation function
  - remove res_block_follows and add_instance_norm_args
  - Add explicit normalization and activation args
  - Add K.resize_images layer
plugins.train.model - Inference creation bugfix 
lib/model/nn_blocks.py