Skip to content

Commit c4ce2ce

Browse files
authored
Merge pull request #3359 from lllyasviel/develop
Release v2.5.1
2 parents 3a20e14 + 03655fa commit c4ce2ce

9 files changed

+103
-29
lines changed

args_manager.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
args_parser.parser.add_argument("--theme", type=str, help="launches the UI with light or dark theme", default=None)
1919
args_parser.parser.add_argument("--disable-image-log", action='store_true',
20-
help="Prevent writing images and logs to hard drive.")
20+
help="Prevent writing images and logs to the outputs folder.")
2121

2222
args_parser.parser.add_argument("--disable-analytics", action='store_true',
2323
help="Disables analytics for Gradio.")
@@ -28,6 +28,9 @@
2828
args_parser.parser.add_argument("--disable-preset-download", action='store_true',
2929
help="Disables downloading models for presets", default=False)
3030

31+
args_parser.parser.add_argument("--disable-enhance-output-sorting", action='store_true',
32+
help="Disables enhance output sorting for final image gallery.")
33+
3134
args_parser.parser.add_argument("--enable-auto-describe-image", action='store_true',
3235
help="Enables automatic description of uov and enhance image when prompt is empty", default=False)
3336

fooocus_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = '2.5.0'
1+
version = '2.5.1'

language/en.json

+3
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
"Read wildcards in order": "Read wildcards in order",
6969
"Black Out NSFW": "Black Out NSFW",
7070
"Use black image if NSFW is detected.": "Use black image if NSFW is detected.",
71+
"Save only final enhanced image": "Save only final enhanced image",
72+
"Save Metadata to Images": "Save Metadata to Images",
73+
"Adds parameters to generated images allowing manual regeneration.": "Adds parameters to generated images allowing manual regeneration.",
7174
"\ud83d\udcda History Log": "\uD83D\uDCDA History Log",
7275
"Image Style": "Image Style",
7376
"Fooocus V2": "Fooocus V2",

modules/async_worker.py

+47-25
Large diffs are not rendered by default.

modules/config.py

+6
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,12 @@ def init_temp_path(path: str | None, default_path: str) -> str:
562562
validator=lambda x: isinstance(x, bool),
563563
expected_type=bool
564564
)
565+
default_save_only_final_enhanced_image = get_config_item_or_set_default(
566+
key='default_save_only_final_enhanced_image',
567+
default_value=False,
568+
validator=lambda x: isinstance(x, bool),
569+
expected_type=bool
570+
)
565571
default_save_metadata_to_images = get_config_item_or_set_default(
566572
key='default_save_metadata_to_images',
567573
default_value=False,

modules/private_logger.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def get_current_html_path(output_format=None):
2121
return html_name
2222

2323

24-
def log(img, metadata, metadata_parser: MetadataParser | None = None, output_format=None, task=None) -> str:
25-
path_outputs = modules.config.temp_path if args_manager.args.disable_image_log else modules.config.path_outputs
24+
def log(img, metadata, metadata_parser: MetadataParser | None = None, output_format=None, task=None, persist_image=True) -> str:
25+
path_outputs = modules.config.temp_path if args_manager.args.disable_image_log or not persist_image else modules.config.path_outputs
2626
output_format = output_format if output_format else modules.config.default_output_format
2727
date_string, local_temp_filename, only_name = generate_temp_filename(folder=path_outputs, extension=output_format)
2828
os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True)

readme.md

+1
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,7 @@ entry_with_update.py [-h] [--listen [IP]] [--port PORT]
396396
[--disable-offload-from-vram] [--theme THEME]
397397
[--disable-image-log] [--disable-analytics]
398398
[--disable-metadata] [--disable-preset-download]
399+
[--disable-enhance-output-sorting]
399400
[--enable-auto-describe-image]
400401
[--always-download-new-model]
401402
[--rebuild-hash-cache [CPU_NUM_THREADS]]

update_log.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
# [2.5.1](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.1)
2+
3+
* Update download URL in readme
4+
* Increase speed of metadata loading
5+
* Fix reading of metadata from jpeg, jpg and webp (exif)
6+
* Fix debug preprocessor
7+
* Update attributes and add inline prompt features section to readme
8+
* Add checkbox, config and handling for saving only the final enhanced image. Use config `default_save_only_final_enhanced_image`, default False.
9+
* Add sorting of final images when enhanced is enabled. Use argument `--disable-enhance-output-sorting` to disable.
10+
111
# [2.5.0](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.0)
212

313
This version includes various package updates. If the auto-update doesn't work you can do one of the following:

webui.py

+29
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ def generate_clicked(task: worker.AsyncTask):
7373
gr.update(visible=True, value=product), \
7474
gr.update(visible=False)
7575
if flag == 'finish':
76+
if not args_manager.args.disable_enhance_output_sorting:
77+
product = sort_enhance_images(product, task)
78+
7679
yield gr.update(visible=False), \
7780
gr.update(visible=False), \
7881
gr.update(visible=False), \
@@ -90,6 +93,25 @@ def generate_clicked(task: worker.AsyncTask):
9093
return
9194

9295

96+
def sort_enhance_images(images, task):
97+
if not task.should_enhance or len(images) <= task.images_to_enhance_count:
98+
return images
99+
100+
sorted_images = []
101+
walk_index = task.images_to_enhance_count
102+
103+
for index, enhanced_img in enumerate(images[:task.images_to_enhance_count]):
104+
sorted_images.append(enhanced_img)
105+
if index not in task.enhance_stats:
106+
continue
107+
target_index = walk_index + task.enhance_stats[index]
108+
if walk_index < len(images) and target_index <= len(images):
109+
sorted_images += images[walk_index:target_index]
110+
walk_index += task.enhance_stats[index]
111+
112+
return sorted_images
113+
114+
93115
def inpaint_mode_change(mode, inpaint_engine_version):
94116
assert mode in modules.flags.inpaint_options
95117

@@ -748,6 +770,10 @@ def update_history_link():
748770
inputs=black_out_nsfw, outputs=disable_preview, queue=False,
749771
show_progress=False)
750772

773+
if not args_manager.args.disable_image_log:
774+
save_final_enhanced_image_only = gr.Checkbox(label='Save only final enhanced image',
775+
value=modules.config.default_save_only_final_enhanced_image)
776+
751777
if not args_manager.args.disable_metadata:
752778
save_metadata_to_images = gr.Checkbox(label='Save Metadata to Images', value=modules.config.default_save_metadata_to_images,
753779
info='Adds parameters to generated images allowing manual regeneration.')
@@ -969,6 +995,9 @@ def inpaint_engine_state_change(inpaint_engine_version, *args):
969995
ctrls += freeu_ctrls
970996
ctrls += inpaint_ctrls
971997

998+
if not args_manager.args.disable_image_log:
999+
ctrls += [save_final_enhanced_image_only]
1000+
9721001
if not args_manager.args.disable_metadata:
9731002
ctrls += [save_metadata_to_images, metadata_scheme]
9741003

0 commit comments

Comments
 (0)