          :class:`keras.Model`
              The selected keras model for the chosen encoder architecture
          """
          model, kwargs = self._selected_model
          if model.keras_name:
              kwargs["input_shape"] = self._input_shape
              kwargs["include_top"] = False
              kwargs["weights"] = "imagenet" if self._config["enc_load_weights"] else None
              retval = getattr(kapp, model.keras_name)(**kwargs)
          else:
 
</s> remove     def __call__(self) -> keras.models.Model:
 </s> add     def __call__(self) -> tf.keras.models.Model: </s> remove             inputs = [inputs, Input(shape=self._input_shape)]
 </s> add             inputs = [inputs, kl.Input(shape=self._input_shape)] </s> remove         input_ = Input(shape=self._input_shape)
 </s> add         input_ = kl.Input(shape=self._input_shape) </s> remove     def __init__(self, input_shape: tuple[int, ...], config: dict) -> None:
 </s> add     def __init__(self, input_shape: tuple[int, int, int], config: dict) -> None: </s> remove                        interpolation: str | None = None) -> keras.layers.Layer:
 </s> add                        interpolation: str | None = None) -> tf.keras.layers.Layer:
        if model.keras_name and self._config["enc_architecture"].startswith("clipv_"):
            assert model.keras_name in T.get_args(TypeModelsViT)
            kwargs["input_shape"] = self._input_shape
            kwargs["load_weights"] = self._config["enc_load_weights"]
            retval = ViT(T.cast(TypeModelsViT, model.keras_name),
                         input_size=self._input_shape[0],
                         load_weights=self._config["enc_load_weights"])()
        elif model.keras_name:
          :class:`keras.Model`
              The selected keras model for the chosen encoder architecture
          """
          model, kwargs = self._selected_model
        if model.keras_name and self._config["enc_architecture"].startswith("clipv_"):
            assert model.keras_name in T.get_args(TypeModelsViT)
            kwargs["input_shape"] = self._input_shape
            kwargs["load_weights"] = self._config["enc_load_weights"]
            retval = ViT(T.cast(TypeModelsViT, model.keras_name),
                         input_size=self._input_shape[0],
                         load_weights=self._config["enc_load_weights"])()
        elif model.keras_name:
              kwargs["input_shape"] = self._input_shape
              kwargs["include_top"] = False
              kwargs["weights"] = "imagenet" if self._config["enc_load_weights"] else None
              retval = getattr(kapp, model.keras_name)(**kwargs)
          else:
keep keep keep keep replace keep keep keep keep keep
 Updates:
    - Remove clipfaker
    - Add clip to Phaze-A
    - streamline clip to vision only
    - update lib.model.networks
    - Docs and tests update
    - Phaze-A - add option to flatten bottleneck 
plugins/train/model/phaze_a.py