                  continue
  
              yield faces_count, face
  
              self.num_faces_detected += 1
              faces_count += 1
  
          if faces_count > 1 and self.arguments.verbose:
 
</s> remove             self.faces_detected = self.faces_detected + 1
 </s> add             self.num_faces_detected += 1 </s> remove         for face in detect_faces(image, self.arguments.detector):
 </s> add         faces = self.faces_detected[filename]
        for rawface in faces:
            face = DetectedFace(**rawface) </s> remove     
    def get_faces(self, image):
 </s> add     def have_face(self, filename):
        return filename in self.faces_detected

    def get_faces_alignments(self, filename): </s> remove         if processes != 1:
            files = list(self.read_directory())
            for _ in tqdm(pool_process(self.processFiles, files, processes=processes), total = len(files)):
                self.faces_detected +=1
        else:
            try:
                for filename in tqdm(self.read_directory()):
                    self.handleImage(filename)

            except Exception as e:
                print('Failed to extract from image: {}. Reason: {}'.format(filename, e))
 </s> add         try:
            if processes != 1:
                files = list(self.read_directory())
                for fn, faces in tqdm(pool_process(self.processFiles, files, processes=processes), total = len(files)):
                    self.num_faces_detected += 1
                    self.faces_detected[fn] = faces
            else:
                try:
                    for filename in tqdm(self.read_directory()):
                         self.faces_detected[filename] = self.handleImage(filename)[1]
                except Exception as e:
                    print('Failed to extract from image: {}. Reason: {}'.format(filename, e))
        finally:
            self.write_alignments() </s> remove         for idx, face in self.get_faces(image):
 </s> add         faces = self.get_faces(image)
        rvals = []
        for idx, face in faces:
            self.num_faces_detected += 1
            faces_count += 1
        if faces_count > 1 and self.arguments.verbose:
            print('Note: Found more than one face in an image!')
            self.verify_output = True

    def get_faces(self, image):
        faces_count = 0
        faces = detect_faces(image, self.arguments.detector)

        for face in faces:
            if self.filter is not None and not self.filter.check(face):
                print('Skipping not recognized face!')
                continue
            yield faces_count, face
                  continue
  
              yield faces_count, face
            self.num_faces_detected += 1
            faces_count += 1
        if faces_count > 1 and self.arguments.verbose:
            print('Note: Found more than one face in an image!')
            self.verify_output = True

    def get_faces(self, image):
        faces_count = 0
        faces = detect_faces(image, self.arguments.detector)

        for face in faces:
            if self.filter is not None and not self.filter.check(face):
                print('Skipping not recognized face!')
                continue
            yield faces_count, face
  
              self.num_faces_detected += 1
              faces_count += 1
  
          if faces_count > 1 and self.arguments.verbose:
keep keep add keep keep keep keep keep
 Added serializers.

This speeds up convert speed x4 on my machine. 
lib/cli.py