diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f0608757..2832fabab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,31 +1,34 @@ # Change Log for SD.Next -## Update for 2025-04-15 +## Update for 2025-04-16 -- [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)*! - see [Nunchaku Wiki](https://github.com/vladmandic/sdnext/wiki/Nunchaku) for details -- **HiDream** optimized offloading and prompt-encode caching - it now works in 12GB VRAM / 26GB RAM! -- fix: NNCF for TE-only quant - -## Update for 2025-04-14 - -- [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** - enable and configure in *settings -> pipeline modifiers -> cfg zero* - experiment with CFGZero support in XYZ-grid -- add **UniPC FlowMatch** scheduler -- **HiDream** add HF gated access auth check -- clenup **CogView3** and **CogView4** model loader -- add explicit offload after encode prompt - configure in *settings -> text encoder -> offload* -- networks: set which networks to skip when scanning civitai - in *settings -> networks -> network scan* - comma-separate list of regex patterns to skip -- ui display reference models with subdued color -- xyz grid support bool -- fix debug logging +- **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)*! + see [Nunchaku Wiki](https://github.com/vladmandic/sdnext/wiki/Nunchaku) for details + - [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** + enable and configure in *settings -> pipeline modifiers -> cfg zero* + experiment with CFGZero support in XYZ-grid +- **Optimizations** + - **HiDream** optimized offloading and prompt-encode caching + it now works in 12GB VRAM / 26GB RAM! + - **CogView3** and **CogView4** model loader optimizations + - add explicit offload after encode prompt + configure in *settings -> text encoder -> offload* +- **Other** + - **HiDream** add HF gated access auth check + - add **UniPC FlowMatch** scheduler + - add **LCM FlowMatch** scheduler + - networks: set which networks to skip when scanning civitai + in *settings -> networks -> network scan* + comma-separate list of regex patterns to skip + - ui display reference models with subdued color + - xyz grid support bool +- **Fixes** + - NNCF for TE-only quant + - HunyuanVideo-I2V with latest transformers + - debug logging ## Update for 2025-04-12 diff --git a/installer.py b/installer.py index 7d9336c5c..a5f8c9479 100644 --- a/installer.py +++ b/installer.py @@ -538,7 +538,7 @@ def check_diffusers(): t_start = time.time() if args.skip_all or args.skip_git or args.experimental: return - sha = 'b6156aafe998eb57902efd3b8cce9a6fde35c1ea' # diffusers commit hash + sha = 'ce1063acfa0cbc2168a7e9dddd4282ab8013b810' # diffusers commit hash pkg = pkg_resources.working_set.by_key.get('diffusers', None) minor = int(pkg.version.split('.')[1] if pkg is not None else 0) cur = opts.get('diffusers_version', '') if minor > 0 else '' diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index 97a6a7b26..f5bde64bd 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -30,6 +30,7 @@ try: HeunDiscreteScheduler, FlowMatchHeunDiscreteScheduler, LCMScheduler, + FlowMatchLCMScheduler, PNDMScheduler, IPNDMScheduler, DDPMScheduler, @@ -103,12 +104,12 @@ config = { 'Heun': { 'use_beta_sigmas': False, 'use_karras_sigmas': False, 'use_exponential_sigmas': False, 'timestep_spacing': 'linspace' }, 'Heun FlowMatch': { 'timestep_spacing': "linspace", 'shift': 1 }, + 'LCM FlowMatch': { 'beta_start': 0.00085, 'beta_end': 0.012, 'beta_schedule': "scaled_linear", 'set_alpha_to_one': True, 'rescale_betas_zero_snr': False, 'thresholding': False, 'timestep_spacing': 'linspace' }, 'DEIS': { 'solver_order': 2, 'thresholding': False, 'sample_max_value': 1.0, 'algorithm_type': "deis", 'solver_type': "logrho", 'lower_order_final': True, 'timestep_spacing': 'linspace', 'use_karras_sigmas': False, 'use_exponential_sigmas': False, 'use_flow_sigmas': False, 'use_beta_sigmas': False }, 'SA Solver': {'predictor_order': 2, 'corrector_order': 2, 'thresholding': False, 'lower_order_final': True, 'use_karras_sigmas': False, 'use_flow_sigmas': False, 'use_exponential_sigmas': False, 'use_beta_sigmas': False, 'timestep_spacing': 'linspace'}, 'DC Solver': { 'beta_start': 0.0001, 'beta_end': 0.02, 'solver_order': 2, 'prediction_type': "epsilon", 'thresholding': False, 'solver_type': 'bh2', 'lower_order_final': True, 'dc_order': 2, 'disable_corrector': [0] }, 'VDM Solver': { 'clip_sample_range': 2.0, }, - 'LCM': { 'beta_start': 0.00085, 'beta_end': 0.012, 'beta_schedule': "scaled_linear", 'set_alpha_to_one': True, 'rescale_betas_zero_snr': False, 'thresholding': False, 'timestep_spacing': 'linspace' }, 'TCD': { 'set_alpha_to_one': True, 'rescale_betas_zero_snr': False, 'beta_schedule': 'scaled_linear' }, 'TDD': { }, 'PeRFlow': { 'prediction_type': 'ddim_eps' }, @@ -179,6 +180,7 @@ samplers_data_diffusers = [ SamplerData('CMSI', lambda model: DiffusionSampler('CMSI', CMStochasticIterativeScheduler, model), [], {}), SamplerData('LCM', lambda model: DiffusionSampler('LCM', LCMScheduler, model), [], {}), + SamplerData('LCM FlowMatch', lambda model: DiffusionSampler('LCM FlowMatch', FlowMatchLCMScheduler, model), [], {}), SamplerData('TCD', lambda model: DiffusionSampler('TCD', TCDScheduler, model), [], {}), SamplerData('TDD', lambda model: DiffusionSampler('TDD', TDDScheduler, model), [], {}), SamplerData('PeRFlow', lambda model: DiffusionSampler('PeRFlow', PeRFlowScheduler, model), [], {}),