          """ Arguments that are used in ALL parts of Faceswap
              DO NOT override this """
          global_args = list()
          global_args.append({"opts": ("-L", "--loglevel"),
                              "type": str.upper,
                              "dest": "loglevel",
                              "default": "INFO",
                              "choices": ("INFO", "VERBOSE", "DEBUG", "TRACE"),
 
</s> remove         return Config(self.config_section).changeable_items
 </s> add         return Config(self.config_section, configfile=self.configfile).changeable_items </s> remove         self.config = get_config(".".join(self.__module__.split(".")[-2:]))
 </s> add         self.config = get_config(".".join(self.__module__.split(".")[-2:]), configfile=configfile) </s> remove         # << GLOBAL OPTIONS >> #
 </s> add         self.set_globals()
        current_dir = os.path.dirname(__file__)
        for dirpath, _, filenames in os.walk(current_dir):
            default_files = [fname for fname in filenames if fname.endswith("_defaults.py")]
            if not default_files:
                continue
            base_path = os.path.dirname(os.path.realpath(sys.argv[0]))
            import_path = dirpath.replace(base_path, "").replace("/", ".")[1:]
            plugin_type = import_path.split(".")[-1]
            for filename in default_files:
                self.load_module(filename, import_path, plugin_type)

    def set_globals(self):
        """ Set the global options for training """
        logger.debug("Setting global config") </s> remove             _CONFIG = Config(model_name).config_dict
 </s> add             _CONFIG = Config(model_name, configfile=self.configfile).config_dict </s> remove     def __init__(self, output_folder, total_count, source_video):
        super().__init__(output_folder)
 </s> add     def __init__(self, output_folder, total_count, source_video, **kwargs):
        super().__init__(output_folder, **kwargs)
        global_args.append({"opts": ("-C", "--configfile"),
                            "action": FileFullPaths,
                            "filetypes": "ini",
                            "type": str,
                            "help": "Optionally overide the saved config with the path to a "
                                    "custom config file."})
          """ Arguments that are used in ALL parts of Faceswap
              DO NOT override this """
          global_args = list()
        global_args.append({"opts": ("-C", "--configfile"),
                            "action": FileFullPaths,
                            "filetypes": "ini",
                            "type": str,
                            "help": "Optionally overide the saved config with the path to a "
                                    "custom config file."})
          global_args.append({"opts": ("-L", "--loglevel"),
                              "type": str.upper,
                              "dest": "loglevel",
                              "default": "INFO",
                              "choices": ("INFO", "VERBOSE", "DEBUG", "TRACE"),
keep keep add 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 
lib/cli.py