          logger.debug("Initializing %s: model: '%s', coverage_ratio: %s)",
                       self.__class__.__name__, model, coverage_ratio)
          self._model = model
          self._display_mask = model.config["learn_mask"] or model.config["penalized_mask_loss"]
          self.images = {}
          self._coverage_ratio = coverage_ratio
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def toggle_mask_display(self):
          """ Toggle the mask overlay on or off depending on user input. """
 
</s> remove     def toggle_mask_display(self):
 </s> add     def toggle_mask_display(self) -> None: </s> remove     def __init__(self, model, coverage_ratio):
 </s> add     def __init__(self, model: "ModelBase", coverage_ratio: float) -> None: </s> remove         print("\n")  # Break to not garble loss output
 </s> add         print("")  # Break to not garble loss output </s> remove     def __init__(self, model, coverage_ratio, image_count, feeder, image_paths):
 </s> add     def __init__(self,
                 model: "ModelBase",
                 coverage_ratio: float,
                 image_count: int,
                 feeder: _Feeder,
                 image_paths: Dict[Literal["a", "b"], List[str]]) -> None: </s> remove         logger.verbose("Enabled TensorBoard Logging")
 </s> add         logger.verbose("Enabled TensorBoard Logging")  # type: ignore
        self.images: Dict[Literal["a", "b"], List[np.ndarray]] = {}
          logger.debug("Initializing %s: model: '%s', coverage_ratio: %s)",
                       self.__class__.__name__, model, coverage_ratio)
          self._model = model
          self._display_mask = model.config["learn_mask"] or model.config["penalized_mask_loss"]
        self.images: Dict[Literal["a", "b"], List[np.ndarray]] = {}
          self._coverage_ratio = coverage_ratio
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def toggle_mask_display(self):
          """ Toggle the mask overlay on or off depending on user input. """
keep keep keep keep replace keep keep keep keep keep
 Data Augmentation update (#1263)

- lib.detected_face
    - Subclass Masks for Landmark based masks
    - Add training mask propery + methods to DetectedFace
  - lib.training_training
    - subclass TrainingDataGenerator for training and preview data
    - Split cache into own module
    - Reduce thread count to 1 to prevent image corruption + data re-use
    - Process on largest model input/output size rather than stored image size
    - Size and crop masks during caching stage
    - Implement ring buffer for data flow
    - Fix preview reload bug
  - augmentation
    - typing
    - switch color aug order
    - better initialization
    - Fix warp + landmark warp to correctly apply at different image scales
    - Slightly improved warp caching
    - Don't store whether image is_preview. Handle all data as training images implicitly
  - plugins.trainer: Typing and fixes to work with trainingdata refactor 
plugins/train/trainer/_base.py