          self.tk_image = None
          logger.trace("Initialized %s", self.__class__.__name__)
  
      @property
      def total_columns(self):
          """ Return the total number of images that are being displayed """
          return len(self.source)
  
      def update_tk_image(self):
          """ Return compiled images images in TK PIL format resized for frame """
 
</s> remove         """ Return compiled images images in TK PIL format resized for frame """
 </s> add         """ Build the full preview images and compile :attr:`tk_image` for display. """ </s> remove         self.faces = dict()
        self.faces_source = None
        self.faces_dest = None
        self.tk_image = None
 </s> add  </s> remove         self.build_faces_image()
        img = np.vstack((self.faces_source, self.faces_dest))
        size = self.get_scale_size(img)
 </s> add         self._build_faces_image()
        img = np.vstack((self._faces_source, self._faces_dest))
        size = self._get_scale_size(img) </s> remove     def random_choice(self):
        """ Return for random indices from the indices group """
        retval = [random.choice(indices) for indices in self.indices]
 </s> add     def sample_size(self):
        """ int: The number of samples to take from the input video/images """
        return self._sample_size

    @property
    def predicted_images(self):
        """ list: The predicted faces output from the Faceswap model """
        return self._predicted_images

    @property
    def alignments(self):
        """ :class:`~lib.alignments.Alignments`: The alignments for the preview faces """
        return self._alignments

    @property
    def predictor(self):
        """ :class:`~scripts.convert.Predict`: The Predictor for the Faceswap model """
        return self._predictor

    @property
    def _random_choice(self):
        """ list: Random indices from the :attr:`_indices` group """
        retval = [random.choice(indices) for indices in self._indices]
    def tk_image(self):
        """ :class:`PIL.ImageTk.PhotoImage`: The compiled preview display in tkinter display
        format """
        return self._tk_image

    @property
    def _total_columns(self):
          self.tk_image = None
          logger.trace("Initialized %s", self.__class__.__name__)
  
      @property
    def tk_image(self):
        """ :class:`PIL.ImageTk.PhotoImage`: The compiled preview display in tkinter display
        format """
        return self._tk_image

    @property
    def _total_columns(self):
          """ Return the total number of images that are being displayed """
          return len(self.source)
  
      def update_tk_image(self):
          """ Return compiled images images in TK PIL format resized for frame """
keep keep keep keep 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 
tools/preview.py