diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-09-09 06:09:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-09 06:09:29 +0000 |
commit | fccde0c1f72bf3df316f143b37d041b1c4cc5075 (patch) | |
tree | 44ab83e9e23002b7ae5b028bfd6d1ff49e408c1a /modules/ui_settings.py | |
parent | 3ca4655a18eb80cca5f806412f2cb2d56cc536e5 (diff) | |
parent | 348c6022f330c6e64a6a0fb40fd2b3e65bf0ce6a (diff) | |
download | stable-diffusion-webui-gfx803-fccde0c1f72bf3df316f143b37d041b1c4cc5075.tar.gz stable-diffusion-webui-gfx803-fccde0c1f72bf3df316f143b37d041b1c4cc5075.tar.bz2 stable-diffusion-webui-gfx803-fccde0c1f72bf3df316f143b37d041b1c4cc5075.zip |
Merge pull request #12909 from AUTOMATIC1111/Action-to-calculate-all-SD-checkpoint-hashes
Action to calculate all SD checkpoint hashes
Diffstat (limited to 'modules/ui_settings.py')
-rw-r--r-- | modules/ui_settings.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/ui_settings.py b/modules/ui_settings.py index 8ff9c074..c6fe3604 100644 --- a/modules/ui_settings.py +++ b/modules/ui_settings.py @@ -5,6 +5,7 @@ from modules.call_queue import wrap_gradio_call from modules.shared import opts
from modules.ui_components import FormRow
from modules.ui_gradio_extensions import reload_javascript
+from concurrent.futures import ThreadPoolExecutor, as_completed
def get_value_for_setting(key):
@@ -175,6 +176,9 @@ class UiSettings: with gr.Row():
unload_sd_model = gr.Button(value='Unload SD checkpoint to free VRAM', elem_id="sett_unload_sd_model")
reload_sd_model = gr.Button(value='Reload the last SD checkpoint back into VRAM', elem_id="sett_reload_sd_model")
+ with gr.Row():
+ calculate_all_checkpoint_hash = gr.Button(value='Calculate hash for all checkpoint', elem_id="calculate_all_checkpoint_hash")
+ calculate_all_checkpoint_hash_threads = gr.Number(value=1, label="Number of parallel calculations", elem_id="calculate_all_checkpoint_hash_threads", precision=0, minimum=1)
with gr.TabItem("Licenses", id="licenses", elem_id="settings_tab_licenses"):
gr.HTML(shared.html("licenses.html"), elem_id="licenses")
@@ -241,6 +245,21 @@ class UiSettings: outputs=[sysinfo_check_output],
)
+ def calculate_all_checkpoint_hash_fn(max_thread):
+ checkpoints_list = sd_models.checkpoints_list.values()
+ with ThreadPoolExecutor(max_workers=max_thread) as executor:
+ futures = [executor.submit(checkpoint.calculate_shorthash) for checkpoint in checkpoints_list]
+ completed = 0
+ for _ in as_completed(futures):
+ completed += 1
+ print(f"{completed} / {len(checkpoints_list)} ")
+ print("Finish calculating hash for all checkpoints")
+
+ calculate_all_checkpoint_hash.click(
+ fn=calculate_all_checkpoint_hash_fn,
+ inputs=[calculate_all_checkpoint_hash_threads],
+ )
+
self.interface = settings_interface
def add_quicksettings(self):
|