  
      @staticmethod
      def launch_aligner():
          """ Load the aligner plugin to retrieve landmarks """
          kwargs = dict(in_queue=queue_manager.get_queue("in"),
                        out_queue=queue_manager.get_queue("out"),
                        queue_size=8)
          aligner = PluginLoader.get_aligner("fan")(normalize_method="hist")
          aligner.batchsize = 1  # TODO Put batches at a time or load from alignment file
          aligner.initialize(**kwargs)
          aligner.start()
  
      @staticmethod
      def alignment_dict(filename, image):
          """ Set the image to a dict for alignment """
          height, width = image.shape[:2]
 
</s> remove         """ Set the image to a dict for alignment """
 </s> add         """ Set the image to an ExtractMedia object for alignment """ </s> remove         return {"image": image,
                "filename": filename,
                "detected_faces": [face]}
 </s> add         return ExtractMedia(filename, image, detected_faces=[face]) </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     def _convert_color(self, imgs, same_size, method):
 </s> add     @staticmethod
    def _convert_color(imgs, same_size, method):
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
  
      @staticmethod
      def launch_aligner():
          """ Load the aligner plugin to retrieve landmarks """
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
        extractor = Extractor(None, "fan", None, normalize_method="hist")
        extractor.set_batchsize("align", 1)
        extractor.launch()
        return extractor
  
      @staticmethod
      def alignment_dict(filename, image):
          """ Set the image to a dict for alignment """
          height, width = image.shape[:2]
keep keep keep keep replace replace replace replace replace replace replace keep keep keep keep keep
 Bugfix: Sort by Yaw - Use Pipeline for landmarks 
tools/sort.py