From 34f67c01a8164f4b596ea68e336f7a66bc4f5c30 Mon Sep 17 00:00:00 2001 From: licyk <76895225+licyk@users.noreply.github.com> Date: Mon, 1 Jul 2024 20:24:21 +0800 Subject: [PATCH 01/17] feat: add restart sampler (#3219) --- ldm_patched/k_diffusion/sampling.py | 70 +++++++++++++++++++++++++++++ ldm_patched/modules/samplers.py | 2 +- modules/flags.py | 3 +- 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/ldm_patched/k_diffusion/sampling.py b/ldm_patched/k_diffusion/sampling.py index ea5540a42..4d9d4ea64 100644 --- a/ldm_patched/k_diffusion/sampling.py +++ b/ldm_patched/k_diffusion/sampling.py @@ -835,4 +835,74 @@ def sample_tcd(model, x, sigmas, extra_args=None, callback=None, disable=None, n else: x *= torch.sqrt(1.0 + sigmas[i + 1] ** 2) + return x + + +@torch.no_grad() +def sample_restart(model, x, sigmas, extra_args=None, callback=None, disable=None, s_noise=1., restart_list=None): + """Implements restart sampling in Restart Sampling for Improving Generative Processes (2023) + Restart_list format: {min_sigma: [ restart_steps, restart_times, max_sigma]} + If restart_list is None: will choose restart_list automatically, otherwise will use the given restart_list + """ + extra_args = {} if extra_args is None else extra_args + s_in = x.new_ones([x.shape[0]]) + step_id = 0 + + def heun_step(x, old_sigma, new_sigma, second_order=True): + nonlocal step_id + denoised = model(x, old_sigma * s_in, **extra_args) + d = to_d(x, old_sigma, denoised) + if callback is not None: + callback({'x': x, 'i': step_id, 'sigma': new_sigma, 'sigma_hat': old_sigma, 'denoised': denoised}) + dt = new_sigma - old_sigma + if new_sigma == 0 or not second_order: + # Euler method + x = x + d * dt + else: + # Heun's method + x_2 = x + d * dt + denoised_2 = model(x_2, new_sigma * s_in, **extra_args) + d_2 = to_d(x_2, new_sigma, denoised_2) + d_prime = (d + d_2) / 2 + x = x + d_prime * dt + step_id += 1 + return x + + steps = sigmas.shape[0] - 1 + if restart_list is None: + if steps >= 20: + restart_steps = 9 + restart_times = 1 + if steps >= 36: + restart_steps = steps // 4 + restart_times = 2 + sigmas = get_sigmas_karras(steps - restart_steps * restart_times, sigmas[-2].item(), sigmas[0].item(), device=sigmas.device) + restart_list = {0.1: [restart_steps + 1, restart_times, 2]} + else: + restart_list = {} + + restart_list = {int(torch.argmin(abs(sigmas - key), dim=0)): value for key, value in restart_list.items()} + + step_list = [] + for i in range(len(sigmas) - 1): + step_list.append((sigmas[i], sigmas[i + 1])) + if i + 1 in restart_list: + restart_steps, restart_times, restart_max = restart_list[i + 1] + min_idx = i + 1 + max_idx = int(torch.argmin(abs(sigmas - restart_max), dim=0)) + if max_idx < min_idx: + sigma_restart = get_sigmas_karras(restart_steps, sigmas[min_idx].item(), sigmas[max_idx].item(), device=sigmas.device)[:-1] + while restart_times > 0: + restart_times -= 1 + step_list.extend(zip(sigma_restart[:-1], sigma_restart[1:])) + + last_sigma = None + for old_sigma, new_sigma in tqdm(step_list, disable=disable): + if last_sigma is None: + last_sigma = old_sigma + elif last_sigma < old_sigma: + x = x + torch.randn_like(x) * s_noise * (old_sigma ** 2 - last_sigma ** 2) ** 0.5 + x = heun_step(x, old_sigma, new_sigma) + last_sigma = new_sigma + return x \ No newline at end of file diff --git a/ldm_patched/modules/samplers.py b/ldm_patched/modules/samplers.py index 9ed1fcd28..05b4b3174 100644 --- a/ldm_patched/modules/samplers.py +++ b/ldm_patched/modules/samplers.py @@ -523,7 +523,7 @@ def sample(self, model_wrap, sigmas, extra_args, callback, noise, latent_image=N KSAMPLER_NAMES = ["euler", "euler_ancestral", "heun", "heunpp2","dpm_2", "dpm_2_ancestral", "lms", "dpm_fast", "dpm_adaptive", "dpmpp_2s_ancestral", "dpmpp_sde", "dpmpp_sde_gpu", - "dpmpp_2m", "dpmpp_2m_sde", "dpmpp_2m_sde_gpu", "dpmpp_3m_sde", "dpmpp_3m_sde_gpu", "ddpm", "lcm", "tcd", "edm_playground_v2.5"] + "dpmpp_2m", "dpmpp_2m_sde", "dpmpp_2m_sde_gpu", "dpmpp_3m_sde", "dpmpp_3m_sde_gpu", "ddpm", "lcm", "tcd", "edm_playground_v2.5", "restart"] class KSAMPLER(Sampler): def __init__(self, sampler_function, extra_options={}, inpaint_options={}): diff --git a/modules/flags.py b/modules/flags.py index 29ac4615f..2addb8435 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -35,7 +35,8 @@ "dpmpp_3m_sde_gpu": "", "ddpm": "", "lcm": "LCM", - "tcd": "TCD" + "tcd": "TCD", + "restart": "Restart" } SAMPLER_EXTRA = { From e1f4b65fc9e9a8aab4e387c76283636ce8bfb1de Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jul 2024 20:28:55 +0200 Subject: [PATCH 02/17] feat: revert adding translate feature --- modules/async_worker.py | 16 ++++------------ webui.py | 5 +---- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/modules/async_worker.py b/modules/async_worker.py index 0b33cb637..0d6d1bcf9 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -29,7 +29,6 @@ def __init__(self, args): self.generate_image_grid = args.pop() self.prompt = args.pop() self.negative_prompt = args.pop() - self.translate_prompts = args.pop() self.style_selections = args.pop() self.performance_selection = Performance(args.pop()) @@ -944,12 +943,10 @@ def prepare_upscale(async_task, goals, uov_input_image, uov_method, performance, modules.config.downloading_upscale_model() return uov_input_image, skip_prompt_processing, steps - def prepare_enhance_prompt(prompt: str, fallback_prompt: str, translate: bool, prompt_type: str): + def prepare_enhance_prompt(prompt: str, fallback_prompt: str): if safe_str(prompt) == '' or len(remove_empty_str([safe_str(p) for p in prompt.splitlines()], default='')) == 0: prompt = fallback_prompt - else: - if translate: - prompt = translate2en(prompt, prompt_type) + return prompt def stop_processing(async_task, processing_start_time): @@ -968,9 +965,8 @@ def process_enhance(all_steps, async_task, callback, controlnet_canny_path, cont inpaint_parameterized = inpaint_engine != 'None' # inpaint_engine = None, improve detail initial_latent = None - prompt = prepare_enhance_prompt(prompt, async_task.prompt, async_task.translate_prompts, 'prompt') - negative_prompt = prepare_enhance_prompt(negative_prompt, async_task.negative_prompt, - async_task.translate_prompts, 'negative prompt') + prompt = prepare_enhance_prompt(prompt, async_task.prompt) + negative_prompt = prepare_enhance_prompt(negative_prompt, async_task.negative_prompt) if 'vary' in goals: img, denoising_strength, initial_latent, width, height, current_progress = apply_vary( @@ -1092,10 +1088,6 @@ def handler(async_task: AsyncTask): elif async_task.performance_selection == Performance.HYPER_SD: set_hyper_sd_defaults(async_task, current_progress, advance_progress=True) - if async_task.translate_prompts: - async_task.prompt = translate2en(async_task.prompt, 'prompt') - async_task.negative_prompt = translate2en(async_task.negative_prompt, 'negative prompt') - print(f'[Parameters] Adaptive CFG = {async_task.adaptive_cfg}') print(f'[Parameters] CLIP Skip = {async_task.clip_skip}') print(f'[Parameters] Sharpness = {async_task.sharpness}') diff --git a/webui.py b/webui.py index cb0f48d5a..42034ef9d 100644 --- a/webui.py +++ b/webui.py @@ -567,9 +567,6 @@ def trigger_metadata_preview(filepath): info='Describing what you do not want to see.', lines=2, elem_id='negative_prompt', value=modules.config.default_prompt_negative) - translate_prompts = gr.Checkbox(label='Translate Prompts', - info='Uses the internet to translate prompts to English.', - value=False) seed_random = gr.Checkbox(label='Random', value=True) image_seed = gr.Textbox(label='Seed', value=0, max_lines=1, visible=False) # workaround for https://github.com/gradio-app/gradio/issues/5354 @@ -972,7 +969,7 @@ def inpaint_engine_state_change(inpaint_engine_version, *args): ctrls = [currentTask, generate_image_grid] ctrls += [ - prompt, negative_prompt, translate_prompts, style_selections, + prompt, negative_prompt, style_selections, performance_selection, aspect_ratios_selection, image_number, output_format, image_seed, read_wildcards_in_order, sharpness, guidance_scale ] From ee026430206c0405745f7851a542e58cf2c5efb6 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jul 2024 20:35:56 +0200 Subject: [PATCH 03/17] feat: revert adding detailed steps for each performance --- javascript/viewer.js | 2 +- modules/flags.py | 9 --------- webui.py | 5 ++--- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/javascript/viewer.js b/javascript/viewer.js index 84d38b8e8..3df32ccf4 100644 --- a/javascript/viewer.js +++ b/javascript/viewer.js @@ -66,7 +66,7 @@ function on_style_selection_blur() { } onUiLoaded(async () => { - let spans = document.querySelectorAll('.aspect_ratios span, .performance_selections span'); + let spans = document.querySelectorAll('.aspect_ratios span'); spans.forEach(function (span) { span.innerHTML = span.innerHTML.replace(/</g, '<').replace(/>/g, '>'); diff --git a/modules/flags.py b/modules/flags.py index 5b2248189..4b6cd7b59 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -187,12 +187,3 @@ def steps_uov(self) -> int | None: def lora_filename(self) -> str | None: return PerformanceLoRA[self.name].value if self.name in PerformanceLoRA.__members__ else None - - -performance_selections = [] - -for name, value in Performance.list(): - restricted_text = '' - if Performance.has_restricted_features(value): - restricted_text = '*' - performance_selections.append((f'{value} \U00002223 {Steps[name].value} steps {restricted_text}', Performance[name].value)) diff --git a/webui.py b/webui.py index 42034ef9d..5bbbf52a7 100644 --- a/webui.py +++ b/webui.py @@ -542,10 +542,9 @@ def trigger_metadata_preview(filepath): interactive=True) performance_selection = gr.Radio(label='Performance', - info='* = restricted feature set, intermediate results disabled', - choices=modules.flags.performance_selections, + choices=flags.Performance.values(), value=modules.config.default_performance, - elem_classes='performance_selections') + elem_classes=['performance_selection']) with gr.Accordion(label='Aspect Ratios', open=False, elem_id='aspect_ratios_accordion') as aspect_ratios_accordion: aspect_ratios_selection = gr.Radio(label='Aspect Ratios', show_label=False, From 5e8110e4304d78712ad8635f957d683ca3ca5e1d Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jul 2024 21:07:12 +0200 Subject: [PATCH 04/17] i18n: adjust translations to use proper english for plural tab titles --- language/en.json | 6 +++--- update_log.md | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/language/en.json b/language/en.json index 09e7a38e9..9f75b7e96 100644 --- a/language/en.json +++ b/language/en.json @@ -47,8 +47,9 @@ "* \"Inpaint or Outpaint\" is powered by the sampler \"DPMPP Fooocus Seamless 2M SDE Karras Inpaint Sampler\" (beta)": "* \"Inpaint or Outpaint\" is powered by the sampler \"DPMPP Fooocus Seamless 2M SDE Karras Inpaint Sampler\" (beta)", "Advanced options": "Advanced options", "Generate mask from image": "Generate mask from image", - "Setting": "Setting", + "Settings": "Settings", "Style": "Style", + "Styles": "Styles", "Preset": "Preset", "Performance": "Performance", "Speed": "Speed", @@ -60,7 +61,6 @@ "Image Number": "Image Number", "Negative Prompt": "Negative Prompt", "Describing what you do not want to see.": "Describing what you do not want to see.", - "Uses the internet to translate prompts to English.": "Uses the internet to translate prompts to English.", "Random": "Random", "Seed": "Seed", "Disable seed increment": "Disable seed increment", @@ -283,7 +283,7 @@ "Volumetric Lighting": "Volumetric Lighting", "Watercolor 2": "Watercolor 2", "Whimsical And Playful": "Whimsical And Playful", - "Model": "Model", + "Models": "Models", "Base Model (SDXL only)": "Base Model (SDXL only)", "sd_xl_base_1.0_0.9vae.safetensors": "sd_xl_base_1.0_0.9vae.safetensors", "bluePencilXL_v009.safetensors": "bluePencilXL_v009.safetensors", diff --git a/update_log.md b/update_log.md index 7e0c497e2..8a10da962 100644 --- a/update_log.md +++ b/update_log.md @@ -10,6 +10,7 @@ * Rename `--enable-describe-uov-image` to `--enable-auto-describe-image`, now also works for enhance image upload * Rename checkbox `Enable Mask Upload` to `Enable Advanced Masking Features` to better hint to mask auto-generation feature * Get upscale model filepath by calling downloading_upscale_model() to ensure the model exists +* Rename tab titles and translations from singular to plural * Update default models to latest versions * animaPencilXL_v400 => animaPencilXL_v500 * DreamShaperXL_Turbo_dpmppSdeKarras => DreamShaperXL_Turbo_v2_1 From 5a1003a72667a75450145f7a2527645dc82d592e Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jul 2024 21:31:59 +0200 Subject: [PATCH 05/17] docs: update link for enhance documentation --- update_log.md | 2 +- webui.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/update_log.md b/update_log.md index 8a10da962..787826185 100644 --- a/update_log.md +++ b/update_log.md @@ -1,6 +1,6 @@ # [2.5.0-rc1](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.0-rc1) -* Add enhance feature, which offers easy image refinement steps (similar to adetailer, but based on dynamic image detection instead of specific mask detection models). See [documentation](https://github.com/mashb1t/Fooocus/discussions/42). +* Add enhance feature, which offers easy image refinement steps (similar to adetailer, but based on dynamic image detection instead of specific mask detection models). See [documentation](https://github.com/lllyasviel/Fooocus/discussions/3281). * Rewrite async worker code, make code much more reusable to allow iterations and improve reusability * Improve GroundingDINO and SAM image masking * Fix inference tensor version counter tracking issue for GroundingDINO after using Enhance (see [discussion](https://github.com/lllyasviel/Fooocus/discussions/3213)) diff --git a/webui.py b/webui.py index 5bbbf52a7..dee230539 100644 --- a/webui.py +++ b/webui.py @@ -335,7 +335,7 @@ def trigger_show_image_properties(image): with gr.Row(): with gr.Column(): enhance_input_image = grh.Image(label='Use with Enhance, skips image generation', source='upload', type='numpy') - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Document') with gr.TabItem(label='Metadata') as metadata_tab: with gr.Column(): @@ -379,7 +379,7 @@ def trigger_metadata_preview(filepath): inputs=enhance_uov_processing_order, outputs=enhance_uov_prompt_type, queue=False, show_progress=False) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Document') enhance_ctrls = [] enhance_inpaint_mode_ctrls = [] enhance_inpaint_engine_ctrls = [] @@ -471,7 +471,7 @@ def trigger_metadata_preview(filepath): '(default is 0, always processed before any mask invert)') enhance_mask_invert = gr.Checkbox(label='Invert Mask', value=False) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Document') enhance_ctrls += [ enhance_enabled, From e0d3325894719c1c360cf4f0eeb65aea54bccb22 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 14 Jul 2024 21:38:10 +0200 Subject: [PATCH 06/17] i18n: rename document to documentation --- language/en.json | 2 +- update_log.md | 1 + webui.py | 16 ++++++++-------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/language/en.json b/language/en.json index 9f75b7e96..c14b38758 100644 --- a/language/en.json +++ b/language/en.json @@ -26,7 +26,7 @@ "Upscale (1.5x)": "Upscale (1.5x)", "Upscale (2x)": "Upscale (2x)", "Upscale (Fast 2x)": "Upscale (Fast 2x)", - "\ud83d\udcd4 Document": "\uD83D\uDCD4 Document", + "\ud83d\udcd4 Documentation": "\uD83D\uDCD4 Documentation", "Image": "Image", "Stop At": "Stop At", "Weight": "Weight", diff --git a/update_log.md b/update_log.md index 787826185..54d42ab52 100644 --- a/update_log.md +++ b/update_log.md @@ -11,6 +11,7 @@ * Rename checkbox `Enable Mask Upload` to `Enable Advanced Masking Features` to better hint to mask auto-generation feature * Get upscale model filepath by calling downloading_upscale_model() to ensure the model exists * Rename tab titles and translations from singular to plural +* Rename document to documentation * Update default models to latest versions * animaPencilXL_v400 => animaPencilXL_v500 * DreamShaperXL_Turbo_dpmppSdeKarras => DreamShaperXL_Turbo_v2_1 diff --git a/webui.py b/webui.py index dee230539..2195f8cd0 100644 --- a/webui.py +++ b/webui.py @@ -189,7 +189,7 @@ def skip_clicked(currentTask): uov_input_image = grh.Image(label='Image', source='upload', type='numpy', show_label=False) with gr.Column(): uov_method = gr.Radio(label='Upscale or Variation:', choices=flags.uov_list, value=flags.disabled) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') with gr.TabItem(label='Image Prompt') as ip_tab: with gr.Row(): ip_images = [] @@ -222,7 +222,7 @@ def skip_clicked(currentTask): ip_type.change(lambda x: flags.default_parameters[x], inputs=[ip_type], outputs=[ip_stop, ip_weight], queue=False, show_progress=False) ip_ad_cols.append(ad_col) ip_advanced = gr.Checkbox(label='Advanced', value=False, container=False) - gr.HTML('* \"Image Prompt\" is powered by Fooocus Image Mixture Engine (v1.0.1). \U0001F4D4 Document') + gr.HTML('* \"Image Prompt\" is powered by Fooocus Image Mixture Engine (v1.0.1). \U0001F4D4 Documentation') def ip_advance_checked(x): return [gr.update(visible=x)] * len(ip_ad_cols) + \ @@ -246,7 +246,7 @@ def ip_advance_checked(x): label='Additional Prompt Quick List', components=[inpaint_additional_prompt], visible=False) - gr.HTML('* Powered by Fooocus Inpaint Engine \U0001F4D4 Document') + gr.HTML('* Powered by Fooocus Inpaint Engine \U0001F4D4 Documentation') example_inpaint_prompts.click(lambda x: x[0], inputs=example_inpaint_prompts, outputs=inpaint_additional_prompt, show_progress=False, queue=False) with gr.Column(visible=False) as inpaint_mask_generation_col: @@ -322,7 +322,7 @@ def generate_mask(image, mask_model, cloth_category, dino_prompt_text, sam_model value=flags.desc_type_photo) desc_btn = gr.Button(value='Describe this Image into Prompt') desc_image_size = gr.Textbox(label='Image Size and Recommended Size', elem_id='desc_image_size', visible=False) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') def trigger_show_image_properties(image): value = modules.util.get_image_size_info(image, modules.flags.sdxl_aspect_ratios) @@ -335,7 +335,7 @@ def trigger_show_image_properties(image): with gr.Row(): with gr.Column(): enhance_input_image = grh.Image(label='Use with Enhance, skips image generation', source='upload', type='numpy') - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') with gr.TabItem(label='Metadata') as metadata_tab: with gr.Column(): @@ -379,7 +379,7 @@ def trigger_metadata_preview(filepath): inputs=enhance_uov_processing_order, outputs=enhance_uov_prompt_type, queue=False, show_progress=False) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') enhance_ctrls = [] enhance_inpaint_mode_ctrls = [] enhance_inpaint_engine_ctrls = [] @@ -471,7 +471,7 @@ def trigger_metadata_preview(filepath): '(default is 0, always processed before any mask invert)') enhance_mask_invert = gr.Checkbox(label='Invert Mask', value=False) - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') enhance_ctrls += [ enhance_enabled, @@ -670,7 +670,7 @@ def update_history_link(): sharpness = gr.Slider(label='Image Sharpness', minimum=0.0, maximum=30.0, step=0.001, value=modules.config.default_sample_sharpness, info='Higher value means image and texture are sharper.') - gr.HTML('\U0001F4D4 Document') + gr.HTML('\U0001F4D4 Documentation') dev_mode = gr.Checkbox(label='Developer Debug Mode', value=False, container=False) with gr.Column(visible=False) as dev_tools: From 069bea534bd1472685d81b1bd4a9703ad9381d52 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Mon, 15 Jul 2024 21:03:01 +0200 Subject: [PATCH 07/17] feat: change example audio file (cherry picked from commit 02b06ccb33b81eed17ff76ff01ffb5380a4af210) --- notification-example.mp3 | Bin 0 -> 38311 bytes notification-example.ogg | Bin 59038 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 notification-example.mp3 delete mode 100644 notification-example.ogg diff --git a/notification-example.mp3 b/notification-example.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2a0753cc7b46d79ec268ef50a65bae08e6b08267 GIT binary patch literal 38311 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 Ku)<71O+~8GYF|A7 literal 0 HcmV?d00001 diff --git a/notification-example.ogg b/notification-example.ogg deleted file mode 100644 index fe4291d0682e7401b014c23ace4bfafac23f5137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59038 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 From d46e47ab3d254a28204e9f07572ca6d6f1efab63 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Tue, 16 Jul 2024 14:00:30 +0200 Subject: [PATCH 08/17] feat: revert adding translate feature #2 --- modules/async_worker.py | 1 - modules/translator.py | 15 --------------- requirements_versions.txt | 1 - 3 files changed, 17 deletions(-) delete mode 100644 modules/translator.py diff --git a/modules/async_worker.py b/modules/async_worker.py index 0d6d1bcf9..71cfba3f5 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -197,7 +197,6 @@ def worker(): from modules.upscaler import perform_upscale from modules.flags import Performance from modules.meta_parser import get_metadata_parser - from modules.translator import translate2en pid = os.getpid() print(f'Started worker with PID {pid}') diff --git a/modules/translator.py b/modules/translator.py deleted file mode 100644 index e8f0ca0c0..000000000 --- a/modules/translator.py +++ /dev/null @@ -1,15 +0,0 @@ -import translators -from functools import lru_cache - -@lru_cache(maxsize=32, typed=False) -def translate2en(text, element): - if not text: - return text - - try: - result = translators.translate_text(text,to_language='en') - print(f'[Parameters] Translated {element}: {result}') - return result - except Exception as e: - print(f'[Parameters] Error during translation of {element}: {e}') - return text \ No newline at end of file diff --git a/requirements_versions.txt b/requirements_versions.txt index 9196f1db8..adc1992a6 100644 --- a/requirements_versions.txt +++ b/requirements_versions.txt @@ -16,7 +16,6 @@ opencv-contrib-python==4.8.0.74 httpx==0.24.1 onnxruntime==1.16.3 timm==0.9.2 -translators==5.9.2 rembg==2.0.57 groundingdino-py==0.4.0 segment_anything==1.0 \ No newline at end of file From ef8dd27f9187062a098649fa348ee1ec64c31c0f Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Tue, 16 Jul 2024 16:03:16 +0200 Subject: [PATCH 09/17] chore: update packages see https://github.com/lllyasviel/Fooocus/pull/2927 --- launch.py | 1 - requirements_versions.txt | 21 ++++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/launch.py b/launch.py index 937c0cdb5..a46099273 100644 --- a/launch.py +++ b/launch.py @@ -21,7 +21,6 @@ from build_launcher import build_launcher from modules.launch_util import is_installed, run, python, run_pip, requirements_met, delete_folder_content from modules.model_loader import load_file_from_url -from modules import config REINSTALL_ALL = False TRY_INSTALL_XFORMERS = False diff --git a/requirements_versions.txt b/requirements_versions.txt index adc1992a6..cd6cf1d2b 100644 --- a/requirements_versions.txt +++ b/requirements_versions.txt @@ -1,21 +1,24 @@ -torchsde==0.2.5 +torchsde==0.2.6 einops==0.4.1 -transformers==4.30.2 -safetensors==0.3.1 +transformers==4.41.2 +safetensors==0.4.3 accelerate==0.21.0 -pyyaml==6.0 -Pillow==9.2.0 -scipy==1.9.3 -tqdm==4.65.0 +pyyaml==6.0.1 +Pillow==10.3.0 +scipy==1.13.1 +tqdm==4.64.1 psutil==5.9.5 pytorch_lightning==1.9.4 omegaconf==2.2.3 gradio==3.41.2 -pygit2==1.12.2 +pygit2==1.15.0 opencv-contrib-python==4.8.0.74 httpx==0.24.1 -onnxruntime==1.16.3 +onnxruntime==1.18.0 timm==0.9.2 +numpy==1.26.4 +tokenizers==0.19.1 +packaging==24.1 rembg==2.0.57 groundingdino-py==0.4.0 segment_anything==1.0 \ No newline at end of file From 3a86fa2f0df2d5625b28399532ca9edf1370b5f0 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Tue, 16 Jul 2024 16:31:15 +0200 Subject: [PATCH 10/17] chore: update packages #2 --- fooocus_colab.ipynb | 2 +- requirements_versions.txt | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fooocus_colab.ipynb b/fooocus_colab.ipynb index 7fa988798..1d8241851 100644 --- a/fooocus_colab.ipynb +++ b/fooocus_colab.ipynb @@ -8,7 +8,7 @@ }, "outputs": [], "source": [ - "!pip install pygit2==1.12.2\n", + "!pip install pygit2==1.15.1\n", "%cd /content\n", "!git clone https://github.com/lllyasviel/Fooocus.git\n", "%cd /content/Fooocus\n", diff --git a/requirements_versions.txt b/requirements_versions.txt index cd6cf1d2b..4f90e93a3 100644 --- a/requirements_versions.txt +++ b/requirements_versions.txt @@ -1,21 +1,21 @@ torchsde==0.2.6 -einops==0.4.1 -transformers==4.41.2 +einops==0.8.0 +transformers==4.42.4 safetensors==0.4.3 -accelerate==0.21.0 +accelerate==0.32.1 pyyaml==6.0.1 -Pillow==10.3.0 -scipy==1.13.1 -tqdm==4.64.1 -psutil==5.9.5 -pytorch_lightning==1.9.4 -omegaconf==2.2.3 +pillow==10.4.0 +scipy==1.14.0 +tqdm==4.66.4 +psutil==6.0.0 +pytorch_lightning==2.3.3 +omegaconf==2.3.0 gradio==3.41.2 -pygit2==1.15.0 -opencv-contrib-python==4.8.0.74 -httpx==0.24.1 -onnxruntime==1.18.0 -timm==0.9.2 +pygit2==1.15.1 +opencv-contrib-python==4.10.0.84 +httpx==0.27.0 +onnxruntime==1.18.1 +timm==1.0.7 numpy==1.26.4 tokenizers==0.19.1 packaging==24.1 From 8d67166dd1aef1993a92e4de44b664fed2769f57 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Tue, 16 Jul 2024 19:56:25 +0200 Subject: [PATCH 11/17] chore: use opencv-contrib-python-headless https://github.com/lllyasviel/Fooocus/pull/1964 (cherry picked from commit 1f32f9f4ab84f0ba450950ee15df16263f6de6d8) --- requirements_versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements_versions.txt b/requirements_versions.txt index 4f90e93a3..9147db47f 100644 --- a/requirements_versions.txt +++ b/requirements_versions.txt @@ -12,7 +12,7 @@ pytorch_lightning==2.3.3 omegaconf==2.3.0 gradio==3.41.2 pygit2==1.15.1 -opencv-contrib-python==4.10.0.84 +opencv-contrib-python-headless==4.10.0.84 httpx==0.27.0 onnxruntime==1.18.1 timm==1.0.7 From 1f429ffedaec3e568dab2234c8097688e2585c72 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 10:30:58 +0200 Subject: [PATCH 12/17] release: bump version to 2.5.0, update changelog --- fooocus_version.py | 2 +- update_log.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fooocus_version.py b/fooocus_version.py index 5357a2e52..3d98bc1d1 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '2.5.0-rc1' +version = '2.5.0' diff --git a/update_log.md b/update_log.md index 54d42ab52..92cc38b21 100644 --- a/update_log.md +++ b/update_log.md @@ -1,10 +1,10 @@ -# [2.5.0-rc1](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.0-rc1) +# [2.5.0](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.0) +* Update python dependencies, add segment_anything * Add enhance feature, which offers easy image refinement steps (similar to adetailer, but based on dynamic image detection instead of specific mask detection models). See [documentation](https://github.com/lllyasviel/Fooocus/discussions/3281). * Rewrite async worker code, make code much more reusable to allow iterations and improve reusability * Improve GroundingDINO and SAM image masking * Fix inference tensor version counter tracking issue for GroundingDINO after using Enhance (see [discussion](https://github.com/lllyasviel/Fooocus/discussions/3213)) -* Update python dependencies, add segment_anything * Move checkboxes Enable Mask Upload and Invert Mask When Generating from Developer Debug Mode to Inpaint Or Outpaint * Add persistent model cache for metadata. Use `--rebuild-hash-cache X` (X = int, number of CPU cores, default all) to manually rebuild the cache for all non-cached hashes * Rename `--enable-describe-uov-image` to `--enable-auto-describe-image`, now also works for enhance image upload From 9f93cf6110b859ff8c82d3f49039d82d12b37d10 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 10:49:55 +0200 Subject: [PATCH 13/17] fix: resolve circular dependency for sha256, update files and init cache after initial model download fixes https://github.com/lllyasviel/Fooocus/issues/2372 (cherry picked from commit 5c43a4bece059a70fc6246dd01622093cac2c0c9) --- launch.py | 4 ++++ modules/config.py | 5 ----- modules/hash_cache.py | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/launch.py b/launch.py index a46099273..77c2e2c29 100644 --- a/launch.py +++ b/launch.py @@ -85,6 +85,7 @@ def ini_args(): print("Set hf_mirror to:", args.hf_mirror) from modules import config +from modules.hash_cache import init_cache os.environ["U2NET_HOME"] = config.path_inpaint os.environ['GRADIO_TEMP_DIR'] = config.temp_path @@ -140,4 +141,7 @@ def download_models(default_model, previous_default_models, checkpoint_downloads config.default_base_model_name, config.previous_default_models, config.checkpoint_downloads, config.embeddings_downloads, config.lora_downloads, config.vae_downloads) +config.update_files() +init_cache(config.model_filenames, config.paths_checkpoints, config.lora_filenames, config.paths_loras) + from webui import * diff --git a/modules/config.py b/modules/config.py index 05d178437..ee867e5fc 100644 --- a/modules/config.py +++ b/modules/config.py @@ -7,7 +7,6 @@ import tempfile import modules.flags import modules.sdxl_styles -from modules.hash_cache import init_cache from modules.model_loader import load_file_from_url from modules.extra_utils import makedirs_with_log, get_files_from_folder, try_eval_env_var @@ -889,7 +888,3 @@ def downloading_sam_vit_h(): file_name='sam_vit_h_4b8939.pth' ) return os.path.join(path_sam, 'sam_vit_h_4b8939.pth') - - -update_files() -init_cache(model_filenames, paths_checkpoints, lora_filenames, paths_loras) diff --git a/modules/hash_cache.py b/modules/hash_cache.py index c33e675ed..e857b0030 100644 --- a/modules/hash_cache.py +++ b/modules/hash_cache.py @@ -4,8 +4,7 @@ from multiprocessing import cpu_count import args_manager -from modules.util import get_file_from_folder_list -from modules.util import sha256, HASH_SHA256_LENGTH +from modules.util import sha256, HASH_SHA256_LENGTH, get_file_from_folder_list hash_cache_filename = 'hash_cache.txt' hash_cache = {} From 4f12bbb02b1599d48c176fd6bcd25f306487a487 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 11:37:21 +0200 Subject: [PATCH 14/17] docs: add instructions how to manually update packages, update download URL in readme --- readme.md | 2 +- update_log.md | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 208fc63e9..39a961027 100644 --- a/readme.md +++ b/readme.md @@ -71,7 +71,7 @@ Fooocus also developed many "fooocus-only" features for advanced users to get pe You can directly download Fooocus with: -**[>>> Click here to download <<<](https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-831.7z)** +**[>>> Click here to download <<<](https://github.com/lllyasviel/Fooocus/releases/download/v2.5.0/Fooocus_win64_2-5-0.7z)** After you download the file, please uncompress it and then run the "run.bat". diff --git a/update_log.md b/update_log.md index 92cc38b21..9a0f3788f 100644 --- a/update_log.md +++ b/update_log.md @@ -1,5 +1,13 @@ # [2.5.0](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.0) +This version includes various package updates. If the auto-update doesn't work you can do one of the following: +1. Open a terminal in the Fooocus folder (location of config.txt) and run `git pull` +2. Update packages + - Windows (installation through zip file): open a terminal in the Fooocus folder (location of config.txt) `..\python_embeded\python.exe -m pip install -r .\requirements_versions.txt` (Windows using embedded python, installation method zip file) or download Fooocus again (zip file attached to this release) + - other: manually update the packages using `python.exe -m pip install -r requirements_versions.txt` or use the docker image + +--- + * Update python dependencies, add segment_anything * Add enhance feature, which offers easy image refinement steps (similar to adetailer, but based on dynamic image detection instead of specific mask detection models). See [documentation](https://github.com/lllyasviel/Fooocus/discussions/3281). * Rewrite async worker code, make code much more reusable to allow iterations and improve reusability From aed3240ccdd63acca9fb2440b4828378da77e100 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 11:45:27 +0200 Subject: [PATCH 15/17] feat: revert adding audio tab --- webui.py | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/webui.py b/webui.py index 2195f8cd0..01ba3ac5d 100644 --- a/webui.py +++ b/webui.py @@ -860,24 +860,6 @@ def refresh_files_clicked(): refresh_files.click(refresh_files_clicked, [], refresh_files_output + lora_ctrls, queue=False, show_progress=False) - with gr.Tab(label='Audio'): - play_notification = gr.Checkbox(label='Play notification after rendering', value=False) - notification_file = 'notification.mp3' - if os.path.exists(notification_file): - notification = gr.State(value=notification_file) - notification_input = gr.Audio(label='Notification', interactive=True, elem_id='audio_notification', visible=False, show_edit_button=False) - - def play_notification_checked(r, notification): - return gr.update(visible=r, value=notification if r else None) - - def notification_input_changed(notification_input, notification): - if notification_input: - notification = notification_input - return notification - - play_notification.change(fn=play_notification_checked, inputs=[play_notification, notification], outputs=[notification_input], queue=False) - notification_input.change(fn=notification_input_changed, inputs=[notification_input, notification], outputs=[notification], queue=False) - state_is_generating = gr.State(False) load_data_outputs = [advanced_checkbox, image_number, prompt, negative_prompt, style_selections, @@ -1045,6 +1027,11 @@ def trigger_metadata_import(filepath, state_is_generating): progress_html, progress_window, progress_gallery, gallery], queue=False) + for notification_file in ['notification.ogg', 'notification.mp3']: + if os.path.exists(notification_file): + gr.Audio(interactive=False, value=notification_file, elem_id='audio_notification', visible=False) + break + def trigger_describe(mode, img): if mode == flags.desc_type_photo: from extras.interrogate import default_interrogator as default_interrogator_photo From 033cb90e6e31a0145bcf7e724c1ad66bc3400755 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 11:52:20 +0200 Subject: [PATCH 16/17] feat: revert adding issue templates --- .github/ISSUE_TEMPLATE/bug_report.yaml | 77 --------------------- .github/ISSUE_TEMPLATE/feature_request.yaml | 34 --------- 2 files changed, 111 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.yaml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml deleted file mode 100644 index 58c983fe9..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ /dev/null @@ -1,77 +0,0 @@ -name: Bug Report -description: Describe a problem -title: "[Bug]: " -labels: ["bug", "triage"] -body: - - type: markdown - attributes: - value: | - Thank you for taking the time to fill out this bug report form! - - type: checkboxes - id: prerequisites - attributes: - label: Prerequisites - description: Please make sure to troubleshoot yourself before continuing. - options: - - label: I have read the [Troubleshooting Guide](https://github.com/lllyasviel/Fooocus/blob/main/troubleshoot.md) - required: true - - label: I have checked that this is not a duplicate of an already existing [issue](https://github.com/lllyasviel/Fooocus/issues) - required: true - - type: textarea - id: description - attributes: - label: Describe the problem - description: Also tell us, what did you expect to happen? - placeholder: "A clear and concise description of what the bug is." - validations: - required: true - - type: textarea - id: logs - attributes: - label: Full console log output - description: Please copy and paste the **full** console log here. You will make our job easier if you give a **full** log. This will be automatically formatted into code, so no need for backticks. - render: shell - validations: - required: true - - type: textarea - id: version - attributes: - label: Version - description: What version of Fooocus are you using? (see browser tab title or console log) - placeholder: "Example: Fooocus 2.1.855" - validations: - required: true - - type: dropdown - id: hosting - attributes: - label: Where are you running Fooocus? - multiple: false - options: - - Locally - - Locally with virtualisation (e.g. Docker) - - Cloud (Gradio) - - Cloud (other) - validations: - required: true - - type: input - id: operating-system - attributes: - label: Operating System - description: What operating system are you using? - placeholder: "Example: Windows 10" - - type: dropdown - id: browsers - attributes: - label: What browsers are you seeing the problem on? - multiple: true - options: - - Chrome - - Firefox - - Microsoft Edge - - Safari - - other - validations: - required: true - - type: markdown - attributes: - value: "Thank you for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml deleted file mode 100644 index 3295902a6..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: Feature request -description: Suggest an idea for this project -title: "[Feature]: " -labels: ["enhancement"] -body: - - type: markdown - attributes: - value: | - Thank you for taking the time to fill out this feature request form! - - type: checkboxes - id: prerequisites - attributes: - label: Prerequisites - options: - - label: I have checked that this is not a duplicate of an already existing [feature request](https://github.com/lllyasviel/Fooocus/issues) - required: true - - type: textarea - id: relation-to-problem - attributes: - label: Is your feature request related to a problem? Please describe. - placeholder: "A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -." - validations: - required: true - - type: textarea - id: description - attributes: - label: Describe the idea you'd like - placeholder: "A clear and concise description of what you want to happen." - validations: - required: true - - type: markdown - attributes: - value: "Thank you for completing our form!" From 97a8475a623e57c515ceaba51b4b6ef8bef8c004 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Wed, 17 Jul 2024 11:59:01 +0200 Subject: [PATCH 17/17] feat: revert disabling persistent style sorting, code cleanup --- modules/meta_parser.py | 1 - modules/style_sorter.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/modules/meta_parser.py b/modules/meta_parser.py index ac0dff381..14f858355 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -9,7 +9,6 @@ import fooocus_version import modules.config import modules.sdxl_styles -from modules import hash_cache from modules.flags import MetadataScheme, Performance, Steps from modules.flags import SAMPLERS, CIVITAI_NO_KARRAS from modules.hash_cache import sha256_from_cache diff --git a/modules/style_sorter.py b/modules/style_sorter.py index 5cab89fc1..49142bc79 100644 --- a/modules/style_sorter.py +++ b/modules/style_sorter.py @@ -37,7 +37,6 @@ def sort_styles(selected): global all_styles unselected = [y for y in all_styles if y not in selected] sorted_styles = selected + unselected - """ try: with open('sorted_styles.json', 'wt', encoding='utf-8') as fp: json.dump(sorted_styles, fp, indent=4) @@ -45,7 +44,6 @@ def sort_styles(selected): print('Write style sorting failed.') print(e) all_styles = sorted_styles - """ return gr.CheckboxGroup.update(choices=sorted_styles)