              :class:`lib.faces_detect.DetectedFace` objects.
  
          """
  
          for face, landmarks in zip(batch["detected_faces"], batch["landmarks"]):
              face.landmarks_xy = [(int(round(pt[0])), int(round(pt[1]))) for pt in landmarks]
  
          self._remove_invalid_keys(batch, ("detected_faces", "filename", "image"))
          logger.trace("Item out: %s", {key: val
                                        for key, val in batch.items()
 
</s> remove 
 </s> add             face.image = image
            face.filename = filename </s> remove     def align_faces(self, detector_name, aligner_name, multiprocess):
 </s> add     def align_faces(self, detector_name, aligner_name, masker_name, multiprocess):
 </s> remove         config item ``warp_to_landmarks`` is ``True`` or if :attr:`mask_type` is not ``None``. If
        the landmarks for an image cannot be found, then an error is raised. """
 </s> add         config item ``warp_to_landmarks`` is ``True``. If the landmarks for an image cannot be
        found, then an error is raised. """ </s> remove         feed_faces = np.stack([detected_face.feed_face for detected_face in detected_faces])
 </s> add         feed_faces = np.stack([detected_face.feed_face / 255. for detected_face in detected_faces])
        generator = zip(batch["detected_faces"],
                        batch["filename"],
                        batch["image"],
                        batch["landmarks"])
        for face, filename, image, landmarks in generator:
              :class:`lib.faces_detect.DetectedFace` objects.
  
          """
  
        generator = zip(batch["detected_faces"],
                        batch["filename"],
                        batch["image"],
                        batch["landmarks"])
        for face, filename, image, landmarks in generator:
              face.landmarks_xy = [(int(round(pt[0])), int(round(pt[1]))) for pt in landmarks]
  
          self._remove_invalid_keys(batch, ("detected_faces", "filename", "image"))
          logger.trace("Item out: %s", {key: val
                                        for key, val in batch.items()
keep keep keep keep replace keep keep keep keep keep
 Smart Mask Exposure for Extraction & Training (#831)

Smart Masks - Initial Commit 
plugins/extract/align/_base.py