From 7d4b635460a0fbe03a2e393a3cac7d0e2dbebb1e Mon Sep 17 00:00:00 2001 From: lvmin Date: Fri, 13 Oct 2023 06:42:08 -0700 Subject: [PATCH] ini preset --- args_manager.py | 1 + fooocus_version.py | 2 +- modules/path.py | 24 ++++++++++++++++++++++-- presets/sdxl.json | 20 ++++++++++++++++++++ 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 presets/sdxl.json diff --git a/args_manager.py b/args_manager.py index 895f5b74..df91077a 100644 --- a/args_manager.py +++ b/args_manager.py @@ -4,6 +4,7 @@ import fcbh.cli_args as fcbh_cli fcbh_cli.parser.add_argument("--share", action='store_true', help="Set whether to share on Gradio.") +fcbh_cli.parser.add_argument("--preset", type=str, default=None, help="Apply specified UI preset.") fcbh_cli.args = fcbh_cli.parser.parse_args() fcbh_cli.args.disable_cuda_malloc = True diff --git a/fooocus_version.py b/fooocus_version.py index 91bb13bb..9806507b 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '2.1.56' +version = '2.1.57' diff --git a/modules/path.py b/modules/path.py index 53147b74..fa2aab0b 100644 --- a/modules/path.py +++ b/modules/path.py @@ -1,5 +1,6 @@ import os import json +import args_manager import modules.flags import modules.sdxl_styles @@ -16,6 +17,23 @@ except Exception as e: print('Load path config failed') print(e) +preset = args_manager.args.preset + +if preset is not None: + preset = os.path.abspath(f'./presets/{preset}.json') + try: + if os.path.exists(preset): + with open(preset, "r", encoding="utf-8") as json_file: + preset = json.load(json_file) + except Exception as e: + print('Load preset config failed') + print(e) + +preset = preset if isinstance(preset, dict) else None + +if preset is not None: + config_dict.update(preset) + def get_dir_or_set_default(key, default_value): global config_dict @@ -125,8 +143,10 @@ default_aspect_ratio = get_config_item_or_set_default( validator=lambda x: x.replace('*', '×') in modules.sdxl_styles.aspect_ratios ).replace('*', '×') -with open(config_path, "w", encoding="utf-8") as json_file: - json.dump(config_dict, json_file, indent=4) +if preset is None: + # Do not overwrite user config if preset is applied. + with open(config_path, "w", encoding="utf-8") as json_file: + json.dump(config_dict, json_file, indent=4) os.makedirs(temp_outputs_path, exist_ok=True) diff --git a/presets/sdxl.json b/presets/sdxl.json new file mode 100644 index 00000000..e329091b --- /dev/null +++ b/presets/sdxl.json @@ -0,0 +1,20 @@ +{ + "default_model": "sd_xl_base_1.0_0.9vae.safetensors", + "default_refiner": "sd_xl_refiner_1.0_0.9vae.safetensors", + "default_lora": "sd_xl_offset_example-lora_1.0.safetensors", + "default_lora_weight": 0.5, + "default_cfg_scale": 7.0, + "default_sampler": "dpmpp_2m_sde_gpu", + "default_scheduler": "karras", + "default_styles": [ + "Fooocus V2", + "Default (Slightly Cinematic)" + ], + "default_negative_prompt": "low quality, bad hands, bad eyes, cropped, missing fingers, extra digit", + "default_positive_prompt": "", + "checkpoint_downloads": { + "sd_xl_base_1.0_0.9vae.safetensors": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors", + "sd_xl_refiner_1.0_0.9vae.safetensors": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors" + }, + "default_aspect_ratio": "1152*896" +}