                   trainer="original",
                   pingpong=False,
                   memory_saving_gradients=False,
                   predict=False):
          logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, no_logs: %s"
                       "warp_to_landmarks: %s, augment_color: %s, no_flip: %s, training_image_size, "
                       "%s, alignments_paths: %s, preview_scale: %s, input_shape: %s, encoder_dim: "
                       "%s, trainer: %s, pingpong: %s, memory_saving_gradients: %s, predict: %s)",
                       self.__class__.__name__, model_dir, gpus, no_logs, warp_to_landmarks,
                       augment_color, no_flip, training_image_size, alignments_paths, preview_scale,
                       input_shape, encoder_dim, trainer, pingpong, memory_saving_gradients, predict)
  
          self.predict = predict
          self.model_dir = model_dir
          self.gpus = gpus
          self.blocks = NNBlocks(use_subpixel=self.config["subpixel_upscaling"],
 
</s> remove         logger.debug("Initializing %s: (loglevel: %s, git_model_id: %s, model_filename: '%s', "
                     "colorspace: '%s'. input_size: %s)", self.__class__.__name__, loglevel,
                     git_model_id, model_filename, colorspace, input_size)
 </s> add         logger.debug("Initializing %s: (loglevel: %s, configfile: %s, git_model_id: %s, "
                     "model_filename: '%s', colorspace: '%s'. input_size: %s)",
                     self.__class__.__name__, loglevel, configfile, git_model_id, model_filename,
                     colorspace, input_size) </s> remove                  multiprocess=False, rotate_images=None, min_size=20):
        logger.debug("Initializing %s: (detector: %s, aligner: %s, loglevel: %s, multiprocess: %s"
                     ", rotate_images: %s, min_size: %s)", self.__class__.__name__, detector,
                     aligner, loglevel, multiprocess, rotate_images, min_size)
 </s> add                  configfile=None, multiprocess=False, rotate_images=None, min_size=20):
        logger.debug("Initializing %s: (detector: %s, aligner: %s, loglevel: %s, configfile: %s, "
                     "multiprocess: %s, rotate_images: %s, min_size: %s)", self.__class__.__name__,
                     detector, aligner, loglevel, configfile, multiprocess, rotate_images,
                     min_size) </s> remove                      "draw_transparent: %s, pre_encode: %s, arguments: %s)",
 </s> add                      "draw_transparent: %s, pre_encode: %s, arguments: %s, configfile: %s)", </s> remove         logger.debug("Initializing %s: (loglevel: %s, git_model_id: %s, model_filename: %s, "
                     "rotation: %s, min_size: %s)", self.__class__.__name__, loglevel,
                     git_model_id, model_filename, rotation, min_size)
        self.config = get_config(".".join(self.__module__.split(".")[-2:]))
 </s> add         logger.debug("Initializing %s: (loglevel: %s, configfile: %s, git_model_id: %s, "
                     "model_filename: %s, rotation: %s, min_size: %s)",
                     self.__class__.__name__, loglevel, configfile, git_model_id,
                     model_filename, rotation, min_size)
        self.config = get_config(".".join(self.__module__.split(".")[-2:]), configfile=configfile)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
                   trainer="original",
                   pingpong=False,
                   memory_saving_gradients=False,
                   predict=False):
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
        logger.debug("Initializing ModelBase (%s): (model_dir: '%s', gpus: %s, configfile: %s, "
                     "no_logs: %s, warp_to_landmarks: %s, augment_color: %s, no_flip: %s, "
                     "training_image_size, %s, alignments_paths: %s, preview_scale: %s, "
                     "input_shape: %s, encoder_dim: %s, trainer: %s, pingpong: %s, "
                     "memory_saving_gradients: %s, predict: %s)",
                     self.__class__.__name__, model_dir, gpus, configfile, no_logs,
                     warp_to_landmarks, augment_color, no_flip, training_image_size,
                     alignments_paths, preview_scale, input_shape, encoder_dim, trainer, pingpong,
                     memory_saving_gradients, predict)
  
          self.predict = predict
          self.model_dir = model_dir
          self.gpus = gpus
          self.blocks = NNBlocks(use_subpixel=self.config["subpixel_upscaling"],
keep keep keep keep replace replace replace replace replace replace replace keep 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 
plugins/train/model/_base.py