From fefa1f210d74a1b93bae9721026e382d5593e7e7 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 8 Jun 2026 10:12:17 +0200 Subject: [PATCH] fix sdnq svd Signed-off-by: Vladimir Mandic --- modules/api/gpu.py | 2 +- modules/sdnq/quantizer.py | 2 +- pipelines/ideogram/ideogram4.py | 2 +- pipelines/model_ideogram4.py | 10 +++++++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/api/gpu.py b/modules/api/gpu.py index de6daa1f8..7e8c86142 100644 --- a/modules/api/gpu.py +++ b/modules/api/gpu.py @@ -21,7 +21,7 @@ def get_gpu_smi(): if device is None: try: device = torch.cuda.get_device_name(torch.cuda.current_device()) - log.info(f'GPU monitoring: device={device}') + log.info(f'GPU monitoring: device="{device}"') except Exception: device = '' # per vendor modules diff --git a/modules/sdnq/quantizer.py b/modules/sdnq/quantizer.py index 8509720f5..ccb85b30a 100644 --- a/modules/sdnq/quantizer.py +++ b/modules/sdnq/quantizer.py @@ -287,7 +287,7 @@ def sdnq_quantize_layer_weight_dynamic( svd_up, svd_down = prepare_svd_for_matmul(svd_up, svd_down, False) if use_quantized_matmul: svd_up_t, svd_down_t = svd_up.clone().t_(), svd_down.clone().t_() - svd_up_t, svd_down_t = prepare_svd_for_matmul(svd_up, svd_down, True) + svd_up_t, svd_down_t = prepare_svd_for_matmul(svd_up_t, svd_down_t, True) else: svd_up_t, svd_down_t = None, None except Exception: diff --git a/pipelines/ideogram/ideogram4.py b/pipelines/ideogram/ideogram4.py index 9f2b1e8c1..762acb0a7 100644 --- a/pipelines/ideogram/ideogram4.py +++ b/pipelines/ideogram/ideogram4.py @@ -499,7 +499,7 @@ class Ideogram4Pipeline(DiffusionPipeline): width: int = 2048, num_inference_steps: int = 48, guidance_scale: float | None = None, - guidance_schedule: list[float] | torch.Tensor | None = (7.0,) * 45 + (3.0,) * 3, + guidance_schedule: list[float] | torch.Tensor | None = None, mu: float = 0.0, std: float = 1.5, prompt_upsampling: bool = False, diff --git a/pipelines/model_ideogram4.py b/pipelines/model_ideogram4.py index 5c57e61b6..1e1d5410c 100644 --- a/pipelines/model_ideogram4.py +++ b/pipelines/model_ideogram4.py @@ -14,7 +14,9 @@ def pin_transformers(transformer, unconditional_transformer) -> bool: """ if shared.opts.diffusers_offload_mode != 'balanced' or shared.gpu_memory <= 0 or not shared.opts.model_ideogram4_pin: return False - if transformer is None or unconditional_transformer is None: + if transformer is None or unconditional_transformer is None: # if cg is disabled we dont need to pin + return False + if id(transformer) == id(unconditional_transformer): # if we're using the same transformer for both, no need to pin return False size_gb = sum(p.numel() * p.element_size() for m in (transformer, unconditional_transformer) for p in m.parameters()) / (1024 ** 3) budget_gb = shared.gpu_memory * shared.opts.diffusers_offload_max_gpu_memory @@ -57,12 +59,14 @@ def load_ideogram4(checkpoint_info, diffusers_load_config=None): prompt_enhancer_head = None if shared.opts.model_ideogram4_enable_pe: enhancer_repo_id = "diffusers/qwen3-vl-8b-instruct-lm-head" + pe_load_args, pe_quant_args = model_quant.get_dit_args(diffusers_load_config, module='TE', device_map=True) enhancer_cls = diffusers.Ideogram4PromptEnhancerHead log.debug(f'Load model: enhancer="{enhancer_repo_id}" cls={enhancer_cls.__name__}') prompt_enhancer_head = enhancer_cls.from_pretrained( enhancer_repo_id, - torch_dtype=devices.dtype, - cache_dir=shared.opts.hfcache_dir + cache_dir=shared.opts.hfcache_dir, + **pe_load_args, + **pe_quant_args, ) components['prompt_enhancer_head'] = prompt_enhancer_head