              self.output_message = "Frames with multiple faces"
              frame_key = "frame_fullname"
              retval_key = "frame_fullname"
  
          for item in tqdm(self.items, total=len(self.items)):
              frame = item[frame_key]
              if self.type == "faces":
                  frame = self.alignments.get_full_frame_name(frame)
              retval = item[retval_key]
  
 
</s> remove             frame_key = "frame_name"
 </s> add             frame_key = "face_hash" </s> remove                 frame = self.alignments.get_full_frame_name(frame)
 </s> add                 frame, idx = self.alignments.hashes_to_frame[frame] </s> remove         for frame in tqdm(self.items, total=len(self.items)):
 </s> add         for frame in tqdm(self.items, desc=self.output_message):
            logger.trace(frame)
        for item in tqdm(self.items, desc=self.output_message):
              self.output_message = "Frames with multiple faces"
              frame_key = "frame_fullname"
              retval_key = "frame_fullname"
  
        for item in tqdm(self.items, desc=self.output_message):
              frame = item[frame_key]
              if self.type == "faces":
                  frame = self.alignments.get_full_frame_name(frame)
              retval = item[retval_key]
  
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