diff --git a/CHANGELOG.md b/CHANGELOG.md index d77346ffc..4583fd8d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ - **Features** - [Nunchaku](https://github.com/mit-han-lab/nunchaku) inference engine with custom **SVDQuant** 4-bit execution - highly experimental and with limited support, but when it works, its magic: **Flux.1 at 5.90 it/s** *(not sec/it)*! + highly experimental and with limited support, but when it works, its magic: **Flux.1 at 6.0 it/s** *(not sec/it)*! see [Nunchaku Wiki](https://github.com/vladmandic/sdnext/wiki/Nunchaku) for installation guide and list of supported models & features - [CFG-Zero](https://github.com/WeichenFan/CFG-Zero-star) new guidance method optimized for flow-matching models implemented for **FLUX.1, HiDream-I1, SD3.x, CogView4, HunyuanVideo, WanAI** @@ -27,10 +27,14 @@ comma-separate list of regex patterns to skip - ui display reference models with subdued color - xyz grid support bool +- **Wiki** + - new Nunchaku page + - updated HiDream, Quantization, NNCF pages - **Fixes** - NNCF with TE-only quant - Quanto with TE/LLM quant - HiDream live preview + - SD35 InstantX IP-adapter - **HunyuanVideo-I2V** with latest transformers - trace logging diff --git a/html/reference.json b/html/reference.json index d7ac2cea5..2f75d032c 100644 --- a/html/reference.json +++ b/html/reference.json @@ -428,13 +428,32 @@ "preview": "THUDM--CogView3-Plus-3B.jpg", "skip": true }, + + "ShuttleAI Shuttle 3.0 Diffusion": { + "path": "shuttleai/shuttle-3-diffusion", + "desc": "Shuttle uses Flux.1 Schnell as its base. It can produce images similar to Flux Dev or Pro in just 4 steps, and it is licensed under Apache 2. The model was partially de-distilled during training. When used beyond 10 steps, it enters refiner mode enhancing image details without altering the composition", + "preview": "shuttleai--shuttle-3-diffusion.jpg", + "skip": true + }, + "ShuttleAI Shuttle 3.1 Aesthetic": { + "path": "shuttleai/shuttle-3.1-aesthetic", + "desc": "Shuttle uses Flux.1 Schnell as its base. It can produce images similar to Flux Dev or Pro in just 4 steps, and it is licensed under Apache 2. The model was partially de-distilled during training. When used beyond 10 steps, it enters refiner mode enhancing image details without altering the composition", + "preview": "shuttleai--shuttle-3-diffusion.jpg", + "skip": true + }, + "ShuttleAI Shuttle Jaguar": { + "path": "shuttleai/shuttle-jaguar", + "desc": "Shuttle uses Flux.1 Schnell as its base. It can produce images similar to Flux Dev or Pro in just 4 steps, and it is licensed under Apache 2. The model was partially de-distilled during training. When used beyond 10 steps, it enters refiner mode enhancing image details without altering the composition", + "preview": "shuttleai--shuttle-3-diffusion.jpg", + "skip": true + }, + "Meissonic": { "path": "MeissonFlow/Meissonic", "desc": "Meissonic is a non-autoregressive mask image modeling text-to-image synthesis model that can generate high-resolution images. It is designed to run on consumer graphics cards.", "preview": "MeissonFlow--Meissonic.jpg", "skip": true }, - "aMUSEd 256": { "path": "huggingface/amused/amused-256", "skip": true, diff --git a/modules/ipadapter.py b/modules/ipadapter.py index aa010c33d..a03381a1b 100644 --- a/modules/ipadapter.py +++ b/modules/ipadapter.py @@ -42,7 +42,7 @@ ADAPTERS_SDXL = { } ADAPTERS_SD3 = { 'None': { 'name': 'none', 'repo': 'none', 'subfolder': 'none' }, - 'InstantX Large': { 'name': 'none', 'repo': 'InstantX/SD3.5-Large-IP-Adapter', 'subfolder': 'none', 'revision': 'refs/pr/10' }, + 'InstantX Large': { 'name': 'ip-adapter_diffusers.safetensors', 'repo': 'InstantX/SD3.5-Large-IP-Adapter', 'subfolder': 'none', 'revision': 'refs/pr/10' }, } ADAPTERS_F1 = { 'None': { 'name': 'none', 'repo': 'none', 'subfolder': 'none' }, diff --git a/modules/model_flux.py b/modules/model_flux.py index 3b123cc20..37ab0d3f8 100644 --- a/modules/model_flux.py +++ b/modules/model_flux.py @@ -112,11 +112,20 @@ def load_quants(kwargs, repo_id, cache_dir, allow_quant): if 'transformer' not in kwargs and model_quant.check_nunchaku('Transformer'): import nunchaku nunchaku_precision = nunchaku.utils.get_precision() - nunchaku_repo = f"mit-han-lab/svdq-{nunchaku_precision}-flux.1-dev" if 'dev' in repo_id else f"mit-han-lab/svdq-{nunchaku_precision}-flux.1-schnell" - shared.log.debug(f'Load module: quant=Nunchaku module=transformer repo="{nunchaku_repo}" precision={nunchaku_precision} attention={shared.opts.nunchaku_attention}') - kwargs['transformer'] = nunchaku.NunchakuFluxTransformer2dModel.from_pretrained(nunchaku_repo, torch_dtype=devices.dtype) - if shared.opts.nunchaku_attention: - kwargs['transformer'].set_attention_impl("nunchaku-fp16") + nunchaku_repo = None + if 'dev' in repo_id: + nunchaku_repo = f"mit-han-lab/svdq-{nunchaku_precision}-flux.1-dev" + elif 'schnell' in repo_id: + nunchaku_repo = f"mit-han-lab/svdq-{nunchaku_precision}-flux.1-schnell" + elif 'shuttle' in repo_id: + nunchaku_repo = 'mit-han-lab/svdq-fp4-shuttle-jaguar' + else: + shared.log.error(f'Load module: quant=Nunchaku module=transformer repo="{repo_id}" unsupported') + if nunchaku_repo is not None: + shared.log.debug(f'Load module: quant=Nunchaku module=transformer repo="{nunchaku_repo}" precision={nunchaku_precision} attention={shared.opts.nunchaku_attention}') + kwargs['transformer'] = nunchaku.NunchakuFluxTransformer2dModel.from_pretrained(nunchaku_repo, torch_dtype=devices.dtype) + if shared.opts.nunchaku_attention: + kwargs['transformer'].set_attention_impl("nunchaku-fp16") elif 'transformer' not in kwargs and model_quant.check_quant('Transformer'): quant_args = model_quant.create_config(allow=allow_quant, module='Transformer') if quant_args: diff --git a/wiki b/wiki index 30def46ed..c586c1d9c 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 30def46ed4d39a573062be4b615503cee8ba83f2 +Subproject commit c586c1d9c485775d33ba4dde145f8d98462cf3aa