              self.patch.current_config = self.config_tools.config
          self.patch.trigger.set()
          logger.trace("Refreshed swapped faces")
  
      def build_ui(self):
          """ Build the UI elements for displaying preview and options """
          container = tk.PanedWindow(self.root,
                                     sashrelief=tk.RIDGE,
                                     sashwidth=4,
                                     sashpad=8,
                                     orient=tk.VERTICAL)
          container.pack(fill=tk.BOTH, expand=True)
 
</s> remove         self.tk_vars["busy"].set(True)
        self.config_tools.update_config()
        with self.lock:
            self.patch.converter_arguments = self.cli_frame.convert_args
            self.patch.current_config = self.config_tools.config
        self.patch.trigger.set()
 </s> add         self._tk_vars["busy"].set(True)
        self._config_tools.update_config()
        with self._lock:
            self._patch.converter_arguments = self._cli_frame.convert_args
            self._patch.current_config = self._config_tools.config
        self._patch.trigger.set() </s> remove         container.preview_display = self.display
        self.image_canvas = ImagesCanvas(container, self.tk_vars)
        container.add(self.image_canvas, height=400 * self.scaling)
 </s> add         container.preview_display = self._display
        self._image_canvas = ImagesCanvas(container, self._tk_vars)
        container.add(self._image_canvas, height=400 * self._scaling) </s> remove     def header_text(self):
        """ Create header text for output image """
        font_scale = self.size / 640
        height = self.size // 8
 </s> add     def _header_text(self):
        """ Create the header text displaying the frame name for each preview column.

        Returns
        -------
        :class:`numpy.ndarray`
            The header row of the preview image containing the frame names for each column
        """
        font_scale = self._size / 640
        height = self._size // 8 </s> remove     def crop_destination_faces(self):
        """ Update the main faces dict with new destination faces based on source matrices """
 </s> add     def _crop_destination_faces(self):
        """ Extract the swapped faces from the swapped frames using the source face destination
        matrices. """
    def _build_ui(self):
        """ Build the elements for displaying preview images and options panels. """
        container = tk.PanedWindow(self,
              self.patch.current_config = self.config_tools.config
          self.patch.trigger.set()
          logger.trace("Refreshed swapped faces")
  
    def _build_ui(self):
        """ Build the elements for displaying preview images and options panels. """
        container = tk.PanedWindow(self,
    def _build_ui(self):
        """ Build the elements for displaying preview images and options panels. """
        container = tk.PanedWindow(self,
    def _build_ui(self):
        """ Build the elements for displaying preview images and options panels. """
        container = tk.PanedWindow(self,
                                     sashrelief=tk.RIDGE,
                                     sashwidth=4,
                                     sashpad=8,
                                     orient=tk.VERTICAL)
          container.pack(fill=tk.BOTH, expand=True)
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 
tools/preview.py