From c99c1410f5ab2a9bd7ceeb9ea154b1634bb0f1f7 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 14 May 2023 20:25:27 -0400 Subject: [PATCH] update --- extensions-builtin/sd-webui-controlnet | 2 +- installer.py | 5 ++++- javascript/extensions.js | 6 +++--- modules/sd_models.py | 3 ++- modules/ui.py | 4 +++- modules/ui_extensions.py | 11 ++++++++--- 6 files changed, 21 insertions(+), 10 deletions(-) diff --git a/extensions-builtin/sd-webui-controlnet b/extensions-builtin/sd-webui-controlnet index 356fd3c0d..3b27ba01f 160000 --- a/extensions-builtin/sd-webui-controlnet +++ b/extensions-builtin/sd-webui-controlnet @@ -1 +1 @@ -Subproject commit 356fd3c0d69db78044a2f6c1cf808a85c40da6e8 +Subproject commit 3b27ba01f399ab935011fc0024ba95b852ccfb74 diff --git a/installer.py b/installer.py index d1efc24dd..c4698f589 100644 --- a/installer.py +++ b/installer.py @@ -217,7 +217,10 @@ def check_torch(): allow_directml = not (args.use_cuda or args.use_rocm or args.use_ipex) log.debug(f'Torch overrides: cuda={args.use_cuda} rocm={args.use_rocm} ipex={args.use_ipex} diml={args.use_directml}') log.debug(f'Torch allowed: cuda={allow_cuda} rocm={allow_rocm} ipex={allow_ipex} diml={allow_directml}') - if allow_cuda and (shutil.which('nvidia-smi') is not None or os.path.exists(os.path.join(os.environ.get('SystemRoot') or r'C:\Windows', 'System32', 'nvidia-smi.exe'))): + torch_command = os.environ.get('TORCH_COMMAND', '') + if torch_command != '': + pass + elif allow_cuda and (shutil.which('nvidia-smi') is not None or os.path.exists(os.path.join(os.environ.get('SystemRoot') or r'C:\Windows', 'System32', 'nvidia-smi.exe'))): log.info('nVidia CUDA toolkit detected') torch_command = os.environ.get('TORCH_COMMAND', 'torch torchvision --index-url https://download.pytorch.org/whl/cu118') xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers==0.0.17' if opts.get('cross_attention_optimization', '') == 'xFormers' else 'none') diff --git a/javascript/extensions.js b/javascript/extensions.js index 67a4a0d53..d6d937fd6 100644 --- a/javascript/extensions.js +++ b/javascript/extensions.js @@ -16,9 +16,9 @@ function extensions_check(info, extensions_disabled_list, search_text, sort_colu gradioApp().querySelectorAll('#extensions input[type="checkbox"]').forEach((x) => { if (x.name.startsWith('enable_') && !x.checked) disable.push(x.name.substr(7)); }); - gradioApp().querySelectorAll('#extensions .extension_status').forEach((x) => { - x.innerHTML = 'Loading...'; - }); + // gradioApp().querySelectorAll('#extensions .extension_status').forEach((x) => { + // x.innerHTML = 'Loading...'; + // }); const id = randomId(); // requestProgress(id, gradioApp().getElementById('extensions_installed_top'), null, null, null, false); return [id, JSON.stringify(disable), search_text, sort_column]; diff --git a/modules/sd_models.py b/modules/sd_models.py index 0b3407542..107e771e7 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -141,12 +141,13 @@ def model_hash(filename): with open(filename, "rb") as file: import hashlib m = hashlib.sha256() - file.seek(0x100000) m.update(file.read(0x10000)) return m.hexdigest()[0:8] except FileNotFoundError: return 'NOFILE' + except: + return 'NOHASH' def select_checkpoint(): diff --git a/modules/ui.py b/modules/ui.py index 518665b01..a281e6086 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -1328,7 +1328,7 @@ def create_ui(): preview_theme = gr.Button(value="Preview theme", variant='primary', elem_id="settings_preview_theme") unload_sd_model = gr.Button(value='Unload checkpoint', variant='primary', elem_id="sett_unload_sd_model") reload_sd_model = gr.Button(value='Reload checkpoint', variant='primary', elem_id="sett_reload_sd_model") - reload_script_bodies = gr.Button(value='Reload scripts', variant='primary', elem_id="settings_reload_script_bodies") + # reload_script_bodies = gr.Button(value='Reload scripts', variant='primary', elem_id="settings_reload_script_bodies") result = gr.HTML(elem_id="settings_result") @@ -1399,11 +1399,13 @@ def create_ui(): modules.scripts.reload_script_body_only() reload_javascript() # need to refresh the html page + """ reload_script_bodies.click( fn=reload_scripts, inputs=[], outputs=[] ) + """ preview_theme.click( fn=None, diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py index a6ef63998..0c3d08e2b 100644 --- a/modules/ui_extensions.py +++ b/modules/ui_extensions.py @@ -88,6 +88,11 @@ def check_updates(_id_task, disable_list, search_text, sort_column): shared.state.textinfo = ext.name try: ext.check_updates() + if ext.can_update: + ext.fetch_and_reset_hard() + ext.read_info_from_repo() + shared.log.debug(f'Extensions updated: {ext.name} {ext.commit_hash} {ext.commit_date}') + shared.log.debug(f'Extensions no updated available: {ext.name} {ext.commit_hash} {ext.commit_date}') except FileNotFoundError as e: if 'FETCH_HEAD' not in str(e): raise @@ -189,7 +194,7 @@ def update_extension(extension_path, search_text, sort_column): ext.fetch_and_reset_hard() ext.read_info_from_repo() shared.log.debug(f'Extensions updated: {ext.name} {ext.commit_hash} {ext.commit_date}') - shared.log.debug('Extensions no updated available') + shared.log.debug(f'Extensions no updated available: {ext.name} {ext.commit_hash} {ext.commit_date}') except FileNotFoundError as e: if 'FETCH_HEAD' not in str(e): raise @@ -198,7 +203,7 @@ def update_extension(extension_path, search_text, sort_column): errors.display(e, f'extensions check update: {ext.name}') shared.log.debug(f'Extensions update finish: {ext.name} {ext.commit_hash} {ext.commit_date}') shared.state.nextjob() - return refresh_extensions_list_from_data(search_text, sort_column), f"Extension updated: {extension_path} | Restart required" + return refresh_extensions_list_from_data(search_text, sort_column), f"Extension updated | {extension_path} | Restart required" def refresh_extensions_list(search_text, sort_column): @@ -221,7 +226,7 @@ def refresh_extensions_list(search_text, sort_column): def search_extensions(search_text, sort_column): code = refresh_extensions_list_from_data(search_text, sort_column) - return code, f'Search complete: {search_text} {sort_column}' + return code, f'Search | {search_text} | {sort_column}' def refresh_extensions_list_from_data(search_text, sort_column):