              if image is None:
                  continue
              yield filename, image
  
      def load_video_frames(self):
          """ Return frames from a video file """
          logger.debug("Input is video. Capturing frames")
          vidname = os.path.splitext(os.path.basename(self.args.input_dir))[0]
          reader = imageio.get_reader(self.args.input_dir, "ffmpeg")
          for i, frame in enumerate(reader):
              # Convert to BGR for cv2 compatibility
 
</s> remove         vidname = os.path.splitext(os.path.basename(self.args.input_dir))[0]
        reader = imageio.get_reader(self.args.input_dir, "ffmpeg")
 </s> add         vidname = os.path.splitext(os.path.basename(self._args.input_dir))[0]
        reader = imageio.get_reader(self._args.input_dir, "ffmpeg") </s> remove         for filename in self.input_images:
 </s> add         for filename in self._input_images: </s> remove     def load_disk_frames(self):
        """ Load frames from disk """
 </s> add     def _load_disk_frames(self):
        """ Generator to load frames from a folder of images.

        Yields
        ------
        filename: str
            The filename of the current frame
        image: :class:`numpy.ndarray`
            A single frame
        """ </s> remove         reader = imageio.get_reader(self.args.input_dir, "ffmpeg")
 </s> add         reader = imageio.get_reader(self._args.input_dir, "ffmpeg") </s> remove     def load_one_video_frame(self, frame_no):
        """ Load a single frame from a video file """
 </s> add     def _load_one_video_frame(self, frame_no):
        """ Obtain a single frame from a video file.

        Parameters
        ----------
        frame_no: int
            The frame index for the required frame

        Returns
        ------
        :class:`numpy.ndarray`
            The image for the requested frame index,
        """
    def _load_video_frames(self):
        """ Generator to load frames from a video file.

        Yields
        ------
        filename: str
            The filename of the current frame
        image: :class:`numpy.ndarray`
            A single frame
        """
              if image is None:
                  continue
              yield filename, image
  
    def _load_video_frames(self):
        """ Generator to load frames from a video file.

        Yields
        ------
        filename: str
            The filename of the current frame
        image: :class:`numpy.ndarray`
            A single frame
        """
    def _load_video_frames(self):
        """ Generator to load frames from a video file.

        Yields
        ------
        filename: str
            The filename of the current frame
        image: :class:`numpy.ndarray`
            A single frame
        """
          logger.debug("Input is video. Capturing frames")
          vidname = os.path.splitext(os.path.basename(self.args.input_dir))[0]
          reader = imageio.get_reader(self.args.input_dir, "ffmpeg")
          for i, frame in enumerate(reader):
              # Convert to BGR for cv2 compatibility
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 
scripts/fsmedia.py