add lcm-flowmatch sampler and fix hunyuanvideo-i2v

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-04-16 07:29:41 -04:00
parent 59a8a5cdb0
commit 87defaac61
3 changed files with 32 additions and 27 deletions
+28 -25
View File
@@ -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
+1 -1
View File
@@ -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 ''
+3 -1
View File
@@ -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), [], {}),