          """ Convert the images """
          logger.debug("Converting images")
          save_queue = queue_manager.get_queue("convert_out")
          patch_queue = queue_manager.get_queue("patch")
          self.patch_threads = MultiThread(self.converter.process, patch_queue, save_queue,
                                           thread_count=self.pool_processes, name="patch")
  
          self.patch_threads.start()
          while True:
              self.check_thread_error()
              if self.disk_io.completion_event.is_set():
 
</s> remove         self.patch_threads.start()
 </s> add         self._patch_threads.start() </s> remove     def convert_images(self):
        """ Convert the images """
 </s> add     def _convert_images(self):
        """ Start the multi-threaded patching process, monitor all threads for errors and join on
        completion. """ </s> remove             self.check_thread_error()
            if self.disk_io.completion_event.is_set():
 </s> add             self._check_thread_error()
            if self._disk_io.completion_event.is_set(): </s> remove     def predict_faces(self):
        """ Get detected faces from images """
 </s> add     def _launch_predictor(self):
        """ Launch the prediction process in a background thread.

        Starts the prediction thread and returns the thread.

        Returns
        -------
        :class:`~lib.multithreading.MultiThread`
            The started Faceswap model prediction thread.
        """
        thread = MultiThread(self._predict_faces, thread_count=1)
        thread.start()
        return thread

    def _predict_faces(self):
        """ Run Prediction on the Faceswap model in a background thread.

        Reads from the :attr:`self._in_queue`, prepares images for prediction
        then puts the predictions back to the :attr:`self.out_queue`
        """ </s> remove         self.batchsize = self.get_batchsize(queue_size)
        self.args = arguments
        self.in_queue = in_queue
        self.out_queue = queue_manager.get_queue("patch")
        self.serializer = get_serializer("json")
        self.faces_count = 0
        self.verify_output = False
 </s> add         self._batchsize = self._get_batchsize(queue_size)
        self._args = arguments
        self._in_queue = in_queue
        self._out_queue = queue_manager.get_queue("patch")
        self._serializer = get_serializer("json")
        self._faces_count = 0
        self._verify_output = False
        self._patch_threads = MultiThread(self._converter.process, patch_queue, save_queue,
                                          thread_count=self._pool_processes, name="patch")
          """ Convert the images """
          logger.debug("Converting images")
          save_queue = queue_manager.get_queue("convert_out")
          patch_queue = queue_manager.get_queue("patch")
        self._patch_threads = MultiThread(self._converter.process, patch_queue, save_queue,
                                          thread_count=self._pool_processes, name="patch")
        self._patch_threads = MultiThread(self._converter.process, patch_queue, save_queue,
                                          thread_count=self._pool_processes, name="patch")
  
          self.patch_threads.start()
          while True:
              self.check_thread_error()
              if self.disk_io.completion_event.is_set():
keep keep keep keep replace replace keep keep keep keep keep
 Smart Masks to Convert (#957)

- scripts.convert - Use Smart Masks for Convert
    * Make on-the-fly conversion an explicit option

- Move BlurMask to lib.faces_detect

- tools.preview - Fix for smart masks
    * Subclass from tk.Tk
    * Options to lib.gui.control_helper
    *variable cleanup

- lib.logger - Demote more tensorflow deprecation messages

- Documentation:
    * lib.faces_detect.BlurMask
    * plugins.convert.mask
    * lib.convert
    * scripts.convert
    * scripts.fsmedia
    * tools.preview 
scripts/convert.py