                                 "mask": self.model.largest_mask_index}
          self.predictor = self.model.converter(self.args.swap_model)
          self.queues = dict()
  
          self.thread = MultiThread(self.predict_faces, thread_count=1)
          self.thread.start()
          logger.debug("Initialized %s: (out_queue: %s)", self.__class__.__name__, self.out_queue)
  
      @property
      def coverage_ratio(self):
          """ Return coverage ratio from training options """
          return self.model.training_opts["coverage_ratio"]
 
</s> remove         self.model = self.load_model()
        self.output_indices = {"face": self.model.largest_face_index,
                               "mask": self.model.largest_mask_index}
        self.predictor = self.model.converter(self.args.swap_model)
        self.queues = dict()
 </s> add     @property
    def thread(self):
        """ :class:`~lib.multithreading.MultiThread`: The thread that is running the prediction
        function from the Faceswap model. """
        return self._thread

    @property
    def in_queue(self):
        """ :class:`queue.Queue`: The input queue to the predictor. """
        return self._in_queue

    @property
    def out_queue(self):
        """ :class:`queue.Queue`: The output queue from the predictor. """
        return self._out_queue

    @property
    def faces_count(self):
        """ int: The total number of faces seen by the Predictor. """
        return self._faces_count </s> remove         """ Return coverage ratio from training options """
        return self.model.training_opts["coverage_ratio"]
 </s> add         """ float: The coverage ratio that the model was trained at. """
        return self._model.training_opts["coverage_ratio"] </s> remove             self.set_tf_allow_growth()
 </s> add             self._set_tf_allow_growth()

        self._model = self._load_model()
        self._output_indices = {"face": self._model.largest_face_index,
                                "mask": self._model.largest_mask_index}
        self._predictor = self._model.converter(self._args.swap_model)
        self._thread = self._launch_predictor()
        logger.debug("Initialized %s: (out_queue: %s)", self.__class__.__name__, self._out_queue) </s> remove     def input_size(self):
        """ Return the model input size """
        return self.model.input_shape[0]
 </s> add     def has_predicted_mask(self):
        """ bool: ``True`` if the model was trained to learn a mask, otherwise ``False``. """
        return bool(self._model.state.config.get("learn_mask", False)) </s> remove         self.args = arguments
        self.is_extract = is_extract
        folder, filename = self.set_folder_filename(input_is_video)
        super().__init__(folder,
                         filename=filename)
 </s> add         self._args = arguments
        self._is_extract = is_extract
        folder, filename = self._set_folder_filename(input_is_video)
        super().__init__(folder, filename=filename)
    @property
    def verify_output(self):
        """ bool: ``True`` if multiple faces have been found in frames, otherwise ``False``. """
        return self._verify_output
                                 "mask": self.model.largest_mask_index}
          self.predictor = self.model.converter(self.args.swap_model)
          self.queues = dict()
  
    @property
    def verify_output(self):
        """ bool: ``True`` if multiple faces have been found in frames, otherwise ``False``. """
        return self._verify_output
    @property
    def verify_output(self):
        """ bool: ``True`` if multiple faces have been found in frames, otherwise ``False``. """
        return self._verify_output
    @property
    def verify_output(self):
        """ bool: ``True`` if multiple faces have been found in frames, otherwise ``False``. """
        return self._verify_output
  
      @property
      def coverage_ratio(self):
          """ Return coverage ratio from training options """
          return self.model.training_opts["coverage_ratio"]
keep keep keep keep replace 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