          self.threaded_io("reload", detected_faces)
  
      def process_faces(self, filename, faces):
          """ Perform processing on found faces """
          final_faces = list()
          save_queue = queue_manager.get_queue("save")
  
          filename = faces["filename"]
 
</s> remove         self.obj_detected_face = kwargs["detected_face"]
 </s> add  </s> remove         detected_faces = self.to_detected_face(output["image"],
                                               output["detected_faces"])
        output["detected_faces"] = detected_faces
 </s> add  </s> remove     def to_detected_face(self, image, dlib_rects):
        """ Convert list of dlib rectangles to a
            list of DetectedFace objects
            and add the cropped face """
        retval = list()
        for d_rect in dlib_rects:
            if not isinstance(
                    d_rect,
                    dlib.rectangle):  # pylint: disable=c-extension-no-member
                retval.append(list())
                continue
            this_face = copy(self.obj_detected_face)
            this_face.from_dlib_rect(d_rect)
            this_face.image_to_face(image)
            this_face.frame_dims = image.shape[:2]
            retval.append(this_face)
        return retval

 </s> add 
        size = self.args.size if hasattr(self.args, "size") else 256
        align_eyes = self.args.align_eyes if hasattr(self.args, "align_eyes") else False

          self.threaded_io("reload", detected_faces)
  
      def process_faces(self, filename, faces):
          """ Perform processing on found faces """
        size = self.args.size if hasattr(self.args, "size") else 256
        align_eyes = self.args.align_eyes if hasattr(self.args, "align_eyes") else False

          final_faces = list()
          save_queue = queue_manager.get_queue("save")
  
          filename = faces["filename"]
keep keep keep add keep keep keep keep
 Remove DetectedFace object from plugins due to multiprocess error 
scripts/extract.py