          final_faces = list()
          filename = faces["filename"]
  
          for idx, detected_face in enumerate(faces["detected_faces"]):
              if self.export_face:
                  save_queue.put((filename,
                                  detected_face["file_location"],
                                  detected_face["face"].aligned_face,
                                  idx))
  
              final_faces.append(detected_face["face"].to_alignment())
          self.alignments.data[os.path.basename(filename)] = final_faces
  
  
 
</s> remove         filename = faces["filename"]

 </s> add  </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             final_faces.append(detected_face["face"].to_alignment())
 </s> add             face.hash, img = hash_encode_image(resized_face, extension)
            save_queue.put((out_filename, img))
            final_faces.append(face.to_alignment()) </s> remove                 for idx, face in enumerate(faces):
                    image = self.convert_one_face(converter,
                                                  (filename, image, idx, face))
 </s> add                 for face in faces:
                    image = self.convert_one_face(converter, image, face) </s> remove             return faces
        valid_faces = list()
        sizes = self.extracted_faces.get_roi_size_for_frame(frame)
        for idx, size in enumerate(sizes):
            if size >= self.extracted_faces.size:
                valid_faces.append(faces[idx])
 </s> add             valid_faces = faces
        else:
            sizes = self.extracted_faces.get_roi_size_for_frame(frame)
            valid_faces = [faces[idx]
                           for idx, size in enumerate(sizes)
                           if size >= self.extracted_faces.size]
        logger.trace("frame: '%s', total_faces: %s, valid_faces: %s",
                     frame, len(faces), len(valid_faces))
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
          final_faces = list()
          filename = faces["filename"]
  
          for idx, detected_face in enumerate(faces["detected_faces"]):
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
            output_file = detected_face["file_location"]
            extension = Path(filename).suffix
            out_filename = "{}_{}{}".format(str(output_file), str(idx), extension)

            face = detected_face["face"]
            resized_face = face.aligned_face
  
              final_faces.append(detected_face["face"].to_alignment())
          self.alignments.data[os.path.basename(filename)] = final_faces
  
  
keep keep keep keep replace replace 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