          """int: Bottom point (in pixels) of face detection bounding box within the parent image """
          return self.y + self.h
  
      @property
      def training_coverage(self):
          """ The coverage ratio to add for training images """
          return 1.0
  
      def add_mask(self, name, mask, affine_matrix, frame_dims, interpolator, storage_size=128):
          """ Add a :class:`Mask` to this detected face
  
          The mask should be the original output from  :mod:`plugins.extract.mask`
 
</s> remove     image: np.ndarray, optional
        This is a generic image placeholder that should not be relied on to be holding a particular
        image. It may hold the source frame that holds the face, a cropped face or a scaled image
        depending on the method using this object.
 </s> add     image: numpy.ndarray, optional
        Original frame that holds this face. Optional (not required if just storing coordinates) </s> remove         self.face = image[self.top: self.bottom,
                          self.left: self.right]
 </s> add         self.image = image[self.top: self.bottom,
                           self.left: self.right] </s> remove         self.filename = filename
 </s> add  </s> remove             This should be a ``list`` or ``numpy.array`` of :attr:`batchsize` containing a
            ``list``, ``tuple`` or ``numpy.array`` of `(x, y)` co-ords of the 68 point landmarks
            as calculated from the :attr:`model`.
 </s> add             This should be a ``list`` or ``numpy.ndarray`` of :attr:`batchsize` containing a
            ``list``, ``tuple`` or ``numpy.ndarray`` of `(x, y)` coordinates of the 68 point
            landmarks as calculated from the :attr:`model`. </s> remove         """ Return requested trainer plugin """
 </s> add         """ Return requested training trainer plugin

        Parameters
        ----------
        name: str
            The name of the requested training trainer plugin
        disable_logging: bool, optional
            Whether to disable the INFO log message that the plugin is being imported.
            Default: `False`

        Returns
        -------
        :class:`plugins.train.trainer` object:
            A training trainer plugin
        """
    def _extract_ratio(self):
        """ float: The ratio of padding to add for training images """
        return 0.375
          """int: Bottom point (in pixels) of face detection bounding box within the parent image """
          return self.y + self.h
  
      @property
    def _extract_ratio(self):
        """ float: The ratio of padding to add for training images """
        return 0.375
    def _extract_ratio(self):
        """ float: The ratio of padding to add for training images """
        return 0.375
    def _extract_ratio(self):
        """ float: The ratio of padding to add for training images """
        return 0.375
  
      def add_mask(self, name, mask, affine_matrix, frame_dims, interpolator, storage_size=128):
          """ Add a :class:`Mask` to this detected face
  
          The mask should be the original output from  :mod:`plugins.extract.mask`
keep keep keep keep replace replace replace keep keep keep keep keep
 Smart Mask - Extract code review

- Lint simple_tests.py
- Only reformat alignments file if it exists otherwise change filename
- Update legacy alignments to new format at all stages
- faces_detect.Mask.from_dict - logging format fix
- convert.py fix otf for new pipeline
- cli.py - Add note that masks not used. Revert convert masks
- faces_detect.py - Revert non-extract code
- Add .p and .pickle extensions for serializer
- plugins/extract revert some changes
- scripts/fsmedia - Revert code changes
- Pipeline - cleanup
- Consistant alpha channel stripping (fixes single-process)
- Store landmarks as numpy array
- Code attribution
- Normalize feed face and reference face to 0.0 - 1.0 in convert
- Lock in mask VRAM sized
- Add documentation to plugin_loader
- Update alignments tool to work with new format 
lib/faces_detect.py