From ff649291b5f7ed11afb06dd17ad685faad760cb4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 28 Apr 2025 10:55:21 -0400 Subject: [PATCH] lint fixes Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 14 +++++++++++++- TODO.md | 28 +++++++++++++++------------- extensions-builtin/sdnext-modernui | 2 +- modules/lora/lora_extract.py | 2 +- modules/lora/lora_load.py | 5 ++--- modules/sd_models_utils.py | 2 +- modules/shared.py | 2 +- 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ee9f987f..39521df22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,18 @@ # Change Log for SD.Next -## Update for 2025-04-27 +## Highlights for 2025-04-28 + +Another major release with *over 120 commits*! +Highlights include **Nunchaku** inference engine that allows running FLUX.1 3-5x higher performance! +And a new **FramePack** extension for high-quality *I2V* and *FLF2V* video generation with unlimited duration and limited VRAM! + +What else? +- New UI **History** tab +- New models: **Flex.2, LTXVideo-0.9.6, WAN-2.1-14B-FLF2V**, schedulers: **UniPC and LCM FlowMatch**, features: **CFGZero** +- Major updates to: **NNCF, OpenVINO, ROCm, ZLUDA** +- Cumulative fixes since last release + +## Details for 2025-04-28 - **Features** - [Nunchaku](https://github.com/mit-han-lab/nunchaku) inference engine with custom **SVDQuant** 4-bit execution diff --git a/TODO.md b/TODO.md index 6af2839a0..c1e467642 100644 --- a/TODO.md +++ b/TODO.md @@ -24,22 +24,24 @@ N/A > pnpm lint | grep W0511 | awk -F'TODO ' '{print "- "$NF}' | sed 's/ (fixme)//g' -- install: enable ROCm for windows when available -- resize image: enable full VAE mode for resize-latent -- infotext: handle using regex instead -- fc: autodetect tensor format based on model +- control: support scripts via api - fc: autodetect distilled based on model -- processing: remove duplicate mask params -- model loader: implement model in-memory caching -- custom: load receipe -- custom: save receipe +- fc: autodetect tensor format based on model +- hidream: pack latents for remote vae - hypertile: vae breaks when using non-standard sizes -- model load: force-reloading entire model as loading transformers only leads to massive memory usage +- infotext: handle using regex instead +- install: enable ROCm for windows when available +- loader: load receipe +- loader: save receipe - lora: add other quantization types - lora: maybe force imediate quantization -- modules/lora/lora_extract.py:185:9: W0511: TODO: lora support pre-quantized flux -- control: support scripts via api +- lora: add t5 key support for sd35/f16 +- lora: support pre-quantized flux +- model load: force-reloading entire model as loading transformers only leads to massive memory usage +- model loader: implement model in-memory caching - modernui: monkey-patch for missing tabs.select event -- nunchaku: cache-dir for transformer and t5 loader - nunchaku: batch support -- nunchaku: LoRA support +- nunchaku: cache-dir for transformer and t5 loader +- processing: remove duplicate mask params +- resize image: enable full VAE mode for resize-latent + \ No newline at end of file diff --git a/extensions-builtin/sdnext-modernui b/extensions-builtin/sdnext-modernui index 384c70fda..95e757534 160000 --- a/extensions-builtin/sdnext-modernui +++ b/extensions-builtin/sdnext-modernui @@ -1 +1 @@ -Subproject commit 384c70fda14468af4f49959a87d902f0c9fae0a1 +Subproject commit 95e757534cfeb3c8536260c6d20ea96a75b9d533 diff --git a/modules/lora/lora_extract.py b/modules/lora/lora_extract.py index 597b20d72..4bd3a3adb 100644 --- a/modules/lora/lora_extract.py +++ b/modules/lora/lora_extract.py @@ -182,7 +182,7 @@ def make_lora(fn, maxrank, auto_rank, rank_ratio, modules, overwrite): progress.remove_task(task) t3 = time.time() - # TODO: lora support pre-quantized flux + # TODO: lora: support pre-quantized flux # if 'te' in modules and getattr(shared.sd_model, 'transformer', None) is not None: # for name, module in shared.sd_model.transformer.named_modules(): # if "norm" in name and "linear" not in name: diff --git a/modules/lora/lora_load.py b/modules/lora/lora_load.py index 84a0c01b7..f02e4a274 100644 --- a/modules/lora/lora_load.py +++ b/modules/lora/lora_load.py @@ -119,7 +119,7 @@ def load_safetensors(name, network_on_disk) -> Union[network.Network, None]: if key_network_without_network_parts.startswith("unet") or key_network_without_network_parts.startswith("transformer"): key_network_without_network_parts = "lora_" + key_network_without_network_parts key_network_without_network_parts = key_network_without_network_parts.replace("clip_g","lora_te2").replace("clip_l","lora_te") - #TODO Add t5 key support for SD3.5/f1 here? + # TODO lora: add t5 key support for sd35/f1 elif len(parts) > 5: # messy handler for diffusers peft lora key_network_without_network_parts = '_'.join(parts[:-2]) @@ -148,8 +148,7 @@ def load_safetensors(name, network_on_disk) -> Union[network.Network, None]: if net_module is not None: network_types.append(nettype.__class__.__name__) break - else: - module_errors += 1 + module_errors += 1 if net_module is None: if l.debug: shared.log.error(f'LoRA unhandled: name={name} key={key} weights={weights.w.keys()}') diff --git a/modules/sd_models_utils.py b/modules/sd_models_utils.py index 0a9ca7458..2f10ad074 100644 --- a/modules/sd_models_utils.py +++ b/modules/sd_models_utils.py @@ -7,7 +7,7 @@ from rich import progress # pylint: disable=redefined-builtin import torch import safetensors.torch -from modules import paths, shared, devices, errors +from modules import paths, shared, errors from modules.sd_checkpoint import CheckpointInfo, select_checkpoint, list_models, checkpoints_list, checkpoint_titles, get_closet_checkpoint_match, model_hash, update_model_hashes, setup_model, write_metadata, read_metadata_from_safetensors # pylint: disable=unused-import from modules.sd_offload import disable_offload, set_diffuser_offload, apply_balanced_offload, set_accelerate # pylint: disable=unused-import from modules.sd_models_legacy import get_checkpoint_state_dict, load_model_weights, load_model, repair_config # pylint: disable=unused-import diff --git a/modules/shared.py b/modules/shared.py index 78f90cea7..611a96831 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -20,7 +20,7 @@ from modules.onnx_impl import execution_providers from modules.memstats import memory_stats, ram_stats # pylint: disable=unused-import from modules.interrogate.openclip import caption_models, caption_types, get_clip_models, refresh_clip_models, category_types from modules.interrogate.vqa import vlm_models, vlm_prompts, vlm_system -from modules.ui_components import DropdownEditable, DropdownMulti +from modules.ui_components import DropdownEditable from modules.options import OptionInfo import modules.memmon import modules.styles