              size = (max(1, int(image.shape[1] * scale)), self.display_dims[1])
          logger.trace("scale: %s, size: %s", scale, size)
          return size
  
      def build_faces_image(self):
          """ Display associated faces """
          logger.trace("Building Faces Image")
          update_all = self.update_source
          self.faces_from_frames()
          if update_all:
              header = self.header_text()
 
</s> remove             scale = self.display_dims[1] / float(image.shape[0])
            size = (max(1, int(image.shape[1] * scale)), self.display_dims[1])
 </s> add             scale = self._display_dims[1] / float(image.shape[0])
            size = (max(1, int(image.shape[1] * scale)), self._display_dims[1]) </s> remove         self.faces_from_frames()
 </s> add         self._faces_from_frames() </s> remove             scale = self.display_dims[0] / float(image.shape[1])
            size = (self.display_dims[0], max(1, int(image.shape[0] * scale)))
 </s> add             scale = self._display_dims[0] / float(image.shape[1])
            size = (self._display_dims[0], max(1, int(image.shape[0] * scale))) </s> remove             header = self.header_text()
            source = np.hstack([self.draw_rect(face) for face in self.faces["src"]])
            self.faces_source = np.vstack((header, source))
        self.faces_dest = np.hstack([self.draw_rect(face) for face in self.faces["dst"]])
 </s> add             header = self._header_text()
            source = np.hstack([self._draw_rect(face) for face in self._faces["src"]])
            self._faces_source = np.vstack((header, source))
        self._faces_dest = np.hstack([self._draw_rect(face) for face in self._faces["dst"]]) </s> remove         self.size = size
        self.display_dims = (1, 1)
        self.tk_vars = tk_vars
        self.padding = padding
 </s> add         self._size = size
        self._display_dims = (1, 1)
        self._tk_vars = tk_vars
        self._padding = padding

        self._faces = dict()
        self._faces_source = None
        self._faces_dest = None
        self._tk_image = None
    def _build_faces_image(self):
        """ Compile the source and destination rows of the preview image. """
              size = (max(1, int(image.shape[1] * scale)), self.display_dims[1])
          logger.trace("scale: %s, size: %s", scale, size)
          return size
  
    def _build_faces_image(self):
        """ Compile the source and destination rows of the preview image. """
    def _build_faces_image(self):
        """ Compile the source and destination rows of the preview image. """
          logger.trace("Building Faces Image")
          update_all = self.update_source
          self.faces_from_frames()
          if update_all:
              header = self.header_text()
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 
tools/preview.py