                        "bounding_box": list(),
                        "bounding_last": list(),
                        "bounding_box_orig": list()}
  
      def init_extractor(self, loglevel):
          """ Initialize FAN """
          logger.debug("Initialize Extractor")
          out_queue = queue_manager.get_queue("out")
  
 
</s> remove         return self.remove_alignment(item)

    def faces_count_matches(self, item):
        """ Check the selected face exits """
        frame_name, number_alignments = item[0], item[2]
        number_faces = len(self.items.items.get(frame_name, list()))
        return bool(number_alignments in(0, number_faces))
 </s> add         pre_face_count = self.alignments.faces_count
        self.alignments.filter_hashes(face_hashes, filter_out=False)
        post_face_count = self.alignments.faces_count
        return pre_face_count - post_face_count </s> remove         self.image = zeros((height, width, 3), uint8)
 </s> add         self.image = np.zeros((height, width, 3), np.uint8)
        logger.debug("Initialized %s", self.__class__.__name__)
                        "bounding_box": list(),
                        "bounding_last": list(),
                        "bounding_box_orig": list()}
        logger.debug("Initialized %s", self.__class__.__name__)
  
      def init_extractor(self, loglevel):
          """ Initialize FAN """
          logger.debug("Initialize Extractor")
          out_queue = queue_manager.get_queue("out")
  
keep keep add keep 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_manual.py