          retval = [random.choice(indices) for indices in self.indices]
          logger.debug(retval)
          return retval
  
      def get_filelist(self):
          """ Return a list of files, filtering out those frames which do not contain faces """
          logger.debug("Filtering file list to frames with faces")
          if self.images.is_video:
              filelist = ["{}_{:06d}.png".format(os.path.splitext(self.images.input_images)[0],
                                                 frame_no)
                          for frame_no in range(1, self.images.images_found + 1)]
 
</s> remove         if self.images.is_video:
            filelist = ["{}_{:06d}.png".format(os.path.splitext(self.images.input_images)[0],
 </s> add         if self._images.is_video:
            filelist = ["{}_{:06d}.png".format(os.path.splitext(self._images.input_images)[0], </s> remove                         for frame_no in range(1, self.images.images_found + 1)]
 </s> add                         for frame_no in range(1, self._images.images_found + 1)] </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] </s> remove             filelist = self.images.input_images
 </s> add             filelist = self._images.input_images </s> remove                   if self.alignments.frame_has_faces(os.path.basename(filename))]
        logger.debug("Filtered out frames: %s", self.images.images_found - len(retval))
 </s> add                   if self._alignments.frame_has_faces(os.path.basename(filename))]
        logger.debug("Filtered out frames: %s", self._images.images_found - len(retval))
    def _get_filelist(self):
        """ Get a list of files for the input, filtering out those frames which do
        not contain faces.

        Returns
        -------
        list
            A list of filenames of frames that contain faces.
        """
          retval = [random.choice(indices) for indices in self.indices]
          logger.debug(retval)
          return retval
  
    def _get_filelist(self):
        """ Get a list of files for the input, filtering out those frames which do
        not contain faces.

        Returns
        -------
        list
            A list of filenames of frames that contain faces.
        """
    def _get_filelist(self):
        """ Get a list of files for the input, filtering out those frames which do
        not contain faces.

        Returns
        -------
        list
            A list of filenames of frames that contain faces.
        """
          logger.debug("Filtering file list to frames with faces")
          if self.images.is_video:
              filelist = ["{}_{:06d}.png".format(os.path.splitext(self.images.input_images)[0],
                                                 frame_no)
                          for frame_no in range(1, self.images.images_found + 1)]
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