              if frame_no == self.save_interval:
                  self.alignments.save()
                  frame_no = 0
  
          if self.export_face:
              save_queue.put("EOF")
          save_thread.join()
  
      def process_item_count(self):
          """ Return the number of items to be processedd """
          processed = sum(os.path.basename(frame) in self.alignments.data.keys()
                          for frame in self.images.input_images)
 
</s> remove         logger.trace(retval)
 </s> add         logger.trace("'%s': %s", frame, retval) </s> remove         logger.trace(retval)
 </s> add         logger.trace("'%s': %s", frame, retval) </s> remove             self.rename_faces()
 </s> add             rename = Rename(self.alignments, None, self.items)
            rename.process() </s> remove         if self.alignments.file == "dfl":
 </s> add         if self.alignments.file == "dfl.json":
        save_queue.put("EOF")
              if frame_no == self.save_interval:
                  self.alignments.save()
                  frame_no = 0
  
        save_queue.put("EOF")
        save_queue.put("EOF")
        save_queue.put("EOF")
  
      def process_item_count(self):
          """ Return the number of items to be processedd """
          processed = sum(os.path.basename(frame) in self.alignments.data.keys()
                          for frame in self.images.input_images)
keep keep keep keep replace replace replace 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 
scripts/extract.py