          if not model:
              raise FaceswapError(f"'{arch}' is not a valid choice for encoder architecture. Choose "
                                  f"one of {list(_MODEL_MAPPING.keys())}.")
  
          if get_backend() == "amd" and model.get("no_amd"):
              valid = [k for k, v in _MODEL_MAPPING.items() if not v.get('no_amd')]
              raise FaceswapError(f"'{arch}' is not compatible with the AMD backend. Choose one of "
                                  f"{valid}.")
  
          tf_ver = get_tf_version()
          tf_min = model.get("tf_min", 2.0)
 
</s> remove         tf_min = model.get("tf_min", 2.0)
 </s> add         tf_min = model.tf_min </s> remove     def _validate_encoder_architecture(self):
 </s> add     def _validate_encoder_architecture(self) -> None: </s> remove     def build_model(self, inputs):
 </s> add     def build_model(self, inputs: List[Tensor]) -> keras.models.Model: </s> remove _HELPTEXT = ("Phaze-A Model by TorzDF, with thanks to BirbFakes.\n"
             "Allows for the experimentation of various standard Networks as the encoder and "
             "takes inspiration from Nvidia's StyleGAN for the Decoder. It is highly recommended "
             "to research to understand the parameters better.")
 </s> add _HELPTEXT: str = (
    "Phaze-A Model by TorzDF, with thanks to BirbFakes.\n"
    "Allows for the experimentation of various standard Networks as the encoder and takes "
    "inspiration from Nvidia's StyleGAN for the Decoder. It is highly recommended to research to "
    "understand the parameters better.")

_ENCODERS: List[str] = [
    "densenet121", "densenet169", "densenet201", "inception_resnet_v2", "inception_v3",
    "mobilenet", "mobilenet_v2", "nasnet_large", "nasnet_mobile", "resnet50", "vgg16", "vgg19",
    "xception", "fs_original"]
        if get_backend() == "amd" and model.no_amd:
            valid = [k for k, v in _MODEL_MAPPING.items() if not v.no_amd]
          if not model:
              raise FaceswapError(f"'{arch}' is not a valid choice for encoder architecture. Choose "
                                  f"one of {list(_MODEL_MAPPING.keys())}.")
  
        if get_backend() == "amd" and model.no_amd:
            valid = [k for k, v in _MODEL_MAPPING.items() if not v.no_amd]
        if get_backend() == "amd" and model.no_amd:
            valid = [k for k, v in _MODEL_MAPPING.items() if not v.no_amd]
              raise FaceswapError(f"'{arch}' is not compatible with the AMD backend. Choose one of "
                                  f"{valid}.")
  
          tf_ver = get_tf_version()
          tf_min = model.get("tf_min", 2.0)
keep keep keep keep replace replace keep keep keep keep keep
 Model updates
- Increase model summary width
- Phaze A updates
  - Update some min/max values
  - Add Decoder Filter Slope Mode
  - Add additional arguments for Upsampling2D
  - Adjust upsampling method for multiple upsamples in FC layers
  - Typing 
plugins/train/model/phaze_a.py