                  continue
              extracted_faces += self.output_faces(frame)
  
          logger.info("%s face(s) extracted", extracted_faces)
  
      def output_faces(self, frame):
          """ Output the frame's faces to file """
          logger.trace("Outputting frame: %s", frame)
 
</s> remove             map_faces = self.map_face_names(alignments,
                                            sorted_alignments,
                                            frame)
            self.rename_faces(map_faces)
 </s> add             logger.trace("Sorting alignments for frame: '%s'", frame) </s> remove     def process_faces(self, filename, faces, save_queue):
        """ Perform processing on found faces """
 </s> add     def output_faces(self, filename, faces, save_queue):
        """ Output faces to save thread """ </s> remove         logger.trace(retval)
 </s> add         logger.trace("'%s': %s", frame, retval)
        if extracted_faces != 0 and self.type != "large":
            self.alignments.save()
                  continue
              extracted_faces += self.output_faces(frame)
  
        if extracted_faces != 0 and self.type != "large":
            self.alignments.save()
          logger.info("%s face(s) extracted", extracted_faces)
  
      def output_faces(self, frame):
          """ Output the frame's faces to file """
          logger.trace("Outputting frame: %s", frame)
keep keep add keep keep keep keep keep
 Add Face Hashes to Alignments (#550)

* Convert main scripts to use face hashes

* Alignment tool: Use hashes, add logging, add face rename function

* More logging. Update Manual tool to work with hashing 
tools/lib_alignments/jobs.py