diff --git a/CHANGELOG.md b/CHANGELOG.md index dcdd50d95..5e9985f9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -161,6 +161,7 @@ As of this release, default backend is set to **diffusers** as its more feature 10x+ faster embeddings load for large number of embeddings, now works for 1000+ embeddings - file and folder list caching, thanks @midcoastal if you have a lot of files and and/or are using slower or non-local storage, this speeds up file access a lot + - add `SD_INSTALL_DEBUG` env variable to trace all `git` and `pip` operations - **extra networks** - 4x faster civitai metadata and previews lookup - better display and selection of tags & trigger words @@ -264,7 +265,9 @@ As of this release, default backend is set to **diffusers** as its more feature - global crlf->lf switch - model type switch if there is loaded submodels - cleanup samplers use of compute devices, thanks @Disty0 -- **other** +- **other** + - extensions `sd-webui-controlnet` is locked to commit `ecd33eb` due to breaking changes + - extension `stable-diffusion-webui-images-browser` is locked to commit `27fe4a7` due to breaking changes - updated core requirements - major internal ui module refactoring this may cause compatibility issues if an extension is doing a direct import from `ui.py` diff --git a/extensions-builtin/sd-webui-controlnet b/extensions-builtin/sd-webui-controlnet index e081a3a0e..ecd33eb82 160000 --- a/extensions-builtin/sd-webui-controlnet +++ b/extensions-builtin/sd-webui-controlnet @@ -1 +1 @@ -Subproject commit e081a3a0e25899777e40e9b19b3368488fadc57a +Subproject commit ecd33eb82b25c77cec3185cc9647db904fcb7c03 diff --git a/installer.py b/installer.py index 10c8213c7..9ebf14031 100644 --- a/installer.py +++ b/installer.py @@ -18,6 +18,7 @@ class Dot(dict): # dot notation access to dictionary attributes version = None log = logging.getLogger("sd") +debug = log.debug if os.environ.get('SD_INSTALL_DEBUG', None) is not None else lambda *args, **kwargs: None log_file = os.path.join(os.path.dirname(__file__), 'sdnext.log') log_rolled = False first_call = True @@ -45,7 +46,10 @@ args = Dot({ 'ignore': False, }) git_commit = "unknown" - +submodules_commit = { + 'sd-webui-controlnet': 'ecd33eb', + 'stable-diffusion-webui-images-browser': '27fe4a7' +} # setup console and file logging def setup_logging(): @@ -126,6 +130,7 @@ def setup_logging(): logging.getLogger("lycoris").handlers = log.handlers # logging.getLogger("DeepSpeed").handlers = log.handlers + def get_logfile(): log_size = os.path.getsize(log_file) if os.path.exists(log_file) else 0 log.info(f'Logger: file="{log_file}" level={logging.getLevelName(logging.DEBUG if args.debug else logging.INFO)} size={log_size} mode={"append" if not log_rolled else "create"}') @@ -213,6 +218,7 @@ def pip(arg: str, ignore: bool = False, quiet: bool = False): if len(result.stderr) > 0: txt += ('\n' if len(txt) > 0 else '') + result.stderr.decode(encoding="utf8", errors="ignore") txt = txt.strip() + debug(f'Install pip: {txt}') if result.returncode != 0 and not ignore: global errors # pylint: disable=global-statement errors += 1 @@ -279,13 +285,22 @@ def update(folder, current_branch = False, rebase = True): pass arg = '--rebase --force' if rebase else '' if current_branch: + print('HERE1') res = git(f'pull {arg}', folder) + debug(f'Install update: folder={folder} args={arg} {res}') return res b = branch(folder) if branch is None: + print('HERE2') res = git(f'pull {arg}', folder) + debug(f'Install update: folder={folder} branch={b} args={arg} {res}') else: res = git(f'pull origin {b} {arg}', folder) + debug(f'Install update: folder={folder} branch={b} args={arg} {res}') + commit = submodules_commit.get(os.path.basename(folder), None) + if commit is not None: + res = git(f'checkout {commit}', folder) + debug(f'Install update: folder={folder} branch={b} args={arg} commit={commit} {res}') return res @@ -297,7 +312,8 @@ def clone(url, folder, commithash=None): else: current_hash = git('rev-parse HEAD', folder).strip() if current_hash != commithash: - git('fetch', folder) + res = git('fetch', folder) + debug(f'Install clone: {res}') git(f'checkout {commithash}', folder) return else: