              output_dir = get_folder(os.path.join(trainer.model.model_dir, "timelapse"))
  
          return Timelapse(input_dir_A, input_dir_B, output_dir, trainer)
  
      def __init__(self, input_dir_A, input_dir_B, output, trainer):
          self.output_dir = output
          self.trainer = trainer
  
          if not os.path.isdir(self.output_dir):
              print('Error: {} does not exist'.format(self.output_dir))
 
</s> remove         return Timelapse(input_dir_A, input_dir_B, output_dir, trainer)
 </s> add         return Timelapse(input_dir_a, input_dir_b, output_dir, trainer) </s> remove             output_dir = get_folder(os.path.join(trainer.model.model_dir, "timelapse"))
 </s> add             output_dir = get_folder(os.path.join(trainer.model.model_dir,
                                                 "timelapse")) </s> remove     def CreateTimelapse(test, input_dir_A, input_dir_B, output_dir, trainer):
        #self.input_dir = input
        #self.output_dir = output
        #self.trainer = trainer

        if input_dir_A is None and input_dir_B is None and output_dir is None:
 </s> add     def create_timelapse(cls, input_dir_a, input_dir_b, output_dir, trainer):
        """ Create the time lapse """
        if input_dir_a is None and input_dir_b is None and output_dir is None: </s> remove         self.files_A = self.read_input_images(input_dir_A)
        self.files_B = self.read_input_images(input_dir_B)
 </s> add         self.files_a = self.read_input_images(input_dir_a)
        self.files_b = self.read_input_images(input_dir_b) </s> remove         if input_dir_A is None or input_dir_B is None:
            raise Exception("To enable the timelapse, you have to supply all the parameters "
                            "(--timelapse-input-A and --timelapse-input-B).")
 </s> add         if input_dir_a is None or input_dir_b is None:
            raise ValueError("To enable the timelapse, you have to supply "
                             "all the parameters (--timelapse-input-A and "
                             "--timelapse-input-B).")
    def __init__(self, input_dir_a, input_dir_b, output, trainer):
              output_dir = get_folder(os.path.join(trainer.model.model_dir, "timelapse"))
  
          return Timelapse(input_dir_A, input_dir_B, output_dir, trainer)
  
    def __init__(self, input_dir_a, input_dir_b, output, trainer):
          self.output_dir = output
          self.trainer = trainer
  
          if not os.path.isdir(self.output_dir):
              print('Error: {} does not exist'.format(self.output_dir))
keep keep keep keep replace keep keep keep keep keep
 Extraction - Speed improvements (#522) (#523)

* Extraction - Speed improvements (#522)

* Initial Plugin restructure

* Detectors to plugins. Detector speed improvements

* Re-implement dlib aligner, remove models, FAN to TF. Parallel processing

* Update manual, update convert, implement parallel/serial switching

* linting + fix cuda check (setup.py). requirements update keras 2.2.4

* Add extract size option. Fix dlib hog init

* GUI: Increase tooltip width

* Update alignment tool to support new DetectedFace

* Add skip existing faces option

* Fix sort tool to new plugin structure

* remove old align plugin

* fix convert -skip faces bug

* Fix convert skipping no faces frames

* Convert - draw onto transparent layer

* Fix blur threshold bug

* fix skip_faces convert bug

* Fix training 
lib/utils.py