From ae8d559b506fabbea5fa0294354e1577d9c5ac1a Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 16 Aug 2026 18:15:59 +0200 Subject: [PATCH] swtich to igwn-segments Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 1 + modules/control/run.py | 4 ++-- scripts/mixture_of_diffusers.py | 4 ++-- scripts/mixture_tiling.py | 31 ++++++++++++------------------- scripts/mod/__init__.py | 8 +++++--- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f0ca2728..4915ccbe5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ - log: processing stats reporting - metadata: image metadata handle correct image index - gguf: transformer loader + - scripts: mixture-of-diffusers and mixture-tiling update to use igwn-segments ## Update for 2026-08-07 diff --git a/modules/control/run.py b/modules/control/run.py index e84bb5fa0..1157bb276 100644 --- a/modules/control/run.py +++ b/modules/control/run.py @@ -823,8 +823,8 @@ def control_run(state: str = '', # pylint: disable=keyword-arg-before-vararg debug_log(f'Control: pipeline units={len(active_model)} process={len(active_process)} outputs={len(output_images)}') except Exception as e: - log.error(f'Control: type={unit_type} units={len(active_model)} {e}') - errors.display(e, 'Control') + log.error(f'Generate: {e}') + errors.display(e, 'Generate') if len(output_images) == 0: output_images = None diff --git a/scripts/mixture_of_diffusers.py b/scripts/mixture_of_diffusers.py index 601133590..83945f8a7 100644 --- a/scripts/mixture_of_diffusers.py +++ b/scripts/mixture_of_diffusers.py @@ -69,9 +69,9 @@ class MoDScript(scripts_manager.Script): def check_dependencies(self): from installer import install - install('ligo-segments') + install('igwn-segments') try: - from ligo.segments import segment # pylint: disable=unused-import + from igwn_segments import segment # pylint: disable=unused-import return True except Exception as e: log.error(f'MoD: {e}') diff --git a/scripts/mixture_tiling.py b/scripts/mixture_tiling.py index cdeb93fcd..5cf4482f8 100644 --- a/scripts/mixture_tiling.py +++ b/scripts/mixture_tiling.py @@ -4,22 +4,6 @@ from modules import shared, devices, scripts_manager, processing, sd_models from modules.logger import log -checked_ok = False - - -def check_dependencies(): - global checked_ok # pylint: disable=global-statement - from installer import install - install('ligo-segments') - try: - from ligo.segments import segment # pylint: disable=unused-import - checked_ok = True - return True - except Exception as e: - log.error(f'Mixture tiling: {e}') - return False - - class MixtureTilingScript(scripts_manager.Script): def title(self): return 'Mixture Tiling: Scene Composition' @@ -40,10 +24,19 @@ class MixtureTilingScript(scripts_manager.Script): y_overlap = gr.Slider(label='Y overlap', minimum=0, maximum=1, step=0.01, value=0.5) return x_size, y_size, x_overlap, y_overlap + def check_dependencies(self): + from installer import install + install('igwn-segments') + try: + from igwn_segments import segment # pylint: disable=unused-import + return True + except Exception as e: + log.error(f'Mixture tiling: {e}') + return False + def run(self, p: processing.StableDiffusionProcessing, x_size, y_size, x_overlap, y_overlap): # pylint: disable=arguments-differ - if not checked_ok: - if not check_dependencies(): - return None + if not self.check_dependencies(): + return None prompts = p.prompt.splitlines() if len(prompts) != x_size * y_size: log.error(f'Mixture tiling prompt count mismatch: prompts={len(prompts)} required={x_size * y_size}') diff --git a/scripts/mod/__init__.py b/scripts/mod/__init__.py index e23547dfb..89f5d9fc9 100644 --- a/scripts/mod/__init__.py +++ b/scripts/mod/__init__.py @@ -52,9 +52,9 @@ from diffusers.utils.torch_utils import randn_tensor try: - from ligo.segments import segment + from igwn_segments import segment except ImportError as e: - raise ImportError("Please install transformers and ligo-segments to use the mixture pipeline") from e + raise ImportError("Please install transformers and igwn-segments to use the mixture pipeline") from e if is_torch_xla_available(): import torch_xla.core.xla_model as xm @@ -1138,7 +1138,9 @@ class StableDiffusionXLTilingPipeline( else guidance_scale_tiles[row][col] ) noise_pred_tile = noise_pred_uncond + guidance * (noise_pred_text - noise_pred_uncond) - noise_preds_row.append(noise_pred_tile) + else: + noise_pred_tile = noise_pred + noise_preds_row.append(noise_pred_tile) noise_preds.append(noise_preds_row) # Stitch noise predictions for all tiles