From e1697272ec7d02205f5331065e575dfa4a74d2a1 Mon Sep 17 00:00:00 2001 From: eddyizm Date: Wed, 10 Jan 2024 09:36:27 -0800 Subject: [PATCH 01/13] feature: added flag, config and ui update for image extension change #1789 --- modules/config.py | 6 ++++++ modules/flags.py | 1 + modules/private_logger.py | 4 ++-- webui.py | 11 +++++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/config.py b/modules/config.py index c7af33db..35077cda 100644 --- a/modules/config.py +++ b/modules/config.py @@ -248,6 +248,11 @@ default_max_image_number = get_config_item_or_set_default( default_value=32, validator=lambda x: isinstance(x, int) and x >= 1 ) +default_image_extension = get_config_item_or_set_default( + key='default_image_extension', + default_value='png', + validator=lambda x: x in modules.flags.image_extensions +) default_image_number = get_config_item_or_set_default( key='default_image_number', default_value=2, @@ -330,6 +335,7 @@ possible_preset_keys = [ "default_sampler", "default_scheduler", "default_performance", + "default_image_extension", "default_prompt", "default_prompt_negative", "default_styles", diff --git a/modules/flags.py b/modules/flags.py index 27f2d716..4e5a174c 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -34,6 +34,7 @@ default_parameters = { inpaint_engine_versions = ['None', 'v1', 'v2.5', 'v2.6'] performance_selections = ['Speed', 'Quality', 'Extreme Speed'] +image_extensions = ['png', 'jpg'] inpaint_option_default = 'Inpaint or Outpaint (default)' inpaint_option_detail = 'Improve Detail (face, hand, eyes, etc.)' diff --git a/modules/private_logger.py b/modules/private_logger.py index 968bd4f5..1417b0b6 100644 --- a/modules/private_logger.py +++ b/modules/private_logger.py @@ -13,7 +13,7 @@ log_cache = {} def get_current_html_path(): date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, - extension='png') + extension=modules.config.default_image_extension) html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html') return html_name @@ -22,7 +22,7 @@ def log(img, dic): if args_manager.args.disable_image_log: return - date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, extension='png') + date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, extension=modules.config.default_image_extension) os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True) Image.fromarray(img).save(local_temp_filename) html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html') diff --git a/webui.py b/webui.py index 581e3101..d21cd557 100644 --- a/webui.py +++ b/webui.py @@ -230,6 +230,9 @@ with shared.gradio_root: value=modules.config.default_aspect_ratio, info='width × height', elem_classes='aspect_ratios') image_number = gr.Slider(label='Image Number', minimum=1, maximum=modules.config.default_max_image_number, step=1, value=modules.config.default_image_number) + image_extension = gr.Radio(label='Image Extension', + choices=modules.flags.image_extensions, + value=modules.config.default_image_extension) negative_prompt = gr.Textbox(label='Negative Prompt', show_label=True, placeholder="Type prompt here.", info='Describing what you do not want to see.', lines=2, elem_id='negative_prompt', @@ -481,7 +484,15 @@ with shared.gradio_root: adm_scaler_negative, refiner_switch, refiner_model, sampler_name, scheduler_name, adaptive_cfg, refiner_swap_method, negative_prompt ], queue=False, show_progress=False) + + def update_image_extension(value): + print(f'this is x: {value}\nthis is config: {modules.config.default_image_extension}') + modules.config.default_image_extension = value + print(f'updated config value: {modules.config.default_image_extension}') + image_extension.input(lambda x: update_image_extension(x), + inputs=image_extension) + advanced_checkbox.change(lambda x: gr.update(visible=x), advanced_checkbox, advanced_column, queue=False, show_progress=False) \ .then(fn=lambda: None, _js='refresh_grid_delayed', queue=False, show_progress=False) From 9dfa1a99e386d07fcea5f5505697e63a6a0ffaa6 Mon Sep 17 00:00:00 2001 From: eddyizm Date: Wed, 10 Jan 2024 19:06:40 -0800 Subject: [PATCH 02/13] moved function to config module --- modules/config.py | 6 ++++++ webui.py | 7 +------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/config.py b/modules/config.py index 35077cda..0dc9929e 100644 --- a/modules/config.py +++ b/modules/config.py @@ -151,6 +151,12 @@ def get_config_item_or_set_default(key, default_value, validator, disable_empty_ return default_value +def update_image_extension(value): + '''Updating default image extension used for saving output image''' + modules.config.default_image_extension = value + print(f'[CONFIG] Updated image extension value: {modules.config.default_image_extension}') + + default_base_model_name = get_config_item_or_set_default( key='default_model', default_value='juggernautXL_version6Rundiffusion.safetensors', diff --git a/webui.py b/webui.py index d21cd557..17c8a6ed 100644 --- a/webui.py +++ b/webui.py @@ -485,12 +485,7 @@ with shared.gradio_root: scheduler_name, adaptive_cfg, refiner_swap_method, negative_prompt ], queue=False, show_progress=False) - def update_image_extension(value): - print(f'this is x: {value}\nthis is config: {modules.config.default_image_extension}') - modules.config.default_image_extension = value - print(f'updated config value: {modules.config.default_image_extension}') - - image_extension.input(lambda x: update_image_extension(x), + image_extension.input(lambda x: modules.config.update_image_extension(x), inputs=image_extension) advanced_checkbox.change(lambda x: gr.update(visible=x), advanced_checkbox, advanced_column, From ab3acb7817c9aa29ff644c73415c586e77d730bf Mon Sep 17 00:00:00 2001 From: eddyizm Date: Fri, 12 Jan 2024 22:49:07 -0800 Subject: [PATCH 03/13] moved image extension to webui via async worker. Passing as parameter to log and get_current_html_path functions per feedback --- modules/async_worker.py | 4 +++- modules/config.py | 6 ------ modules/private_logger.py | 10 ++++++---- webui.py | 8 ++++---- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/modules/async_worker.py b/modules/async_worker.py index b2af6712..104ac43d 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -125,6 +125,7 @@ def worker(): performance_selection = args.pop() aspect_ratios_selection = args.pop() image_number = args.pop() + image_extension = args.pop() image_seed = args.pop() sharpness = args.pop() guidance_scale = args.pop() @@ -376,6 +377,7 @@ def worker(): progressbar(async_task, 3, 'Processing prompts ...') tasks = [] + for i in range(image_number): task_seed = (seed + i) % (constants.MAX_SEED + 1) # randint is inclusive, % is not task_rng = random.Random(task_seed) # may bind to inpaint noise in the future @@ -511,7 +513,7 @@ def worker(): if direct_return: d = [('Upscale (Fast)', '2x')] - log(uov_input_image, d) + log(uov_input_image, d, image_extension) yield_result(async_task, uov_input_image, do_not_show_finished_images=True) return diff --git a/modules/config.py b/modules/config.py index 0dc9929e..35077cda 100644 --- a/modules/config.py +++ b/modules/config.py @@ -151,12 +151,6 @@ def get_config_item_or_set_default(key, default_value, validator, disable_empty_ return default_value -def update_image_extension(value): - '''Updating default image extension used for saving output image''' - modules.config.default_image_extension = value - print(f'[CONFIG] Updated image extension value: {modules.config.default_image_extension}') - - default_base_model_name = get_config_item_or_set_default( key='default_model', default_value='juggernautXL_version6Rundiffusion.safetensors', diff --git a/modules/private_logger.py b/modules/private_logger.py index 1417b0b6..5e42ebe0 100644 --- a/modules/private_logger.py +++ b/modules/private_logger.py @@ -11,18 +11,20 @@ from modules.util import generate_temp_filename log_cache = {} -def get_current_html_path(): +def get_current_html_path(image_extension=None): + _image_extension = image_extension if image_extension else modules.config.default_image_extension date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, - extension=modules.config.default_image_extension) + extension=_image_extension) html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html') return html_name -def log(img, dic): +def log(img, dic, image_extension=None): if args_manager.args.disable_image_log: return - date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, extension=modules.config.default_image_extension) + _image_extension = image_extension if image_extension else modules.config.default_image_extension + date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, extension=_image_extension) os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True) Image.fromarray(img).save(local_temp_filename) html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html') diff --git a/webui.py b/webui.py index 17c8a6ed..9f4df7fd 100644 --- a/webui.py +++ b/webui.py @@ -259,7 +259,7 @@ with shared.gradio_root: queue=False, show_progress=False) if not args_manager.args.disable_image_log: - gr.HTML(f'\U0001F4DA History Log') + gr.HTML(f'\U0001F4DA History Log') with gr.Tab(label='Style'): style_sorter.try_load_sorted_styles( @@ -485,9 +485,9 @@ with shared.gradio_root: scheduler_name, adaptive_cfg, refiner_swap_method, negative_prompt ], queue=False, show_progress=False) - image_extension.input(lambda x: modules.config.update_image_extension(x), + image_extension.input(lambda x: gr.update(image_extension=x), inputs=image_extension) - + advanced_checkbox.change(lambda x: gr.update(visible=x), advanced_checkbox, advanced_column, queue=False, show_progress=False) \ .then(fn=lambda: None, _js='refresh_grid_delayed', queue=False, show_progress=False) @@ -527,7 +527,7 @@ with shared.gradio_root: ctrls = [ prompt, negative_prompt, style_selections, - performance_selection, aspect_ratios_selection, image_number, image_seed, sharpness, guidance_scale + performance_selection, aspect_ratios_selection, image_number, image_extension, image_seed, sharpness, guidance_scale ] ctrls += [base_model, refiner_model, refiner_switch] + lora_ctrls From 07791dd0afaf39ea6d2788153a3752321c1a2fc1 Mon Sep 17 00:00:00 2001 From: eddyizm Date: Fri, 12 Jan 2024 23:01:22 -0800 Subject: [PATCH 04/13] check flag before displaying image extension radio button --- webui.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webui.py b/webui.py index 9f4df7fd..d1e90973 100644 --- a/webui.py +++ b/webui.py @@ -230,9 +230,7 @@ with shared.gradio_root: value=modules.config.default_aspect_ratio, info='width × height', elem_classes='aspect_ratios') image_number = gr.Slider(label='Image Number', minimum=1, maximum=modules.config.default_max_image_number, step=1, value=modules.config.default_image_number) - image_extension = gr.Radio(label='Image Extension', - choices=modules.flags.image_extensions, - value=modules.config.default_image_extension) + negative_prompt = gr.Textbox(label='Negative Prompt', show_label=True, placeholder="Type prompt here.", info='Describing what you do not want to see.', lines=2, elem_id='negative_prompt', @@ -259,6 +257,9 @@ with shared.gradio_root: queue=False, show_progress=False) if not args_manager.args.disable_image_log: + image_extension = gr.Radio(label='Image Extension', + choices=modules.flags.image_extensions, + value=modules.config.default_image_extension) gr.HTML(f'\U0001F4DA History Log') with gr.Tab(label='Style'): From 2bd7ae1e6d6bec525259ff4cdb5d6d1f76b1f5f0 Mon Sep 17 00:00:00 2001 From: eddyizm Date: Fri, 12 Jan 2024 23:29:30 -0800 Subject: [PATCH 05/13] disabled if image log flag is passed in --- webui.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/webui.py b/webui.py index d1e90973..4fd274c9 100644 --- a/webui.py +++ b/webui.py @@ -231,6 +231,13 @@ with shared.gradio_root: elem_classes='aspect_ratios') image_number = gr.Slider(label='Image Number', minimum=1, maximum=modules.config.default_max_image_number, step=1, value=modules.config.default_image_number) + image_extension = gr.Radio(label='Image Extension', + choices=modules.flags.image_extensions, + value=modules.config.default_image_extension, + # disable and hide if image log is disabled + visible=(not args_manager.args.disable_image_log), + interactive=(not args_manager.args.disable_image_log)) + negative_prompt = gr.Textbox(label='Negative Prompt', show_label=True, placeholder="Type prompt here.", info='Describing what you do not want to see.', lines=2, elem_id='negative_prompt', @@ -257,9 +264,6 @@ with shared.gradio_root: queue=False, show_progress=False) if not args_manager.args.disable_image_log: - image_extension = gr.Radio(label='Image Extension', - choices=modules.flags.image_extensions, - value=modules.config.default_image_extension) gr.HTML(f'\U0001F4DA History Log') with gr.Tab(label='Style'): @@ -486,8 +490,7 @@ with shared.gradio_root: scheduler_name, adaptive_cfg, refiner_swap_method, negative_prompt ], queue=False, show_progress=False) - image_extension.input(lambda x: gr.update(image_extension=x), - inputs=image_extension) + image_extension.input(lambda x: gr.update(image_extension=x), inputs=image_extension) advanced_checkbox.change(lambda x: gr.update(visible=x), advanced_checkbox, advanced_column, queue=False, show_progress=False) \ From 694763447dc551f9a469727021fc41dd2af2fa66 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 14:23:36 +0100 Subject: [PATCH 06/13] fix: add missing image_extension parameter to log call --- modules/async_worker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/async_worker.py b/modules/async_worker.py index 104ac43d..3057b5a0 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -801,7 +801,7 @@ def worker(): if n != 'None': d.append((f'LoRA {li + 1}', f'{n} : {w}')) d.append(('Version', 'v' + fooocus_version.version)) - log(x, d) + log(x, d, image_extension) yield_result(async_task, imgs, do_not_show_finished_images=len(tasks) == 1) except ldm_patched.modules.model_management.InterruptProcessingException as e: From d79c1d5a2744b51a38b7f6fc828e10c8ba54ccef Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 14:25:01 +0100 Subject: [PATCH 07/13] refactor: change label --- webui.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/webui.py b/webui.py index 4fd274c9..a19f21f5 100644 --- a/webui.py +++ b/webui.py @@ -231,12 +231,11 @@ with shared.gradio_root: elem_classes='aspect_ratios') image_number = gr.Slider(label='Image Number', minimum=1, maximum=modules.config.default_max_image_number, step=1, value=modules.config.default_image_number) - image_extension = gr.Radio(label='Image Extension', + image_extension = gr.Radio(label='Image Outputs Extension', choices=modules.flags.image_extensions, value=modules.config.default_image_extension, - # disable and hide if image log is disabled - visible=(not args_manager.args.disable_image_log), - interactive=(not args_manager.args.disable_image_log)) + visible=not args_manager.args.disable_image_log, + interactive=not args_manager.args.disable_image_log) negative_prompt = gr.Textbox(label='Negative Prompt', show_label=True, placeholder="Type prompt here.", info='Describing what you do not want to see.', lines=2, From 26f31ff2bdd3936e1c7e9b087d4a1a0ca5039c78 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 14:25:37 +0100 Subject: [PATCH 08/13] feat: add webp to image_extensions supported image extemsions: see https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html --- modules/flags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/flags.py b/modules/flags.py index 4e5a174c..f3c7a35a 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -34,7 +34,7 @@ default_parameters = { inpaint_engine_versions = ['None', 'v1', 'v2.5', 'v2.6'] performance_selections = ['Speed', 'Quality', 'Extreme Speed'] -image_extensions = ['png', 'jpg'] +image_extensions = ['png', 'jpg', 'webp'] inpaint_option_default = 'Inpaint or Outpaint (default)' inpaint_option_detail = 'Improve Detail (face, hand, eyes, etc.)' From 3c855bd3319228148ec7d8666dd679da9007dcdd Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 20:19:49 +0100 Subject: [PATCH 09/13] feat: use consistent file name in gradio returns and uses filepaths instead of numpy image by saving to temp dir uses double the temp dir file storage on disk as it saves to temp dir and gradio temp dir when displaying the image, but reuses logged output image --- modules/async_worker.py | 9 +++++---- modules/private_logger.py | 15 +++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/modules/async_worker.py b/modules/async_worker.py index b2af6712..0668834a 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -511,8 +511,8 @@ def worker(): if direct_return: d = [('Upscale (Fast)', '2x')] - log(uov_input_image, d) - yield_result(async_task, uov_input_image, do_not_show_finished_images=True) + uov_input_image_path = log(uov_input_image, d) + yield_result(async_task, uov_input_image_path, do_not_show_finished_images=True) return tiled = True @@ -774,6 +774,7 @@ def worker(): if inpaint_worker.current_task is not None: imgs = [inpaint_worker.current_task.post_process(x) for x in imgs] + img_paths = [] for x in imgs: d = [ ('Prompt', task['log_positive_prompt']), @@ -799,9 +800,9 @@ def worker(): if n != 'None': d.append((f'LoRA {li + 1}', f'{n} : {w}')) d.append(('Version', 'v' + fooocus_version.version)) - log(x, d) + img_paths.append(log(x, d)) - yield_result(async_task, imgs, do_not_show_finished_images=len(tasks) == 1) + yield_result(async_task, img_paths, do_not_show_finished_images=len(tasks) == 1) except ldm_patched.modules.model_management.InterruptProcessingException as e: if shared.last_stop == 'skip': print('User skipped') diff --git a/modules/private_logger.py b/modules/private_logger.py index 968bd4f5..d5f352fa 100644 --- a/modules/private_logger.py +++ b/modules/private_logger.py @@ -3,6 +3,7 @@ import args_manager import modules.config import json import urllib.parse +import tempfile from PIL import Image from modules.util import generate_temp_filename @@ -18,13 +19,15 @@ def get_current_html_path(): return html_name -def log(img, dic): - if args_manager.args.disable_image_log: - return - - date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.config.path_outputs, extension='png') +def log(img, dic) -> str: + path_outputs = tempfile.gettempdir() if args_manager.args.disable_image_log else modules.config.path_outputs + date_string, local_temp_filename, only_name = generate_temp_filename(folder=path_outputs, extension='png') os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True) Image.fromarray(img).save(local_temp_filename) + + if args_manager.args.disable_image_log: + return local_temp_filename + html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html') css_styles = ( @@ -105,4 +108,4 @@ def log(img, dic): log_cache[html_name] = middle_part - return + return local_temp_filename From 161b988522e5b67c7de9110a5a4f699fd7fc3662 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 21:16:16 +0100 Subject: [PATCH 10/13] feat: delete temp images after yielding to gradio --- webui.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/webui.py b/webui.py index 581e3101..ba1dddaf 100644 --- a/webui.py +++ b/webui.py @@ -71,6 +71,11 @@ def generate_clicked(*args): gr.update(visible=True, value=product) finished = True + # delete Fooocus temp images, only keep gradio temp images + if args_manager.args.disable_image_log: + for filepath in product: + os.remove(filepath) + execution_time = time.perf_counter() - execution_start_time print(f'Total time: {execution_time:.2f} seconds') return From 1779fa0f3a536ccac408ef43d7a543679854eb8b Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 21:19:01 +0100 Subject: [PATCH 11/13] feat: use args temp path if given --- args_manager.py | 6 ++++++ modules/private_logger.py | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/args_manager.py b/args_manager.py index e5e76753..59462719 100644 --- a/args_manager.py +++ b/args_manager.py @@ -1,5 +1,7 @@ import ldm_patched.modules.args_parser as args_parser +import os +from tempfile import gettempdir args_parser.parser.add_argument("--share", action='store_true', help="Set whether to share on Gradio.") args_parser.parser.add_argument("--preset", type=str, default=None, help="Apply specified UI preset.") @@ -34,7 +36,11 @@ args_parser.args.always_offload_from_vram = not args_parser.args.disable_offload if args_parser.args.disable_analytics: import os os.environ["GRADIO_ANALYTICS_ENABLED"] = "False" + if args_parser.args.disable_in_browser: args_parser.args.in_browser = False +if args_parser.args.temp_path is None: + args_parser.args.temp_path = os.path.join(gettempdir(), 'Fooocus') + args = args_parser.args diff --git a/modules/private_logger.py b/modules/private_logger.py index d5f352fa..416d97e6 100644 --- a/modules/private_logger.py +++ b/modules/private_logger.py @@ -3,11 +3,10 @@ import args_manager import modules.config import json import urllib.parse -import tempfile from PIL import Image from modules.util import generate_temp_filename - +from tempfile import gettempdir log_cache = {} @@ -20,7 +19,7 @@ def get_current_html_path(): def log(img, dic) -> str: - path_outputs = tempfile.gettempdir() if args_manager.args.disable_image_log else modules.config.path_outputs + path_outputs = args_manager.args.temp_path if args_manager.args.disable_image_log else modules.config.path_outputs date_string, local_temp_filename, only_name = generate_temp_filename(folder=path_outputs, extension='png') os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True) Image.fromarray(img).save(local_temp_filename) From eeb57f3ff5a015f8320d806160884b18c1e2aaad Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 21:20:13 +0100 Subject: [PATCH 12/13] chore: code cleanup, remove redundant if statement --- ldm_patched/modules/args_parser.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ldm_patched/modules/args_parser.py b/ldm_patched/modules/args_parser.py index 7ffc4a81..35ddacf3 100644 --- a/ldm_patched/modules/args_parser.py +++ b/ldm_patched/modules/args_parser.py @@ -112,10 +112,7 @@ parser.add_argument("--is-windows-embedded-python", action="store_true") parser.add_argument("--disable-server-info", action="store_true") -if ldm_patched.modules.options.args_parsing: - args = parser.parse_args([]) -else: - args = parser.parse_args([]) +args = parser.parse_args([]) if args.is_windows_embedded_python: args.in_browser = True From 2b802da365c513e54c5c21a63e6770b99a141fc3 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jan 2024 21:59:24 +0100 Subject: [PATCH 13/13] feat: always show image_extension element this is now possible due to image extension support in gradio via https://github.com/lllyasviel/Fooocus/pull/1932 --- webui.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/webui.py b/webui.py index ca95dd4d..467dc5cb 100644 --- a/webui.py +++ b/webui.py @@ -238,9 +238,7 @@ with shared.gradio_root: image_extension = gr.Radio(label='Image Outputs Extension', choices=modules.flags.image_extensions, - value=modules.config.default_image_extension, - visible=not args_manager.args.disable_image_log, - interactive=not args_manager.args.disable_image_log) + value=modules.config.default_image_extension) negative_prompt = gr.Textbox(label='Negative Prompt', show_label=True, placeholder="Type prompt here.", info='Describing what you do not want to see.', lines=2,