              The threshold amount to minimize/maximize mask values to 0 and 100. Percentage value.
              Default: 0
          """
          logger.trace("blur_kernel: %s, threshold: %s", blur_kernel, threshold)
          if blur_kernel == 0 or blur_kernel % 2 == 1:
              self._blur_kernel = blur_kernel
          else:
              self._blur_kernel = blur_kernel + 1
          self._threshold = (threshold / 100.0) * 255.0
  
      def _adjust_affine_matrix(self, mask_size, affine_matrix):
          """ Adjust the affine matrix for the mask's storage size
  
 
</s> remove         if self._threshold != 0.0 or self._blur_kernel != 0:
 </s> add         if self._threshold != 0.0 or self._blur["kernel"] != 0: </s> remove         if self._blur_kernel != 0:
            mask = cv2.GaussianBlur(mask, (self._blur_kernel, self._blur_kernel), 0)[..., None]
 </s> add         if self._blur["kernel"] != 0:
            mask = BlurMask(self._blur["type"],
                            mask,
                            self._blur["kernel"],
                            passes=self._blur["passes"]).blurred </s> remove     def get_batchsize(queue_size):
        """ Get the batchsize """
 </s> add     def _get_batchsize(queue_size):
        """ Get the batch size for feeding the model.

        Sets the batch size to 1 if inference is being run on CPU, otherwise the minimum of the
        :attr:`self._queue_size` and 16.

        Returns
        -------
        int
            The batch size that the model is to be fed at.
        """
        if blur_type is not None:
            blur_kernel += 0 if blur_kernel == 0 or blur_kernel % 2 == 1 else 1
            self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
              The threshold amount to minimize/maximize mask values to 0 and 100. Percentage value.
              Default: 0
          """
          logger.trace("blur_kernel: %s, threshold: %s", blur_kernel, threshold)
        if blur_type is not None:
            blur_kernel += 0 if blur_kernel == 0 or blur_kernel % 2 == 1 else 1
            self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
        if blur_type is not None:
            blur_kernel += 0 if blur_kernel == 0 or blur_kernel % 2 == 1 else 1
            self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
        if blur_type is not None:
            blur_kernel += 0 if blur_kernel == 0 or blur_kernel % 2 == 1 else 1
            self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
        if blur_type is not None:
            blur_kernel += 0 if blur_kernel == 0 or blur_kernel % 2 == 1 else 1
            self._blur["kernel"] = blur_kernel
            self._blur["type"] = blur_type
            self._blur["passes"] = blur_passes
          self._threshold = (threshold / 100.0) * 255.0
  
      def _adjust_affine_matrix(self, mask_size, affine_matrix):
          """ Adjust the affine matrix for the mask's storage size
  
keep keep keep keep replace 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 
lib/faces_detect.py