              logger.warning("Predicted Mask selected, but the model was not trained with a "
                             "mask. Selecting first available mask: '%s'", mask_type)
              self._args.mask_type = mask_type
  
      def _add_queues(self):
          """ Add the queues for in, patch and out. """
          logger.debug("Adding queues. Queue size: %s", self._queue_size)
          for qname in ("convert_in", "convert_out", "patch"):
              queue_manager.add_queue(qname, self._queue_size)
  
 
</s> remove     def process(self):
 </s> add     def _get_threads(self) -> MultiThread:
        """ Get the threads for patching the converted faces onto the frames.

        Returns
        :class:`lib.multithreading.MultiThread`
            The threads that perform the patching of swapped faces onto the output frames
        """
        # TODO Check if multiple threads actually speeds anything up
        save_queue = queue_manager.get_queue("convert_out")
        patch_queue = queue_manager.get_queue("patch")
        return MultiThread(self._converter.process, patch_queue, save_queue,
                           thread_count=self._pool_processes, name="patch")

    def process(self) -> None: </s> remove             msg = ("You have selected the Mask Type `{}` but at least one face does not have this "
                   "mask stored in the Alignments File.\nYou should generate the required masks "
                   "with the Mask Tool or set the Mask Type option to an existing Mask Type.\nA "
                   "summary of existing masks is as follows:\nTotal faces: {}, Masks: "
                   "{}".format(self._args.mask_type, self._alignments.faces_count,
                               self._alignments.mask_summary))
 </s> add             msg = (f"You have selected the Mask Type `{self._args.mask_type}` but at least one "
                   "face does not have this mask stored in the Alignments File.\nYou should "
                   "generate the required masks with the Mask Tool or set the Mask Type option to "
                   "an existing Mask Type.\nA summary of existing masks is as follows:\nTotal "
                   f"faces: {self._alignments.faces_count}, "
                   f"Masks: {self._alignments.mask_summary}") </s> remove     def centering(self):
        """ str: The centering that the model was trained on (`"face"` or `"legacy"`) """
 </s> add     def centering(self) -> "CenteringType":
        """ str: The centering that the model was trained on (`"head", "face"` or `"legacy"`) """ </s> remove     def has_predicted_mask(self):
 </s> add     def has_predicted_mask(self) -> bool: </s> remove     def output_size(self):
 </s> add     def output_size(self) -> int:
    def _add_queues(self) -> None:
              logger.warning("Predicted Mask selected, but the model was not trained with a "
                             "mask. Selecting first available mask: '%s'", mask_type)
              self._args.mask_type = mask_type
  
    def _add_queues(self) -> None:
          """ Add the queues for in, patch and out. """
          logger.debug("Adding queues. Queue size: %s", self._queue_size)
          for qname in ("convert_in", "convert_out", "patch"):
              queue_manager.add_queue(qname, self._queue_size)
  
keep keep keep keep replace keep keep keep keep keep
 Bugfix: convert - Gif Writer
  - Fix non-launch error on Gif Writer
  - convert plugins - linting
  - convert/fs_media/preview/queue_manager - typing
  - Change convert items from dict to Dataclass 
scripts/convert.py