From 4dea04e26215af36408b10817c9f2b99de32e76c Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Sun, 30 Jun 2024 05:02:23 +0800 Subject: [PATCH 01/17] setup uv --- installer.py | 7 ++++--- launch.py | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/installer.py b/installer.py index a00a12624..0d0d74e2a 100644 --- a/installer.py +++ b/installer.py @@ -235,13 +235,14 @@ def uninstall(package, quiet = False): @lru_cache() -def pip(arg: str, ignore: bool = False, quiet: bool = False): +def pip(arg: str, ignore: bool = False, quiet: bool = False, uv=True): arg = arg.replace('>=', '==') if not quiet and '-r ' not in arg: log.info(f'Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}"') env_args = os.environ.get("PIP_EXTRA_ARGS", "") log.debug(f'Running: pip="{pip_log}{arg} {env_args}"') - result = subprocess.run(f'"{sys.executable}" -m pip {pip_log}{arg} {env_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + pipCmd = "uv pip" if uv else "pip" + result = subprocess.run(f'"{sys.executable}" -m {pipCmd} {pip_log}{arg} {env_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) txt = result.stdout.decode(encoding="utf8", errors="ignore") if len(result.stderr) > 0: txt += ('\n' if len(txt) > 0 else '') + result.stderr.decode(encoding="utf8", errors="ignore") @@ -264,7 +265,7 @@ def install(package, friendly: str = None, ignore: bool = False, reinstall: bool quick_allowed = False if args.reinstall or reinstall or not installed(package, friendly, quiet=quiet): deps = '' if not no_deps else '--no-deps ' - res = pip(f"install --upgrade {deps}{package}", ignore=ignore) + res = pip(f"install {deps}{package}", ignore=ignore) try: import imp # pylint: disable=deprecated-module imp.reload(pkg_resources) diff --git a/launch.py b/launch.py index f1d8b7ec5..5e1e8075f 100755 --- a/launch.py +++ b/launch.py @@ -183,6 +183,7 @@ def start_server(immediate=True, server=None): def main(): global args # pylint: disable=global-statement installer.ensure_base_requirements() + installer.pip("install uv", uv=False) init_args() # setup argparser and default folders installer.args = args installer.setup_logging() From 00ddc02971e062b39fca55616ad0c2da06db900a Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Sun, 30 Jun 2024 05:03:56 +0800 Subject: [PATCH 02/17] install uv before base requirements --- launch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launch.py b/launch.py index 5e1e8075f..ed62bc8b8 100755 --- a/launch.py +++ b/launch.py @@ -182,8 +182,8 @@ def start_server(immediate=True, server=None): def main(): global args # pylint: disable=global-statement - installer.ensure_base_requirements() installer.pip("install uv", uv=False) + installer.ensure_base_requirements() init_args() # setup argparser and default folders installer.args = args installer.setup_logging() From 4c9b2391a5c23356efdd47d92863f4142bc7b5a9 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 11:09:55 -0400 Subject: [PATCH 03/17] fix steps progress count --- modules/processing_diffusers.py | 6 +++--- wiki | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index b4be9940b..ef1eb9d69 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -104,7 +104,7 @@ def process_diffusers(p: processing.StableDiffusionProcessing): clip_skip=p.clip_skip, desc='Base', ) - shared.state.sampling_steps = base_args.get('prior_num_inference_steps', None) or base_args.get('num_inference_steps', None) or p.steps + shared.state.sampling_steps = base_args.get('prior_num_inference_steps', None) or p.steps or base_args.get('num_inference_steps', None) if shared.opts.scheduler_eta is not None and shared.opts.scheduler_eta > 0 and shared.opts.scheduler_eta < 1: p.extra_generation_params["Sampler Eta"] = shared.opts.scheduler_eta output = None @@ -215,7 +215,7 @@ def process_diffusers(p: processing.StableDiffusionProcessing): desc='Hires', ) shared.state.job = 'HiRes' - shared.state.sampling_steps = hires_args.get('prior_num_inference_steps', None) or hires_args.get('num_inference_steps', None) or p.steps + shared.state.sampling_steps = hires_args.get('prior_num_inference_steps', None) or p.steps or hires_args.get('num_inference_steps', None) try: sd_models_compile.check_deepcache(enable=True) output = shared.sd_model(**hires_args) # pylint: disable=not-callable @@ -280,7 +280,7 @@ def process_diffusers(p: processing.StableDiffusionProcessing): clip_skip=p.clip_skip, desc='Refiner', ) - shared.state.sampling_steps = refiner_args.get('prior_num_inference_steps', None) or refiner_args.get('num_inference_steps', None) or p.steps + shared.state.sampling_steps = refiner_args.get('prior_num_inference_steps', None) or p.steps or refiner_args.get('num_inference_steps', None) try: if 'requires_aesthetics_score' in shared.sd_refiner.config: # sdxl-model needs false and sdxl-refiner needs true shared.sd_refiner.register_to_config(requires_aesthetics_score = getattr(shared.sd_refiner, 'tokenizer', None) is None) diff --git a/wiki b/wiki index 8c44b3055..dc683a6e3 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 8c44b305543f8b612b3b0fbc935ac40997360588 +Subproject commit dc683a6e3fd64160489e2d3eb856b6f5fd92a5c1 From 4bcf5e346b479254aae8c66fea69d6c8f04ef16a Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 00:20:16 +0800 Subject: [PATCH 04/17] makes uv an apt-in features, add uv testing to GH actions --- .github/workflows/on_pull_request.yaml | 4 ++++ installer.py | 18 +++++++++++------- launch.py | 4 +++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.github/workflows/on_pull_request.yaml b/.github/workflows/on_pull_request.yaml index 7abade093..de0486b54 100644 --- a/.github/workflows/on_pull_request.yaml +++ b/.github/workflows/on_pull_request.yaml @@ -29,3 +29,7 @@ jobs: run: | export COMMANDLINE_ARGS="--debug --test" python launch.py + - name: test-startup-with-uv + run: | + export COMMANDLINE_ARGS="--debug --test --uv" + python launch.py diff --git a/installer.py b/installer.py index 0d0d74e2a..a209643ae 100644 --- a/installer.py +++ b/installer.py @@ -52,6 +52,7 @@ args = Dot({ 'reinstall': False, 'version': False, 'ignore': False, + 'uv': False, }) git_commit = "unknown" submodules_commit = { @@ -235,23 +236,25 @@ def uninstall(package, quiet = False): @lru_cache() -def pip(arg: str, ignore: bool = False, quiet: bool = False, uv=True): +def pip(arg: str, ignore: bool = False, quiet: bool = False, forcePip = False): + uv = args.uv and not forcePip + pipCmd = "uv pip" if uv else "pip" + uvMode = "[uv] " if uv else "" arg = arg.replace('>=', '==') if not quiet and '-r ' not in arg: - log.info(f'Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}"') + log.info(f'{uvMode}Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}"') env_args = os.environ.get("PIP_EXTRA_ARGS", "") - log.debug(f'Running: pip="{pip_log}{arg} {env_args}"') - pipCmd = "uv pip" if uv else "pip" + log.debug(f'Running: {pipCmd}="{pip_log}{arg} {env_args}"') result = subprocess.run(f'"{sys.executable}" -m {pipCmd} {pip_log}{arg} {env_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) txt = result.stdout.decode(encoding="utf8", errors="ignore") 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}') + debug(f'Install {pipCmd}: {txt}') if result.returncode != 0 and not ignore: global errors # pylint: disable=global-statement errors += 1 - log.error(f'Error running pip: {arg}') + log.error(f'Error running {pipCmd}: {arg}') log.debug(f'Pip output: {txt}') return txt @@ -265,7 +268,7 @@ def install(package, friendly: str = None, ignore: bool = False, reinstall: bool quick_allowed = False if args.reinstall or reinstall or not installed(package, friendly, quiet=quiet): deps = '' if not no_deps else '--no-deps ' - res = pip(f"install {deps}{package}", ignore=ignore) + res = pip(f"install{' --upgrade' if not args.uv else ''} {deps}{package}", ignore=ignore, forcePip=(package == "uv")) try: import imp # pylint: disable=deprecated-module imp.reload(pkg_resources) @@ -1224,6 +1227,7 @@ def add_args(parser): group.add_argument('--version', default = False, action='store_true', help = "Print version information") group.add_argument('--ignore', default = os.environ.get("SD_IGNORE",False), action='store_true', help = "Ignore any errors and attempt to continue") group.add_argument('--safe', default = os.environ.get("SD_SAFE",False), action='store_true', help = "Run in safe mode with no user extensions") + group.add_argument('--uv', default = os.environ.get("SD_UV",False), action='store_true', help = "Use uv instead of pip to install the packages") group = parser.add_argument_group('Logging options') group.add_argument("--log", type=str, default=os.environ.get("SD_LOG", None), help="Set log file, default: %(default)s") diff --git a/launch.py b/launch.py index ed62bc8b8..c7cc71d09 100755 --- a/launch.py +++ b/launch.py @@ -182,7 +182,6 @@ def start_server(immediate=True, server=None): def main(): global args # pylint: disable=global-statement - installer.pip("install uv", uv=False) installer.ensure_base_requirements() init_args() # setup argparser and default folders installer.args = args @@ -205,6 +204,9 @@ def main(): installer.log.info(f'Platform: {installer.print_dict(installer.get_platform())}') if not args.skip_env: installer.set_environment() + if args.uv: + installer.install("uv", "uv") + installer.log.info('Using "uv pip" instead of "pip" for packages installation') installer.check_torch() installer.check_onnx() installer.check_diffusers() From 7562bde0fdb16c88593d3adda1fda19cfaae7ab4 Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 00:25:56 +0800 Subject: [PATCH 05/17] delete venv before testing uv --- .github/workflows/on_pull_request.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/on_pull_request.yaml b/.github/workflows/on_pull_request.yaml index de0486b54..938713ac7 100644 --- a/.github/workflows/on_pull_request.yaml +++ b/.github/workflows/on_pull_request.yaml @@ -31,5 +31,6 @@ jobs: python launch.py - name: test-startup-with-uv run: | + rm -rf venv export COMMANDLINE_ARGS="--debug --test --uv" python launch.py From 07381bd3d3b63dfd74cc7f1903d3848f591bc748 Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 00:36:57 +0800 Subject: [PATCH 06/17] use matrix to test installation w/wo uv --- .github/workflows/on_pull_request.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/on_pull_request.yaml b/.github/workflows/on_pull_request.yaml index 938713ac7..5b00eec65 100644 --- a/.github/workflows/on_pull_request.yaml +++ b/.github/workflows/on_pull_request.yaml @@ -7,6 +7,12 @@ on: jobs: lint: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + flags: + - --debug --test --uv + - --debug --test steps: - name: checkout-code uses: actions/checkout@main @@ -27,10 +33,5 @@ jobs: msg: apply code formatting and linting auto-fixes - name: test-startup run: | - export COMMANDLINE_ARGS="--debug --test" - python launch.py - - name: test-startup-with-uv - run: | - rm -rf venv - export COMMANDLINE_ARGS="--debug --test --uv" + export COMMANDLINE_ARGS="${{ matrix.flags }}" python launch.py From f03a0b2a486539bb4a3c2422e6983e336d595f77 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 13:17:24 -0400 Subject: [PATCH 07/17] fix control input type video --- modules/control/run.py | 129 ++++++++++++++++++++++------------------- wiki | 2 +- 2 files changed, 70 insertions(+), 61 deletions(-) diff --git a/modules/control/run.py b/modules/control/run.py index cb4c121ca..0f5647b73 100644 --- a/modules/control/run.py +++ b/modules/control/run.py @@ -282,67 +282,72 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini else: pass - debug(f'Control: run type={unit_type} models={has_models}') - if has_models: - p.ops.append('control') - p.extra_generation_params["Control mode"] = unit_type # overriden later with pretty-print - p.extra_generation_params["Control conditioning"] = control_conditioning if isinstance(control_conditioning, list) else [control_conditioning] - p.extra_generation_params['Control start'] = control_guidance_start if isinstance(control_guidance_start, list) else [control_guidance_start] - p.extra_generation_params['Control end'] = control_guidance_end if isinstance(control_guidance_end, list) else [control_guidance_end] - p.extra_generation_params["Control model"] = ';'.join([(m.model_id or '') for m in active_model if m.model is not None]) - p.extra_generation_params["Control conditioning"] = ';'.join([str(c) for c in p.extra_generation_params["Control conditioning"]]) - p.extra_generation_params['Control start'] = ';'.join([str(c) for c in p.extra_generation_params['Control start']]) - p.extra_generation_params['Control end'] = ';'.join([str(c) for c in p.extra_generation_params['Control end']]) - if unit_type == 't2i adapter' and has_models: - p.extra_generation_params["Control mode"] = 'T2I-Adapter' - p.task_args['adapter_conditioning_scale'] = control_conditioning - instance = t2iadapter.AdapterPipeline(selected_models, shared.sd_model) - pipe = instance.pipeline - if inits is not None: - shared.log.warning('Control: T2I-Adapter does not support separate init image') - elif unit_type == 'controlnet' and has_models: - p.extra_generation_params["Control mode"] = 'ControlNet' - p.task_args['controlnet_conditioning_scale'] = control_conditioning - p.task_args['control_guidance_start'] = control_guidance_start - p.task_args['control_guidance_end'] = control_guidance_end - p.task_args['guess_mode'] = p.guess_mode - instance = controlnet.ControlNetPipeline(selected_models, shared.sd_model) - pipe = instance.pipeline - elif unit_type == 'xs' and has_models: - p.extra_generation_params["Control mode"] = 'ControlNet-XS' - p.controlnet_conditioning_scale = control_conditioning - p.control_guidance_start = control_guidance_start - p.control_guidance_end = control_guidance_end - instance = xs.ControlNetXSPipeline(selected_models, shared.sd_model) - pipe = instance.pipeline - if inits is not None: - shared.log.warning('Control: ControlNet-XS does not support separate init image') - elif unit_type == 'lite' and has_models: - p.extra_generation_params["Control mode"] = 'ControlLLLite' - p.controlnet_conditioning_scale = control_conditioning - instance = lite.ControlLLitePipeline(shared.sd_model) - pipe = instance.pipeline - if inits is not None: - shared.log.warning('Control: ControlLLLite does not support separate init image') - elif unit_type == 'reference' and has_models: - p.extra_generation_params["Control mode"] = 'Reference' - p.extra_generation_params["Control attention"] = p.attention - p.task_args['reference_attn'] = 'Attention' in p.attention - p.task_args['reference_adain'] = 'Adain' in p.attention - p.task_args['attention_auto_machine_weight'] = p.query_weight - p.task_args['gn_auto_machine_weight'] = p.adain_weight - p.task_args['style_fidelity'] = p.fidelity - instance = reference.ReferencePipeline(shared.sd_model) - pipe = instance.pipeline - if inits is not None: - shared.log.warning('Control: ControlNet-XS does not support separate init image') - else: # run in txt2img/img2img mode - if len(active_strength) > 0: - p.strength = active_strength[0] - pipe = shared.sd_model - instance = None + def set_pipe(): + global pipe, instance # pylint: disable=global-statement + pipe = None + if has_models: + p.ops.append('control') + p.extra_generation_params["Control mode"] = unit_type # overriden later with pretty-print + p.extra_generation_params["Control conditioning"] = control_conditioning if isinstance(control_conditioning, list) else [control_conditioning] + p.extra_generation_params['Control start'] = control_guidance_start if isinstance(control_guidance_start, list) else [control_guidance_start] + p.extra_generation_params['Control end'] = control_guidance_end if isinstance(control_guidance_end, list) else [control_guidance_end] + p.extra_generation_params["Control model"] = ';'.join([(m.model_id or '') for m in active_model if m.model is not None]) + p.extra_generation_params["Control conditioning"] = ';'.join([str(c) for c in p.extra_generation_params["Control conditioning"]]) + p.extra_generation_params['Control start'] = ';'.join([str(c) for c in p.extra_generation_params['Control start']]) + p.extra_generation_params['Control end'] = ';'.join([str(c) for c in p.extra_generation_params['Control end']]) + if unit_type == 't2i adapter' and has_models: + p.extra_generation_params["Control mode"] = 'T2I-Adapter' + p.task_args['adapter_conditioning_scale'] = control_conditioning + instance = t2iadapter.AdapterPipeline(selected_models, shared.sd_model) + pipe = instance.pipeline + if inits is not None: + shared.log.warning('Control: T2I-Adapter does not support separate init image') + elif unit_type == 'controlnet' and has_models: + p.extra_generation_params["Control mode"] = 'ControlNet' + p.task_args['controlnet_conditioning_scale'] = control_conditioning + p.task_args['control_guidance_start'] = control_guidance_start + p.task_args['control_guidance_end'] = control_guidance_end + p.task_args['guess_mode'] = p.guess_mode + instance = controlnet.ControlNetPipeline(selected_models, shared.sd_model) + pipe = instance.pipeline + elif unit_type == 'xs' and has_models: + p.extra_generation_params["Control mode"] = 'ControlNet-XS' + p.controlnet_conditioning_scale = control_conditioning + p.control_guidance_start = control_guidance_start + p.control_guidance_end = control_guidance_end + instance = xs.ControlNetXSPipeline(selected_models, shared.sd_model) + pipe = instance.pipeline + if inits is not None: + shared.log.warning('Control: ControlNet-XS does not support separate init image') + elif unit_type == 'lite' and has_models: + p.extra_generation_params["Control mode"] = 'ControlLLLite' + p.controlnet_conditioning_scale = control_conditioning + instance = lite.ControlLLitePipeline(shared.sd_model) + pipe = instance.pipeline + if inits is not None: + shared.log.warning('Control: ControlLLLite does not support separate init image') + elif unit_type == 'reference' and has_models: + p.extra_generation_params["Control mode"] = 'Reference' + p.extra_generation_params["Control attention"] = p.attention + p.task_args['reference_attn'] = 'Attention' in p.attention + p.task_args['reference_adain'] = 'Adain' in p.attention + p.task_args['attention_auto_machine_weight'] = p.query_weight + p.task_args['gn_auto_machine_weight'] = p.adain_weight + p.task_args['style_fidelity'] = p.fidelity + instance = reference.ReferencePipeline(shared.sd_model) + pipe = instance.pipeline + if inits is not None: + shared.log.warning('Control: ControlNet-XS does not support separate init image') + else: # run in txt2img/img2img mode + if len(active_strength) > 0: + p.strength = active_strength[0] + pipe = shared.sd_model + instance = None + debug(f'Control: run type={unit_type} models={has_models} pipe={pipe.__class__.__name__ if pipe is not None else None}') + return pipe + pipe = set_pipe() debug(f'Control pipeline: class={pipe.__class__.__name__} args={vars(p)}') t1, t2, t3 = time.time(), 0, 0 status = True @@ -390,6 +395,9 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini return [], '', '', 'Error: video open failed' while status: + if pipe is None: # pipe may have been reset externally + pipe = set_pipe() + debug(f'Control pipeline reinit: class={pipe.__class__.__name__} args={vars(p)}') processed_image = None if frame is not None: inputs = [Image.fromarray(frame)] # cv2 to pil @@ -426,9 +434,10 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini else: debug(f'Control Init image: {i % len(inits) + 1} of {len(inits)}') init_image = inits[i % len(inits)] - index += 1 if video is not None and index % (video_skip_frames + 1) != 0: + index += 1 continue + index += 1 # resize before if resize_mode_before != 0 and resize_name_before != 'None': diff --git a/wiki b/wiki index dc683a6e3..04ecf1fe4 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit dc683a6e3fd64160489e2d3eb856b6f5fd92a5c1 +Subproject commit 04ecf1fe4b254616ecafac2b716f58a2add7d21a From d38900956502a1fc19583c0092431bec337ce05e Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 13:17:54 -0400 Subject: [PATCH 08/17] update changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bffa9703..1a273c788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ # Change Log for SD.Next -## Update for 2024-06-28 +## Update for 2024-06-30 - enable `florence` VLM for all platforms, thanks @lshqqytiger! - fix executing extensions with zero params - fix nncf for lora, thanks @Disty0! - fix diffusers version detection for SD3 - fix current step for higher order samplers +- fix control input type video - add SD3 with FP16 T5 to list of detected models - multiple ModernUI fixes From fee84fe6b51df2744685afda3342ad785313cca5 Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 01:58:24 +0800 Subject: [PATCH 09/17] add --uv to CLI Arguments page --- wiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki b/wiki index 8c44b3055..349c11b66 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 8c44b305543f8b612b3b0fbc935ac40997360588 +Subproject commit 349c11b669053b0e50d5e8b88806f9a12cc3be0c From f1a872cb85866fb33b0b1fc12d5d9ddd72cfc2f4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 14:02:55 -0400 Subject: [PATCH 10/17] fix control video input --- modules/control/run.py | 9 +++++---- modules/processing.py | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/control/run.py b/modules/control/run.py index 0f5647b73..1c043725c 100644 --- a/modules/control/run.py +++ b/modules/control/run.py @@ -397,7 +397,7 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini while status: if pipe is None: # pipe may have been reset externally pipe = set_pipe() - debug(f'Control pipeline reinit: class={pipe.__class__.__name__} args={vars(p)}') + debug(f'Control pipeline reinit: class={pipe.__class__.__name__}') processed_image = None if frame is not None: inputs = [Image.fromarray(frame)] # cv2 to pil @@ -602,10 +602,11 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini output = None script_run = False if pipe is not None: # run new pipeline - pipe.restore_pipeline = restore_pipeline + if not hasattr(pipe, 'restore_pipeline') and video is None: + pipe.restore_pipeline = restore_pipeline debug(f'Control exec pipeline: task={sd_models.get_diffusers_task(pipe)} class={pipe.__class__}') - debug(f'Control exec pipeline: p={vars(p)}') - debug(f'Control exec pipeline: args={p.task_args} image={p.task_args.get("image", None)} control={p.task_args.get("control_image", None)} mask={p.task_args.get("mask_image", None) or p.image_mask} ref={p.task_args.get("ref_image", None)}') + # debug(f'Control exec pipeline: p={vars(p)}') + # debug(f'Control exec pipeline: args={p.task_args} image={p.task_args.get("image", None)} control={p.task_args.get("control_image", None)} mask={p.task_args.get("mask_image", None) or p.image_mask} ref={p.task_args.get("ref_image", None)}') if sd_models.get_diffusers_task(pipe) != sd_models.DiffusersTaskType.TEXT_2_IMAGE: # force vae back to gpu if not in txt2img mode sd_models.move_model(pipe.vae, devices.device) diff --git a/modules/processing.py b/modules/processing.py index d453e0b15..34a34a0e3 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -388,6 +388,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: devices.torch_gc() if hasattr(shared.sd_model, 'restore_pipeline') and shared.sd_model.restore_pipeline is not None: + print('HERE RESTORE') shared.sd_model.restore_pipeline() t1 = time.time() From 3fa0c6bce56c6400483af5064a8ce95b17d8604d Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 02:06:20 +0800 Subject: [PATCH 11/17] Revert "add --uv to CLI Arguments page" This reverts commit fee84fe6b51df2744685afda3342ad785313cca5. --- wiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki b/wiki index 349c11b66..8c44b3055 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 349c11b669053b0e50d5e8b88806f9a12cc3be0c +Subproject commit 8c44b305543f8b612b3b0fbc935ac40997360588 From 5af36d21823add99985a695348f04b1d9f5dd4ce Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 14:09:48 -0400 Subject: [PATCH 12/17] track video processing total job count --- modules/control/run.py | 1 + modules/progress.py | 2 +- modules/shared_state.py | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/control/run.py b/modules/control/run.py index 1c043725c..ba736a4a8 100644 --- a/modules/control/run.py +++ b/modules/control/run.py @@ -388,6 +388,7 @@ def control_run(units: List[unit.Unit] = [], inputs: List[Image.Image] = [], ini codec = util.decode_fourcc(video.get(cv2.CAP_PROP_FOURCC)) status, frame = video.read() if status: + shared.state.frame_count = 1 + frames // (video_skip_frames + 1) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) shared.log.debug(f'Control: input video: path={inputs} frames={frames} fps={fps} size={w}x{h} codec={codec}') except Exception as e: diff --git a/modules/progress.py b/modules/progress.py index f5573374b..aeef195b4 100644 --- a/modules/progress.py +++ b/modules/progress.py @@ -62,7 +62,7 @@ def progressapi(req: ProgressRequest): paused = shared.state.paused if not active: return InternalProgressResponse(job=shared.state.job, active=active, queued=queued, paused=paused, completed=completed, id_live_preview=-1, textinfo="Queued..." if queued else "Waiting...") - shared.state.job_count = max(shared.state.job_count, shared.state.job_no) + shared.state.job_count = max(shared.state.frame_count, shared.state.job_count, shared.state.job_no) batch_x = max(shared.state.job_no, 0) batch_y = max(shared.state.job_count, 1) step_x = max(shared.state.sampling_step, 0) diff --git a/modules/shared_state.py b/modules/shared_state.py index 79ee20f19..82f8d21dc 100644 --- a/modules/shared_state.py +++ b/modules/shared_state.py @@ -12,6 +12,7 @@ class State: job = "" job_no = 0 job_count = 0 + frame_count = 0 total_jobs = 0 job_timestamp = '0' sampling_step = 0 @@ -71,6 +72,7 @@ class State: self.interrupted = False self.job = title self.job_count = -1 + self.frame_count = -1 self.job_no = 0 self.job_timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S") self.paused = False @@ -93,6 +95,7 @@ class State: self.job = "" self.job_count = 0 self.job_no = 0 + self.frame_count = 0 self.paused = False self.interrupted = False self.skipped = False From 47d865acc1794033579dca8fd9ef776b018bb91b Mon Sep 17 00:00:00 2001 From: Yoink3000 Date: Mon, 1 Jul 2024 02:13:59 +0800 Subject: [PATCH 13/17] inline with SD Next logging style --- installer.py | 2 +- launch.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/installer.py b/installer.py index a209643ae..913da981e 100644 --- a/installer.py +++ b/installer.py @@ -242,7 +242,7 @@ def pip(arg: str, ignore: bool = False, quiet: bool = False, forcePip = False): uvMode = "[uv] " if uv else "" arg = arg.replace('>=', '==') if not quiet and '-r ' not in arg: - log.info(f'{uvMode}Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}"') + log.info(f'Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}" mode={"uv" if uv else "pip"}') env_args = os.environ.get("PIP_EXTRA_ARGS", "") log.debug(f'Running: {pipCmd}="{pip_log}{arg} {env_args}"') result = subprocess.run(f'"{sys.executable}" -m {pipCmd} {pip_log}{arg} {env_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) diff --git a/launch.py b/launch.py index c7cc71d09..1db8a81f6 100755 --- a/launch.py +++ b/launch.py @@ -206,7 +206,6 @@ def main(): installer.set_environment() if args.uv: installer.install("uv", "uv") - installer.log.info('Using "uv pip" instead of "pip" for packages installation') installer.check_torch() installer.check_onnx() installer.check_diffusers() From 45b0781281e56ee74642eafd05a7321b1e32e84b Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 14:27:01 -0400 Subject: [PATCH 14/17] add uv to changelog and readme --- CHANGELOG.md | 2 ++ README.md | 1 + installer.py | 12 ++++++------ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a273c788..2335d6313 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Update for 2024-06-30 +- add support for [uv](https://pypi.org/project/uv/), extremely fast installer, thanks @Yoinky3000! + to use, simply add `--uv` to your command line params - enable `florence` VLM for all platforms, thanks @lshqqytiger! - fix executing extensions with zero params - fix nncf for lora, thanks @Disty0! diff --git a/README.md b/README.md index 6b7733b98..6ad95b6af 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ List of available parameters, run `webui --help` for the full & up-to-date list: --version Print version information --ignore Ignore any errors and attempt to continue --safe Run in safe mode with no user extensions + --uv Use uv as installer, default: False Logging options: --log LOG Set log file, default: None diff --git a/installer.py b/installer.py index 913da981e..707af8a7a 100644 --- a/installer.py +++ b/installer.py @@ -236,16 +236,16 @@ def uninstall(package, quiet = False): @lru_cache() -def pip(arg: str, ignore: bool = False, quiet: bool = False, forcePip = False): - uv = args.uv and not forcePip +def pip(arg: str, ignore: bool = False, quiet: bool = False, uv = True): + uv = uv and args.uv pipCmd = "uv pip" if uv else "pip" - uvMode = "[uv] " if uv else "" arg = arg.replace('>=', '==') if not quiet and '-r ' not in arg: log.info(f'Install: package="{arg.replace("install", "").replace("--upgrade", "").replace("--no-deps", "").replace("--force", "").replace(" ", " ").strip()}" mode={"uv" if uv else "pip"}') env_args = os.environ.get("PIP_EXTRA_ARGS", "") - log.debug(f'Running: {pipCmd}="{pip_log}{arg} {env_args}"') - result = subprocess.run(f'"{sys.executable}" -m {pipCmd} {pip_log}{arg} {env_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + all_args = f'{pip_log}{arg} {env_args}'.strip() + log.debug(f'Running: {pipCmd}="{all_args}"') + result = subprocess.run(f'"{sys.executable}" -m {pipCmd} {all_args}', shell=True, check=False, env=os.environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE) txt = result.stdout.decode(encoding="utf8", errors="ignore") if len(result.stderr) > 0: txt += ('\n' if len(txt) > 0 else '') + result.stderr.decode(encoding="utf8", errors="ignore") @@ -268,7 +268,7 @@ def install(package, friendly: str = None, ignore: bool = False, reinstall: bool quick_allowed = False if args.reinstall or reinstall or not installed(package, friendly, quiet=quiet): deps = '' if not no_deps else '--no-deps ' - res = pip(f"install{' --upgrade' if not args.uv else ''} {deps}{package}", ignore=ignore, forcePip=(package == "uv")) + res = pip(f"install{' --upgrade' if not args.uv else ''} {deps}{package}", ignore=ignore, uv=package != "uv") try: import imp # pylint: disable=deprecated-module imp.reload(pkg_resources) From cdc2e66cff92585e937d298c7a4cbdc116edb9a7 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 30 Jun 2024 14:36:15 -0400 Subject: [PATCH 15/17] update readme --- README.md | 30 +++++++++++++++--------------- wiki | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 6ad95b6af..cdbd0fa7e 100644 --- a/README.md +++ b/README.md @@ -64,31 +64,31 @@ For screenshots and informations on other available themes, see [Themes Wiki](ht Additional models will be added as they become available and there is public interest in them -- [RunwayML Stable Diffusion](https://github.com/Stability-AI/stablediffusion/) 1.x and 2.x *(all variants)* -- [StabilityAI Stable Diffusion XL](https://github.com/Stability-AI/generative-models) -- [StabilityAI Stable Diffusion 3 Medium](https://stability.ai/news/stable-diffusion-3-medium) +- [RunwayML Stable Diffusion](https://github.com/Stability-AI/stablediffusion/) 1.x and 2.x *(all variants)* +- [StabilityAI Stable Diffusion XL](https://github.com/Stability-AI/generative-models) +- [StabilityAI Stable Diffusion 3 Medium](https://stability.ai/news/stable-diffusion-3-medium) - [StabilityAI Stable Video Diffusion](https://huggingface.co/stabilityai/stable-video-diffusion-img2vid) Base, XT 1.0, XT 1.1 -- [LCM: Latent Consistency Models](https://github.com/openai/consistency_models) -- [Playground](https://huggingface.co/playgroundai/playground-v2-256px-base) *v1, v2 256, v2 512, v2 1024 and latest v2.5* +- [LCM: Latent Consistency Models](https://github.com/openai/consistency_models) +- [Playground](https://huggingface.co/playgroundai/playground-v2-256px-base) *v1, v2 256, v2 512, v2 1024 and latest v2.5* - [Stable Cascade](https://github.com/Stability-AI/StableCascade) *Full* and *Lite* - [aMUSEd 256](https://huggingface.co/amused/amused-256) 256 and 512 -- [Segmind Vega](https://huggingface.co/segmind/Segmind-Vega) -- [Segmind SSD-1B](https://huggingface.co/segmind/SSD-1B) -- [Segmind SegMoE](https://github.com/segmind/segmoe) *SD and SD-XL* -- [Kandinsky](https://github.com/ai-forever/Kandinsky-2) *2.1 and 2.2 and latest 3.0* -- [PixArt-α XL 2](https://github.com/PixArt-alpha/PixArt-alpha) *Medium and Large* -- [PixArt-Σ](https://github.com/PixArt-alpha/PixArt-sigma) -- [Warp Wuerstchen](https://huggingface.co/blog/wuertschen) +- [Segmind Vega](https://huggingface.co/segmind/Segmind-Vega) +- [Segmind SSD-1B](https://huggingface.co/segmind/SSD-1B) +- [Segmind SegMoE](https://github.com/segmind/segmoe) *SD and SD-XL* +- [Kandinsky](https://github.com/ai-forever/Kandinsky-2) *2.1 and 2.2 and latest 3.0* +- [PixArt-α XL 2](https://github.com/PixArt-alpha/PixArt-alpha) *Medium and Large* +- [PixArt-Σ](https://github.com/PixArt-alpha/PixArt-sigma) +- [Warp Wuerstchen](https://huggingface.co/blog/wuertschen) - [Tenecent HunyuanDiT](https://github.com/Tencent/HunyuanDiT) - [Tsinghua UniDiffusion](https://github.com/thu-ml/unidiffuser) - [DeepFloyd IF](https://github.com/deep-floyd/IF) *Medium and Large* - [ModelScope T2V](https://huggingface.co/damo-vilab/text-to-video-ms-1.7b) - [Segmind SD Distilled](https://huggingface.co/blog/sd_distillation) *(all variants)* -- [BLIP-Diffusion](https://dxli94.github.io/BLIP-Diffusion-website/) +- [BLIP-Diffusion](https://dxli94.github.io/BLIP-Diffusion-website/) - [KOALA 700M](https://github.com/youngwanLEE/sdxl-koala) -- [VGen](https://huggingface.co/ali-vilab/i2vgen-xl) +- [VGen](https://huggingface.co/ali-vilab/i2vgen-xl) - [SDXS](https://github.com/IDKiro/sdxs) -- [Hyper-SD](https://huggingface.co/ByteDance/Hyper-SD) +- [Hyper-SD](https://huggingface.co/ByteDance/Hyper-SD) Also supported are modifiers such as: diff --git a/wiki b/wiki index 04ecf1fe4..597b7ac10 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 04ecf1fe4b254616ecafac2b716f58a2add7d21a +Subproject commit 597b7ac107384d6fb0f9352cb079910719a77551 From c376566fb68033e2db0743b375d35f68b9f00e17 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 1 Jul 2024 11:51:46 -0400 Subject: [PATCH 16/17] fix compatibility with latest diffusers --- CHANGELOG.md | 7 ++++++- html/reference.json | 13 ++++++++++--- .../Alpha-VLLM-Lumina-Next-SFT-diffusers.jpg | Bin 0 -> 126764 bytes modules/control/units/xs_pipe.py | 6 ++---- modules/pag/pipe_sdxl.py | 5 ----- modules/xadapter/pipeline_sd_xl_adapter.py | 6 ++---- .../pipeline_sd_xl_adapter_controlnet.py | 6 ++---- ...ipeline_sd_xl_adapter_controlnet_img2img.py | 6 ++---- scripts/demofusion.py | 5 ++--- scripts/differential_diffusion.py | 6 ++---- wiki | 2 +- 11 files changed, 29 insertions(+), 33 deletions(-) create mode 100644 models/Reference/Alpha-VLLM-Lumina-Next-SFT-diffusers.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 2335d6313..32dd6b5d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ # Change Log for SD.Next -## Update for 2024-06-30 +TODO: +- Requires `diffusers==0.30.0` +- Alpha Lumina +## Update for 2024-07-01 + +- support for **HunyuanDiT 1.2** - add support for [uv](https://pypi.org/project/uv/), extremely fast installer, thanks @Yoinky3000! to use, simply add `--uv` to your command line params - enable `florence` VLM for all platforms, thanks @lshqqytiger! diff --git a/html/reference.json b/html/reference.json index a3f62e7e1..c8eaee3f0 100644 --- a/html/reference.json +++ b/html/reference.json @@ -182,13 +182,20 @@ "extras": "width: 1024, height: 1024, sampler: Default, cfg_scale: 2.0" }, - "Tencent HunyuanDiT 1.1": { - "path": "Tencent-Hunyuan/HunyuanDiT-v1.1-Diffusers", + "Tencent HunyuanDiT 1.2": { + "path": "Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers", "desc": "Hunyuan-DiT : A Powerful Multi-Resolution Diffusion Transformer with Fine-Grained Chinese Understanding.", "preview": "Tencent-Hunyuan-HunyuanDiT.jpg", "extras": "width: 1024, height: 1024, sampler: Default, cfg_scale: 2.0" }, - + + "AlphaVLLM Lumina Next SFT": { + "path": "Alpha-VLLM/Lumina-Next-SFT-diffusers", + "desc": "The Lumina-Next-SFT is a Next-DiT model containing 2B parameters and utilizes Gemma-2B as the text encoder, enhanced through high-quality supervised fine-tuning (SFT).", + "preview": "Alpha-VLLM-Lumina-Next-SFT-diffusers.jpg", + "extras": "width: 1024, height: 1024, sampler: Default, cfg_scale: 2.0" + }, + "Kandinsky 2.1": { "path": "kandinsky-community/kandinsky-2-1", "desc": "Kandinsky 2.1 is a text-conditional diffusion model based on unCLIP and latent diffusion, composed of a transformer-based image prior model, a unet diffusion model, and a decoder. Kandinsky 2.1 inherits best practices from Dall-E 2 and Latent diffusion while introducing some new ideas. It uses the CLIP model as a text and image encoder, and diffusion image prior (mapping) between latent spaces of CLIP modalities. This approach increases the visual performance of the model and unveils new horizons in blending images and text-guided image manipulation.", diff --git a/models/Reference/Alpha-VLLM-Lumina-Next-SFT-diffusers.jpg b/models/Reference/Alpha-VLLM-Lumina-Next-SFT-diffusers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e252bff5b62993b1d6ddc759f1f4a6df47d2cfee GIT binary patch literal 126764 zcmbTdbyOTp^fov^fCLBxf@>0-L4rFZ5Zr?63<)m5-9xb80Wvs4a2*ITxC9+s2X}XO z8$RCO?tXjD{QgJk9~60T}4$|Lsrm>}kh*j*0o~872-kHr8`I96UT+99-O& z_(ZQ>;uGTI;=Uq%MfjSSgoFf-fQ+1!n4E~1g!sQm&@i6DJi~l}iTQ%~CGJb&|IhOH z4?y@F{VDAjXhZ;XLNp9Qw8u^W-BZdjpYr6tZ23P04gD#NSlG{B;NU(z0DlEQN5jBC ze}?g2s-K?rd$I$b5n>X(<^G8ETKy~bJ11hEz__gE^imaVBpRc~47?`JKVIOFl95wT zGBPoPGbR_Kl4rCnl$+XJ%Jc*VZ>S zx3+h7PfpLyFD|dHZ*Kp?h4zH=|C0X$*#83;;S(#+p1|kCQgK-oZ7=9~HI7M4oJVm;8TeKhPyU1UKgj;y0sHa)3)%k$_J8A= z1>j+zJ$*b3LVzUTe$vpw0>CAy*i_jQgf5G*XROfY)j+}kkCUa!>@JmGv|L=jy(&@n zQ*htbxD(!sVLOU1?eE6o?lNY)jh~V0KZmLP&9mKSkQ3oeV#B8PUM+{k-NwSyDwDpR zac+3d5PX(vwo=T>(K2-X&@8{6SyZ$hzd+(P3R$j=SsPg5=_C>`pU*w|Ix36(>=w#4 zD;00XPNnw0y<+w>^`&R)XH^?hH7#a6XHa0XB1su ziN?36?VNbh_A^ ze+9}UduD7uBS=_<4HexwhXt+f6$IJJ*bg^K*nScu+}Y92CLHEWKJ|?i`{S;W8!?s! zYKdEDnRpi}JPZ4G>#Z@uK9E1U9wuRxLgH@

N^w6D~2ffy^hmTiE0B5~+x0=>=NI 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

NjGMDcjxw32YM#&*2ON>c4 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%0DyC7!yurmUr_@ zAy}~v;fw-vi)<`S7_@KT5_0t&Fc5};C7ti_@XLLMbpDI_wxktRS)BzAd&BIk`!j$6 z>t#Tn6rnpfuNQru*o6FeC9iZ_3R=rC1@>74;;BIQ56IVYfyE{amtr<1Y0wsn z1H@>K@%{o9si(p<319BZy=E@`B^jZ3bn}=`K0_7nutAfHHU5a_2_3e&d;Y>+FANKe z*lCcH{+gU4pK<}}uKY`K>4Hf|vt6m8c4D5P!lNwa3sJ{0#fxf>ZyFYjhMw)K6$1hu zoW$~QTOI}PP~{n38p1qI2}tPPAM+4Ay@_e1)hg!agSko5O5Bt1b*)d%W+v#g9t$na z3AXnfjZHMEI%g9>eZ+TQ(la(T%Sne|{(k_4t&?y<|47ycoz$bc-VqKYs|!4GNhnw_ zRZn07&ni1I+Zc@AGy9@Klw?%~t99!<3GE=oJ!HV~f9cv#ZAT21nJ$$tr436ioqh4M z$xVJQD0!!8-=?6>XvJF(F>=5i+}FKAPS|{|I0H;)`QLpYW01|glwXVDTjS@BG^($T zBkJG2+$mgdo!jM~>!r9e4{4I+_1Iv3K=Gu7*n(3-iMp9DKrq$JSF2FOJh9s_@rWRq z6JT_ey_(4fAzCjAm#4$%y+f^ro&T*{X4H%tfH%bbip|fuuvUE@$C0SvL%oe<2wEDk zxLVHUc^unc8612s%|>n+@vVFFyU(6cm7g`MVKiGKMA}^7+x(S!!qb z5VJswCeu-tXX~3f`^|n|WDSZSiQ7_smbXc|k^9E|YxnL$wWYl)6aQ>|$07cc6@1bw z;U( zp*hTurJEAQa89o7t$jy#oMaQ;2gGp2eO*O@qGT0{A%wG~R=T3r$7{2vu!nOt(J=n^ zbyl~JH-0RQ(0NTbKn35a#21(auag2g8Rxlt+bXx~d!38$ zmC6?OCPku`#pU=?g=vN_mCj6Y~CC5Ks^Cba$80h!+k|83^I0B`KfRd7ou&qhDs z)=`$9{8~MhvlTjldbf&FJt13u!H;G%CutDv2VqKX?}XYIU|T0|>hIQRJdf_y#}r%x zi3lwb;%wCI&U`qIFWBX+4xglj@FN0$;q%-sb8}a~mR7wwVgj$jGh=xw4@kn3GOlmO zB;jcc8x!CL7CcKtqp-FSXlQS|P_Id-!y&g|jpLCMOz8S@6{X@vW@WNSkW!-(>xsR~ z1DITs8lvGk!QxYH7~1v0F|EP8AREn_XIRIDIgl&`?#aWh#IAT?#KLipEUdd?^&cRr za(pKCuFHxE*Ma)qDbv3Nx^C*Z|Gg%>@mEwd0r}5tH2v(XoM*E0WMP0$v`@ovMnE*n?;yB;$YNK zS!WW`zD|YMt6-6U*dzS;;NcHj*D0UMXBae`LXVvI)2}By2$#Z8%iUvqxlihUXmR16 zyTi~vH=O+I`vw`M^SWvS4;M6A8lVtDLzXxM)y-Fy`{bgp&+V`Uh8O5iWLRgjO1%p_ z(GPqf$EOe06xiE`YGI~2Pf%{A?I^Jr96WV_sl(Q6KAs~9KxF$lUjE8y=C-KbhU@l<|mVJCw$pQj4~ zBr5{5+vF@O30YW{7o>l;rPUTX^U_8RY{{-_n{4#cNgbIr*EjQz%iEQge4g~G^ElQL zORgIq)Spub!;j?b8xH)X(6e~Hyh(HR0zAaU-$@xyDABh=dTf5O^jPVoG>+TB8=6AX zwKAIYvVssea6w~3ESe-uV5|3Ko@Z`XZEzyDo{pjNH%unT`BZgC>4&%slb6MI@mh

>LdgYAT0% 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 literal 0 HcmV?d00001 diff --git a/modules/control/units/xs_pipe.py b/modules/control/units/xs_pipe.py index 7e717b542..30cd8cef0 100644 --- a/modules/control/units/xs_pipe.py +++ b/modules/control/units/xs_pipe.py @@ -26,8 +26,7 @@ from diffusers.loaders import FromSingleFileMixin, LoraLoaderMixin, StableDiffus from diffusers.models import AutoencoderKL, UNet2DConditionModel from diffusers.models.attention_processor import ( AttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, + FusedAttnProcessor2_0, XFormersAttnProcessor, ) from diffusers.models.lora import adjust_lora_scale_text_encoder @@ -652,8 +651,7 @@ class StableDiffusionXLControlNetXSPipeline( ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/modules/pag/pipe_sdxl.py b/modules/pag/pipe_sdxl.py index 429384ea3..82ae06c07 100644 --- a/modules/pag/pipe_sdxl.py +++ b/modules/pag/pipe_sdxl.py @@ -5,7 +5,6 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union import torch import torch.nn.functional as F -from packaging import version from transformers import ( CLIPImageProcessor, @@ -26,8 +25,6 @@ from diffusers.models import AutoencoderKL, ImageProjection, UNet2DConditionMode from diffusers.models.attention_processor import ( AttnProcessor2_0, FusedAttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, XFormersAttnProcessor, ) from diffusers.models.lora import adjust_lora_scale_text_encoder @@ -943,8 +940,6 @@ class StableDiffusionXLPAGPipeline( ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, FusedAttnProcessor2_0, ), ) diff --git a/modules/xadapter/pipeline_sd_xl_adapter.py b/modules/xadapter/pipeline_sd_xl_adapter.py index 65e04ecab..757681972 100644 --- a/modules/xadapter/pipeline_sd_xl_adapter.py +++ b/modules/xadapter/pipeline_sd_xl_adapter.py @@ -24,8 +24,7 @@ from diffusers.loaders import FromSingleFileMixin, LoraLoaderMixin, TextualInver from diffusers.models import AutoencoderKL from diffusers.models.attention_processor import ( AttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, + FusedAttnProcessor2_0, XFormersAttnProcessor, ) from diffusers.schedulers import KarrasDiffusionSchedulers @@ -558,8 +557,7 @@ class StableDiffusionXLAdapterPipeline(DiffusionPipeline, FromSingleFileMixin, L ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/modules/xadapter/pipeline_sd_xl_adapter_controlnet.py b/modules/xadapter/pipeline_sd_xl_adapter_controlnet.py index ddb334568..f0f27fa69 100644 --- a/modules/xadapter/pipeline_sd_xl_adapter_controlnet.py +++ b/modules/xadapter/pipeline_sd_xl_adapter_controlnet.py @@ -30,8 +30,7 @@ from diffusers.models import AutoencoderKL, ControlNetModel from diffusers.models.attention_processor import ( AttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, + FusedAttnProcessor2_0, XFormersAttnProcessor, ) from diffusers.schedulers import KarrasDiffusionSchedulers @@ -572,8 +571,7 @@ class StableDiffusionXLAdapterControlnetPipeline(DiffusionPipeline, FromSingleFi ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/modules/xadapter/pipeline_sd_xl_adapter_controlnet_img2img.py b/modules/xadapter/pipeline_sd_xl_adapter_controlnet_img2img.py index d1cf59033..c2dadfbfc 100644 --- a/modules/xadapter/pipeline_sd_xl_adapter_controlnet_img2img.py +++ b/modules/xadapter/pipeline_sd_xl_adapter_controlnet_img2img.py @@ -31,8 +31,7 @@ from diffusers.models import AutoencoderKL, ControlNetModel from diffusers.models.attention_processor import ( AttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, + FusedAttnProcessor2_0, XFormersAttnProcessor, ) from diffusers.schedulers import KarrasDiffusionSchedulers @@ -571,8 +570,7 @@ class StableDiffusionXLAdapterControlnetI2IPipeline(DiffusionPipeline, FromSingl ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/scripts/demofusion.py b/scripts/demofusion.py index 95e58a74e..f7cdfe543 100644 --- a/scripts/demofusion.py +++ b/scripts/demofusion.py @@ -8,7 +8,7 @@ from transformers import CLIPTextModel, CLIPTextModelWithProjection, CLIPTokeniz from diffusers.image_processor import VaeImageProcessor from diffusers.loaders import FromSingleFileMixin, LoraLoaderMixin, TextualInversionLoaderMixin from diffusers.models import AutoencoderKL, UNet2DConditionModel -from diffusers.models.attention_processor import AttnProcessor2_0, LoRAAttnProcessor2_0, LoRAXFormersAttnProcessor, XFormersAttnProcessor +from diffusers.models.attention_processor import AttnProcessor2_0, FusedAttnProcessor2_0, XFormersAttnProcessor from diffusers.models.lora import adjust_lora_scale_text_encoder from diffusers.schedulers import KarrasDiffusionSchedulers from diffusers.utils import is_accelerate_available, is_accelerate_version @@ -484,8 +484,7 @@ class DemoFusionSDXLPipeline(DiffusionPipeline, FromSingleFileMixin, LoraLoaderM ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/scripts/differential_diffusion.py b/scripts/differential_diffusion.py index b48e0f6e6..36aa17eca 100644 --- a/scripts/differential_diffusion.py +++ b/scripts/differential_diffusion.py @@ -22,8 +22,7 @@ from diffusers.loaders import FromSingleFileMixin, LoraLoaderMixin, TextualInver from diffusers.models import AutoencoderKL, UNet2DConditionModel from diffusers.models.attention_processor import ( AttnProcessor2_0, - LoRAAttnProcessor2_0, - LoRAXFormersAttnProcessor, + FusedAttnProcessor2_0, XFormersAttnProcessor, ) from diffusers.configuration_utils import FrozenDict @@ -631,8 +630,7 @@ class StableDiffusionXLDiffImg2ImgPipeline(DiffusionPipeline, FromSingleFileMixi ( AttnProcessor2_0, XFormersAttnProcessor, - LoRAXFormersAttnProcessor, - LoRAAttnProcessor2_0, + FusedAttnProcessor2_0, ), ) # if xformers or torch_2_0 is used attention block does not need diff --git a/wiki b/wiki index 597b7ac10..2df16d6c3 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 597b7ac107384d6fb0f9352cb079910719a77551 +Subproject commit 2df16d6c3b9cc11f4803acc8ec21ed3b5c1a4e33 From 3d130e0f42983ba5d8314af37218eb5f5137aa51 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 2 Jul 2024 09:36:22 -0400 Subject: [PATCH 17/17] move optimum to try/except block --- CHANGELOG.md | 1 + TODO.md | 1 - modules/onnx_impl/__init__.py | 5 ++--- modules/onnx_impl/pipelines/__init__.py | 5 +---- wiki | 2 +- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32dd6b5d5..2ded1b665 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Change Log for SD.Next TODO: +- - Requires `diffusers==0.30.0` - Alpha Lumina diff --git a/TODO.md b/TODO.md index 0647494dc..fd704b838 100644 --- a/TODO.md +++ b/TODO.md @@ -11,7 +11,6 @@ Main ToDo list can be found at [GitHub projects](https://github.com/users/vladma - diffusers public callbacks - include reference styles - lora: sc lora, dora, etc -- sd3 controlnet: ## Experimental diff --git a/modules/onnx_impl/__init__.py b/modules/onnx_impl/__init__.py index 7e23e72e6..8ca39defa 100644 --- a/modules/onnx_impl/__init__.py +++ b/modules/onnx_impl/__init__.py @@ -3,7 +3,6 @@ import numpy as np import torch import diffusers import onnxruntime as ort -import optimum.onnxruntime initialized = False @@ -201,6 +200,8 @@ def initialize_onnx(): return try: # may fail on onnx import import onnx # pylint: disable=unused-import + import optimum.onnxruntime + optimum.onnxruntime.modeling_diffusion._ORTDiffusionModelPart.to = ORTDiffusionModelPart_to # pylint: disable=protected-access from .execution_providers import ExecutionProvider, TORCH_DEVICE_TO_EP, available_execution_providers if devices.backend == "rocm": TORCH_DEVICE_TO_EP["cuda"] = ExecutionProvider.ROCm @@ -234,8 +235,6 @@ def initialize_onnx(): diffusers.ORTStableDiffusionXLPipeline = diffusers.OnnxStableDiffusionXLPipeline # Huggingface model compatibility diffusers.ORTStableDiffusionXLImg2ImgPipeline = diffusers.OnnxStableDiffusionXLImg2ImgPipeline - optimum.onnxruntime.modeling_diffusion._ORTDiffusionModelPart.to = ORTDiffusionModelPart_to # pylint: disable=protected-access - log.debug(f'ONNX: version={ort.__version__} provider={opts.onnx_execution_provider}, available={available_execution_providers}') except Exception as e: log.error(f'ONNX failed to initialize: {e}') diff --git a/modules/onnx_impl/pipelines/__init__.py b/modules/onnx_impl/pipelines/__init__.py index bb0d9b010..a257ab695 100644 --- a/modules/onnx_impl/pipelines/__init__.py +++ b/modules/onnx_impl/pipelines/__init__.py @@ -4,11 +4,8 @@ import shutil import tempfile from abc import ABCMeta from typing import Type, Tuple, List, Any, Dict -from packaging import version import torch import diffusers -import onnxruntime as ort -import optimum.onnxruntime from installer import log, install from modules import shared from modules.paths import sd_configs_path, models_path @@ -23,7 +20,6 @@ from modules.onnx_impl.execution_providers import ExecutionProvider, EP_TO_NAME, SUBMODELS_SD = ("text_encoder", "unet", "vae_encoder", "vae_decoder",) SUBMODELS_SDXL = ("text_encoder", "text_encoder_2", "unet", "vae_encoder", "vae_decoder",) SUBMODELS_SDXL_REFINER = ("text_encoder_2", "unet", "vae_encoder", "vae_decoder",) - SUBMODELS_LARGE = ("text_encoder_2", "unet",) @@ -37,6 +33,7 @@ class PipelineBase(TorchCompatibleModule, diffusers.DiffusionPipeline, metaclass self.model_type = self.__class__.__name__ def to(self, *args, **kwargs): + import optimum.onnxruntime if self.__class__ == OnnxRawPipeline: # cannot move pipeline which is not preprocessed. return self diff --git a/wiki b/wiki index 2df16d6c3..a9fd0bcb7 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 2df16d6c3b9cc11f4803acc8ec21ed3b5c1a4e33 +Subproject commit a9fd0bcb711184e5df032c99158945e3cbcee72e