          for face in self.faces.file_list_sorted:
              if face["face_extension"] != ".png":
                  logger.verbose("'%s' is not a png. Skipping", face["face_fullname"])
                  continue
  
              fullpath = os.path.join(self.faces.folder, face["face_fullname"])
              dfl = self.get_dfl_alignment(fullpath)
  
              if not dfl:
                  continue
 
</s> remove         for face in self.faces.file_list_sorted:
 </s> add         for face in tqdm(self.faces.file_list_sorted, desc="Converting DFL Faces"): </s> remove         for face in tqdm(self.items, total=len(self.items)):
            frame = self.alignments.get_full_frame_name(face["frame_name"])
            alignment_faces = self.alignments.count_faces_in_frame(frame)

            if alignment_faces <= face["face_index"]:
 </s> add         for face in tqdm(self.items, desc=self.output_message):
            f_hash = face["face_hash"]
            if not self.alignments.hashes_to_frame.get(f_hash, None):
                logger.debug("Returning: '%s'", face["face_fullname"]) </s> remove             self.convert_dfl_alignment(dfl, alignments)
 </s> add             self.convert_dfl_alignment(dfl, f_hash, alignments) </s> remove 
 </s> add             logger.trace("Annotating: '%s'", item) </s> remove             if key not in ("bounding_box", "extract_box", "landmarks",
                           "landmarks_mesh", "image"):
 </s> add             if key not in ("bounding_box", "extract_box", "landmarks", "landmarks_mesh", "image"):
            f_hash = face["face_hash"]
          for face in self.faces.file_list_sorted:
              if face["face_extension"] != ".png":
                  logger.verbose("'%s' is not a png. Skipping", face["face_fullname"])
                  continue
            f_hash = face["face_hash"]
              fullpath = os.path.join(self.faces.folder, face["face_fullname"])
              dfl = self.get_dfl_alignment(fullpath)
  
              if not dfl:
                  continue
keep keep keep keep 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