      def move_faces(self, output_folder, items_output):
          """ Make additional subdirs for each face that appears
              Enables easier manual sorting """
          logger.info("Moving %s faces(s) to '%s'", len(items_output), output_folder)
          for frame in items_output:
              idx = frame[frame.rfind("_") + 1:frame.rfind(".")]
              src = os.path.join(self.source_dir, frame)
              dst_folder = os.path.join(output_folder, idx)
              if not os.path.isdir(dst_folder):
                  os.makedirs(dst_folder)
              dst = os.path.join(dst_folder, frame)
 
</s> remove             dst_folder = os.path.join(output_folder, idx)
 </s> add             dst_folder = os.path.join(output_folder, str(idx)) </s> remove             logger.debug("No face to delete")
 </s> add             logger.debug("No face to delete: (frame: '%s', idx %s)", frame, idx)
        for frame, idx in items_output:
      def move_faces(self, output_folder, items_output):
          """ Make additional subdirs for each face that appears
              Enables easier manual sorting """
          logger.info("Moving %s faces(s) to '%s'", len(items_output), output_folder)
        for frame, idx in items_output:
        for frame, idx in items_output:
              src = os.path.join(self.source_dir, frame)
              dst_folder = os.path.join(output_folder, idx)
              if not os.path.isdir(dst_folder):
                  os.makedirs(dst_folder)
              dst = os.path.join(dst_folder, frame)
keep keep keep keep 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 
tools/lib_alignments/jobs.py