          logger.debug("Initializing %s: (args: %s)", self.__class__.__name__, arguments)
          self._args = arguments
  
          self._patch_threads = None
          self._images = Images(self._args)
          self._alignments = Alignments(self._args, False, self._images.is_video)
  
          self._opts = OptionalActions(self._args, self._images.input_images, self._alignments)
  
          self._add_queues()
 
</s> remove         self._opts = OptionalActions(self._args, self._images.input_images, self._alignments)
 </s> add         self._opts = OptionalActions(self._args, self._images.file_list, self._alignments) </s> remove             minframe, maxframe = 1, self._images.images_found
 </s> add             minframe, maxframe = 1, self._images.count </s> remove         if preview:
            raise ValueError("Preview with audio muxing is not supported.")
        # if not preview:
        #    _output_opts = '-y ' + _output_opts
 </s> add  </s> remove     _actions_can_preview = ["gen_vid", "mux_audio", "rescale", "rotate",
                            "slice"]
 </s> add  </s> remove                   preview=None, exe=None, **kwargs):
 </s> add                   exe=None, **kwargs):
        self._images = ImagesLoader(self._args.input_dir, fast_count=True)
          logger.debug("Initializing %s: (args: %s)", self.__class__.__name__, arguments)
          self._args = arguments
  
          self._patch_threads = None
        self._images = ImagesLoader(self._args.input_dir, fast_count=True)
          self._alignments = Alignments(self._args, False, self._images.is_video)
  
          self._opts = OptionalActions(self._args, self._images.input_images, self._alignments)
  
          self._add_queues()
keep keep keep keep replace keep keep keep keep keep
 Bugfixes and minor updates:
  - Remove preview option from effmpeg tool
  - Remove json filetypes from GUI for alignments files
  - Capture and raise empty timelapse folder errors
  - Move convert to use centralized ImagesLoader 
scripts/convert.py