                                     output_size=self.samples.predictor.output_size,
                                     output_has_mask=self.samples.predictor.has_predicted_mask,
                                     draw_transparent=False,
                                     pre_encode=None,
                                     arguments=self.generate_converter_arguments(arguments))
  
          self.shutdown = Event()
  
 
</s> remove         self.configfile = self.get_config_file()
 </s> add         self.configfile = self.get_config_file(configfile) </s> remove         self.detector = self.load_detector(detector, loglevel, rotate_images, min_size)
        self.aligner = self.load_aligner(aligner, loglevel)
 </s> add         self.detector = self.load_detector(detector, loglevel, rotate_images, min_size, configfile)
        self.aligner = self.load_aligner(aligner, loglevel, configfile) </s> remove             retval = get_config(section)
 </s> add             retval = get_config(section, configfile)
                                   configfile=configfile,
                                     output_size=self.samples.predictor.output_size,
                                     output_has_mask=self.samples.predictor.has_predicted_mask,
                                     draw_transparent=False,
                                     pre_encode=None,
                                   configfile=configfile,
                                     arguments=self.generate_converter_arguments(arguments))
  
          self.shutdown = Event()
  
keep keep keep add keep keep keep keep
 Config Changes + Bugfixes

Bugfix: Fully disable keypress monitor for GUI
Bugfix: Preview - Handle missing alignments file
Config changes:
    - Separate plugin defaults into their own files
    - Move mask_type to global training config
    - Add ability to pass in custom config files 
tools/preview.py