mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
+13
-1
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Submodule extensions-builtin/sdnext-modernui updated: 384c70fda1...95e757534c
@@ -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:
|
||||
|
||||
@@ -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()}')
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user