          return np.clip(figure * 255, 0, 255).astype('uint8')
  
      def _to_full_frame(self,
                         side: Literal["a", "b"],
                         samples: List[np.ndarray],
                         predictions: List[np.ndarray]) -> List[np.ndarray]:
          """ Patch targets and prediction images into images of model output size.
  
          Parameters
          ----------
          side: {"a" or "b"}
 
</s> remove     def _compile_preview(self, predictions: Dict[str, np.ndarray]) -> np.ndarray:
 </s> add     def _compile_preview(self, predictions: T.Dict[str, np.ndarray]) -> np.ndarray: </s> remove                       color: Tuple[float, float, float]) -> np.ndarray:
 </s> add                       color: T.Tuple[float, float, float]) -> np.ndarray: </s> remove                         batch_size: Optional[int] = None,
                        images: Optional[List[str]] = None) -> DataGenerator:
 </s> add                         batch_size: T.Optional[int] = None,
                        images: T.Optional[T.List[str]] = None) -> DataGenerator: </s> remove     def generate_preview(self,
                         is_timelapse: bool = False) -> Dict[Literal["a", "b"], List[np.ndarray]]:
 </s> add     def generate_preview(self, is_timelapse: bool = False
                         ) -> T.Dict[Literal["a", "b"], T.List[np.ndarray]]: </s> remove     def _compile_masked(self, faces: List[np.ndarray], masks: np.ndarray) -> List[np.ndarray]:
 </s> add     def _compile_masked(self, faces: T.List[np.ndarray], masks: np.ndarray) -> T.List[np.ndarray]:
                       samples: T.List[np.ndarray],
                       predictions: T.List[np.ndarray]) -> T.List[np.ndarray]:
          return np.clip(figure * 255, 0, 255).astype('uint8')
  
      def _to_full_frame(self,
                         side: Literal["a", "b"],
                       samples: T.List[np.ndarray],
                       predictions: T.List[np.ndarray]) -> T.List[np.ndarray]:
                       samples: T.List[np.ndarray],
                       predictions: T.List[np.ndarray]) -> T.List[np.ndarray]:
          """ Patch targets and prediction images into images of model output size.
  
          Parameters
          ----------
          side: {"a" or "b"}
keep keep keep keep replace replace keep keep keep keep keep
 Remove plaidML support (#1325)

* Remove PlaidML reference from readme files

* Remove AMD option from installers

* remove amd requirements and update setup.py

* remove plaidml test from CI workflow

* gpustats: remove plaidml backend

* plaid removals:
  - faceswap.py - python version check
  - setup.cfg - plaidml typing ignore
  - lib.keras_utils - All plaid code
  - lib.launcher.py - All plaidml checks and configuration

* remove tf2.2 specific code from GUI event reader

* lib.model - remove all plaidml implementations

* plugins.extract - remove plaidml code

* plugins.train remove plaidml code

* lib.convert - remove plaidml code

* tools.model: remove plaidml code

* Remove plaidML tests from unit tests

* remove plaidml_utils and docsting cleanups

* Remove plaidML refs from configs

* fix keras imports 
plugins/train/trainer/_base.py