diff --git a/CHANGELOG.md b/CHANGELOG.md index 097a84571..46cf8803c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,27 +47,28 @@ TBD `clip, numba, skimage, torchsde, omegaconf, antlr, patch-ng, patch-ng, astunparse, addict, inflection, jsonmerge, kornia`, `resize-right, voluptuous, yapf, sqlalchemy, invisible-watermark, pi-heif, ftfy, blendmodes, PyWavelets, imp` these are now installed on-demand when needed - - refactor: to/from image/tensor logic, thanks @CalamitousFelicitousness - - refactor: switch to `pyproject.toml` for tool configs - - refactor: reorganize `cli` scripts - - refactor: move tests to dedicated `/test/` - - refactor: all image handling to `modules/image/` - - refactor: remove face restoration, thanks @CalamitousFelicitousness - - refactor: unified command line parsing - - refactor: launch use threads to async execute non-critical tasks - - refactor: switch from deprecated `pkg_resources` to `importlib` - - refactor: modernize typing and type annotations - - refactor: improve `pydantic==2.x` compatibility - - refactor: entire logging into separate `modules/logger` - - refactor: replace `timestamp` based startup checks with state caching - - refactor: split monolithic `shared` module and introduce `ui_definitions` - - refactor: modularize all imports and avoid re-imports + - refactor to/from image/tensor logic, thanks @CalamitousFelicitousness + - switch to `pyproject.toml` for tool configs + - refactor reorganize `cli` scripts + - refactor move tests to dedicated `/test/` + - refactor all image handling to `modules/image/` + - remove face restoration, thanks @CalamitousFelicitousness + - unified command line parsing + - launch use threads to async execute non-critical tasks + - switch from deprecated `pkg_resources` to `importlib` + - modernize typing and type annotations + - improve `pydantic==2.x` compatibility + - refactor entire logging into separate `modules/logger` + - replace `timestamp` based startup checks with state caching + - split monolithic `shared` module and introduce `ui_definitions` + - modularize all imports and avoid re-imports - use `threading` for deferable operatios - use `threading` for io-independent parallel operations - remove requirements: `clip`, `open-clip` - remove `normalbae` pre-processor - - refactor: captioning part-2, thanks @CalamitousFelicitousness + - captioning part-2, thanks @CalamitousFelicitousness - update `lint` rules, thanks @awsr + - add new build of `insightface`, thanks @hameerabbasi - **Fixes** - handle `clip` installer doing unwanted `setuptools` update - cleanup for `uv` installer fallback diff --git a/extensions-builtin/sdnext-kanvas b/extensions-builtin/sdnext-kanvas index 79cae1944..a03c6ef77 160000 --- a/extensions-builtin/sdnext-kanvas +++ b/extensions-builtin/sdnext-kanvas @@ -1 +1 @@ -Subproject commit 79cae1944646e57cfbfb126a971a04e44e45d776 +Subproject commit a03c6ef771bd5cdc226de92f6ad931985da7633a diff --git a/installer.py b/installer.py index 4a5195a39..94474119d 100644 --- a/installer.py +++ b/installer.py @@ -1071,11 +1071,12 @@ def install_opencv(): def install_insightface(): - install('git+https://github.com/deepinsight/insightface@29b6cd65aa0e9ae3b6602de3c52e9d8949c8ee86#subdirectory=python-package', 'insightface') # insightface==0.7.3 with patches - if args.new: + if sys.version_info >= (3, 13): + install('insightfacex==0.7.4', 'insightfacex', ignore=True, quiet=True) uninstall('albumentations') install('albumentationsx') else: + install('git+https://github.com/deepinsight/insightface@29b6cd65aa0e9ae3b6602de3c52e9d8949c8ee86#subdirectory=python-package', 'insightface') # insightface==0.7.3 with patches uninstall('albumentationsx') install('albumentations==1.4.3', ignore=True, quiet=True) install_pydantic() diff --git a/modules/face/insightface.py b/modules/face/insightface.py index b167080e3..087ea9d06 100644 --- a/modules/face/insightface.py +++ b/modules/face/insightface.py @@ -11,7 +11,7 @@ def get_app(mp_name, threshold=0.5, resolution=640): global insightface_app, instightface_mp # pylint: disable=global-statement from installer import install, installed, install_insightface - if not installed('insightface', quiet=True): + if not installed('insightface', quiet=True) and not installed('insightfacex', quiet=True): install_insightface() if not installed('ip_adapter', quiet=True): install('git+https://github.com/tencent-ailab/IP-Adapter.git', 'ip_adapter', ignore=False) diff --git a/scripts/infiniteyou_ext.py b/scripts/infiniteyou_ext.py index 1b551fa88..2ac97fc72 100644 --- a/scripts/infiniteyou_ext.py +++ b/scripts/infiniteyou_ext.py @@ -15,7 +15,7 @@ orig_pipeline, orig_prompt_attention = None, None def verify_insightface(): from installer import installed, install_insightface - if not installed('insightface', quiet=True): + if not installed('insightface', quiet=True) and not installed('insightfacex', quiet=True): install_insightface() diff --git a/scripts/pulid_ext.py b/scripts/pulid_ext.py index 62e606f47..bce6c6f50 100644 --- a/scripts/pulid_ext.py +++ b/scripts/pulid_ext.py @@ -30,7 +30,7 @@ class Script(scripts_manager.Script): def dependencies(self): from installer import installed, install, install_insightface - if not installed('insightface', quiet=True): + if not installed('insightface', quiet=True) and not installed('insightfacex', quiet=True): install_insightface() if not installed('torchdiffeq'): install('torchdiffeq')