      def _image_to_face(self, image):
          """ set self.image to be the cropped face from detected bounding box """
          logger.trace("Cropping face from image")
          self.face = image[self.top: self.bottom,
                             self.left: self.right]
  
      # <<< Aligned Face methods and properties >>> #
      def load_aligned(self, image, size=256, coverage_ratio=1.0, dtype=None):
          """ Align a face from a given image.
  
 
</s> remove                      self.feed_face.shape, self._feed_matrix)
 </s> add                      self.feed_face.shape, self.feed_matrix) </s> remove     See the override methods for which methods are required.
 </s> add Plugins should inherit from this class </s> remove     For each source item, the plugin must pass a dict to finalize containing:
    {"filename": <filename of source frame>,
     "image": <four channel source image>,
     "detected_faces": <list of bounding box dicts from lib/plugins/extract/detect/_base>
    """
 </s> add The plugin will receive a dict containing:

>>> {"filename": <filename of source frame>,
>>>  "image": <source image>,
>>>  "detected_faces": <list of bounding box dicts from lib/plugins/extract/detect/_base>}

For each source item, the plugin must pass a dict to finalize containing: </s> remove         self.x = x
        self.w = w
        self.y = y
        self.h = h
 </s> add         self.x = x  # pylint:disable=invalid-name
        self.w = w  # pylint:disable=invalid-name
        self.y = y  # pylint:disable=invalid-name
        self.h = h  # pylint:disable=invalid-name </s> remove             ``x``, ``w``, ``y``, ``h``, ``landmarks_xy``. Optionally the key ``hash``
            will be provided, but not all use cases will know the face hash at this time.
 </s> add             ``x``, ``w``, ``y``, ``h``, ``landmarks_xy``.
            Optionally the key ``hash`` will be provided, but not all use cases will know the
            face hash at this time.
            Optionally the key ``mask`` will be provided, but legacy alignments will not have
            this key.
                          self.left: self.right]
      def _image_to_face(self, image):
          """ set self.image to be the cropped face from detected bounding box """
          logger.trace("Cropping face from image")
          self.face = image[self.top: self.bottom,
                          self.left: self.right]
  
      # <<< Aligned Face methods and properties >>> #
      def load_aligned(self, image, size=256, coverage_ratio=1.0, dtype=None):
          """ Align a face from a given image.
  
keep keep keep keep replace keep keep keep keep keep
 Mask plugin cleanup

- PEP8 Fixes
- Remove config for non NN Masks
- Tidy up defaults helptext
- cli.py fix typos
- Remove unused imports and functions _base.py
- Standardize input_size param
- Enable and update documentation
- Change references from `aligner` to `masker`
- Change  input_size, output_size and coverage_ratio from kwargs to params
- Move load_aligned to batch input iterator
- Remove unnecessary self.input param
- Add softmax layer append function to KSession
- Remove references to KSession protected objects
- Standardize plugin output into finalize method
- Make masks full frame and add to lib.faces_detect
- Add masks to alignments.json (temporary zipped base64 solution) 
lib/faces_detect.py