  
      def sort_face_cnn(self):
          """ Sort by landmark similarity """
          logger.info("Sorting by landmark similarity...")
          filename_list, image_list, landmarks = self._get_landmarks()
          img_list = list(zip(filename_list, landmarks))
  
          logger.info("Comparing landmarks and sorting...")
          img_list_len = len(img_list)
          for i in tqdm(range(0, img_list_len - 1), desc="Comparing...", file=sys.stdout):
 
</s> remove         filename_list, image_list, landmarks = self._get_landmarks()
 </s> add         filename_list, _, landmarks = self._get_landmarks() </s> remove         filename_list, image_list, landmarks = self._get_landmarks()
 </s> add         filename_list, _, landmarks = self._get_landmarks() </s> remove         self.launch_aligner()
 </s> add         extractor = self.launch_aligner() </s> remove         for feed in tqdm(feed_list, desc="Putting...", file=sys.stdout):
            queue_manager.get_queue("in").put(feed)
        for index, _ in enumerate(tqdm(landmarks, desc="Aligning...", file=sys.stdout)):
            face = queue_manager.get_queue("out").get()
            landmarks[index] = np.array(face["detected_faces"][0].landmarks_xy)
 </s> add         # TODO thread the put to queue so we don't have to put and get at the same time
        # Or even better, set up a proper background loader from disk (i.e. use lib.image.ImageIO)
        for idx, feed in enumerate(tqdm(feed_list, desc="Aligning...", file=sys.stdout)):
            extractor.input_queue.put(feed)
            landmarks[idx] = next(extractor.detected_faces()).detected_faces[0].landmarks_xy </s> remove         return {"image": image,
                "filename": filename,
                "detected_faces": [face]}
 </s> add         return ExtractMedia(filename, image, detected_faces=[face])
        filename_list, _, landmarks = self._get_landmarks()
  
      def sort_face_cnn(self):
          """ Sort by landmark similarity """
          logger.info("Sorting by landmark similarity...")
        filename_list, _, landmarks = self._get_landmarks()
          img_list = list(zip(filename_list, landmarks))
  
          logger.info("Comparing landmarks and sorting...")
          img_list_len = len(img_list)
          for i in tqdm(range(0, img_list_len - 1), desc="Comparing...", file=sys.stdout):
keep keep keep keep replace keep keep keep keep keep
 Bugfix: Sort by Yaw - Use Pipeline for landmarks 
tools/sort.py