From d933f9837379d0a6e6d78bf934de4e8ced770403 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 18 Jun 2024 14:34:35 -0400 Subject: [PATCH] update changelog --- CHANGELOG.md | 36 +++++++++----------- extensions-builtin/Lora/network_overrides.py | 5 +-- extensions-builtin/Lora/networks.py | 6 ++++ 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1167844ef..398481614 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,44 +2,40 @@ ## Pending -- SC Lora -- HunyuanDiT 1.1 - Diffusers==0.30.0 - https://github.com/huggingface/diffusers/issues/8546 - https://github.com/huggingface/diffusers/pull/8566 - https://github.com/huggingface/diffusers/pull/8584 -## Update for 2024-06-17 +## Update for 2024-06-18 -### Highlights for 2024-06-17 +### Highlights for 2024-06-18 Following zero-day **SD3** release, a week later here's a refresh with more than a few improvements. But there's more than SD3: - support for **PixArt-Sigma** in small/medium/large variants AND using 4/8/16bit quantized T5 text-encoder! +- support for **HunyuanDiT 1.1** - (finally) new release of **Torch-DirectML** -### Models +### Model Improvements -#### Stable Diffusion 3 - -- enable taesd preview and non-full quality mode -- enable base LoRA support -- add support for 4bit quantized t5 text encoder +- **SD3**: enable tiny-VAE (TAESD) preview and non-full quality mode +- SD3: enable base LoRA support +- SD3: add support for 4bit quantized T5 text encoder simply select in *settings -> model -> text encoder* -- simplified loading of model in single-file safetensors format +- SD3: simplified loading of model in single-file safetensors format loading sd3 can now be performed fully offline -- add support for nncf compressed weights, thanks @Disty0! -- add support for sampler shift for Euler FlowMatch +- SD3: add support for nncf compressed weights, thanks @Disty0! +- SD3: add support for sampler shift for Euler FlowMatch see *settings -> samplers*, also available as param in xyz grid higher shift means model will spend more time on structure and less on details -- add support for selecting text encoder in xyz grid - -#### Pixart-Σ - -- Add *small* (512px) and *large* (2k) variations, in addition to existing *medium* (1k) -- Add support for 4/8bit quantized t5 text encoder +- SD3: add support for selecting text encoder in xyz grid +- **Pixart-Σ**: Add *small* (512px) and *large* (2k) variations, in addition to existing *medium* (1k) +- Pixart-Σ: Add support for 4/8bit quantized t5 text encoder *note* by default pixart-Σ uses full fp16 t5 encoder with large memory footprint simply select in *settings -> model -> text encoder* before or after model load +- **HunyuanDiT**: support for model version 1.1 + ### Improvements: General @@ -58,7 +54,7 @@ But there's more than SD3: - fix unsaturated outputs, force apply vae config on model load - fix hidiffusion handling of non-square aspect ratios, thanks @ShenZhang-Shin! - fix control second pass resize -- fix **hunyuandit** set attention processor +- fix hunyuandit set attention processor - fix civitai download without name - fix compatibility with latest adetailer - fix invalid sampler warning diff --git a/extensions-builtin/Lora/network_overrides.py b/extensions-builtin/Lora/network_overrides.py index dacecd0bd..14018fb70 100644 --- a/extensions-builtin/Lora/network_overrides.py +++ b/extensions-builtin/Lora/network_overrides.py @@ -26,9 +26,6 @@ force_diffusers = [ # forced always force_models = [ # forced always 'sd3', - 'sc', - 'hunyuandit', - 'kandinsky', ] force_classes = [ # forced always @@ -37,7 +34,7 @@ force_classes = [ # forced always def check_override(shorthash=''): force = False - force = force or (shared.sd_model_type in force_classes) + force = force or (shared.sd_model_type in force_models) force = force or (shared.sd_model.__class__.__name__ in force_classes) if len(shorthash) < 4: return force diff --git a/extensions-builtin/Lora/networks.py b/extensions-builtin/Lora/networks.py index 574b223bf..3ebad5f17 100644 --- a/extensions-builtin/Lora/networks.py +++ b/extensions-builtin/Lora/networks.py @@ -49,6 +49,7 @@ def assign_network_names_to_compvis_modules(sd_model): network_layer_mapping = {} if shared.native: if not hasattr(shared.sd_model, 'text_encoder') or not hasattr(shared.sd_model, 'unet'): + sd_model.network_layer_mapping = {} return for name, module in shared.sd_model.text_encoder.named_modules(): prefix = "lora_te1_" if shared.sd_model_type == "sdxl" else "lora_te_" @@ -66,6 +67,7 @@ def assign_network_names_to_compvis_modules(sd_model): module.network_layer_name = network_name else: if not hasattr(shared.sd_model, 'cond_stage_model'): + sd_model.network_layer_mapping = {} return for name, module in shared.sd_model.cond_stage_model.wrapped.named_modules(): network_name = name.replace(".", "_") @@ -87,10 +89,14 @@ def load_diffusers(name, network_on_disk, lora_scale=1.0) -> network.Network: return cached if not shared.native: return None + if not hasattr(shared.sd_model, 'load_lora_weights'): + shared.log.error(f"LoRA load failed: class={shared.sd_model.__class__} does not implement load lora") + return None try: shared.sd_model.load_lora_weights(network_on_disk.filename) except Exception as e: errors.display(e, "LoRA") + return None if shared.opts.lora_fuse_diffusers: shared.sd_model.fuse_lora(lora_scale=lora_scale) net = network.Network(name, network_on_disk)