      def minibatch_ab(self, images, batchsize, side,
                       do_shuffle=True, is_preview=False, is_timelapse=False):
          """ A Background iterator to return augmented images, samples and targets.
  
          The exit point from this class and the sole attribute that should be referenced. Called
          from :mod:`plugins.train.trainer._base`. Returns an iterator that yields images for
          training, preview and time-lapses.
  
          Parameters
          ----------
          images: list
              A list of image paths that will be used to compile the final augmented data from.
 
</s> remove     def minibatch_ab(self, images, batchsize, side,
                     do_shuffle=True, is_preview=False, is_timelapse=False):
        """ A Background iterator to return augmented images, samples and targets.
 </s> add         if self._warp_to_landmarks:
            self._face_cache.pre_fill(images, side)
        self._processing = ImageAugmentation(batch_size,
                                             self._process_size,
                                             self._config)
        self._nearest_landmarks: Dict[str, Tuple[str, ...]] = {}
        logger.debug("Initialized %s", self.__class__.__name__) </s> remove     @property
    def extract_version(self):
        """ float: The alignments file version used to extract the faces. """
        return self._extract_version
 </s> add         The exit point from this class and the sole attribute that should be referenced. Called
        from :mod:`plugins.train.trainer._base`. Returns an iterator that yields images for
        training, preview and time-lapses. </s> remove         images: list
            A list of image paths that will be used to compile the final augmented data from.
        batchsize: int
            The batchsize for this iterator. Images will be returned in :class:`numpy.ndarray`
            objects of this size from the iterator.
        side: {'a' or 'b'}
            The side of the model that this iterator is for.
        do_shuffle: bool, optional
            Whether data should be shuffled prior to loading from disk. If true, each time the full
            list of filenames are processed, the data will be reshuffled to make sure they are not
            returned in the same order. Default: ``True``
        is_preview: bool, optional
            Indicates whether this iterator is generating preview images. If ``True`` then certain
            augmentations will not be performed. Default: ``False``
        is_timelapse: bool optional
            Indicates whether this iterator is generating time-lapse images. If ``True``, then
            certain augmentations will not be performed. Default: ``False``
 </s> add         batch: :class:`numpy.ndarray`
            This should be a 4-dimensional array of training images in the format (`batch size`,
            `height`, `width`, `channels`). Targets should be requested after performing image
            transformations but prior to performing warps. The 4th channel should be the mask.
            Any channels above the 4th should be any additional area masks (e.g. eye/mouth) that
            are required. </s> remove         The user selected training configuration options
 </s> add         The configuration `dict` generated from :file:`config.train.ini` containing the trainer
        plugin configuration options.
    side: {'a' or 'b'}
        The side of the model that this iterator is for.
    images: list
        A list of image paths that will be used to compile the final augmented data from.
    batch_size: int
        The batch size for this iterator. Images will be returned in :class:`numpy.ndarray`
        objects of this size from the iterator.
    def _create_targets(self, batch: np.ndarray) -> List[np.ndarray]:
        """ Compile target images, with masks, for the model output sizes.
      def minibatch_ab(self, images, batchsize, side,
                       do_shuffle=True, is_preview=False, is_timelapse=False):
          """ A Background iterator to return augmented images, samples and targets.
  
    def _create_targets(self, batch: np.ndarray) -> List[np.ndarray]:
        """ Compile target images, with masks, for the model output sizes.
    def _create_targets(self, batch: np.ndarray) -> List[np.ndarray]:
        """ Compile target images, with masks, for the model output sizes.
    def _create_targets(self, batch: np.ndarray) -> List[np.ndarray]:
        """ Compile target images, with masks, for the model output sizes.
  
          Parameters
          ----------
          images: list
              A list of image paths that will be used to compile the final augmented data from.
keep keep keep keep replace replace 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 
lib/training/generator.py