From 1d8551788adda95eb9d8df45d7682f33cb229815 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 27 Jun 2025 17:02:25 -0400 Subject: [PATCH] update changelog and cleanup samplers Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 5 +-- modules/sd_samplers_diffusers.py | 54 +++++++++++++------------------- wiki | 2 +- 3 files changed, 25 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e90bf3a..ec1c40e63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,16 +34,17 @@ - Control move global settings to control elements -> control settings tab - Control add setting to run hires with or without control - Update OpenVINO to 2025.2.0 + - Simplified and unified quantization enabled for options - **SDNQ Quantization** + - Add `auto` quantization mode - Add `modules_to_not_convert` support for post mode + - Improve offload compatibility - Fix Qwen 2.5 with int8 matmul - Fix Dora loading - Remove per layer GC - - Improve offload compatibility - Add support for XYZ grid to test quantization modes *note*: you need to enable quantization and choose what it applies on, then xyz grid can change quantization mode *note*: you can also enable 'add time info' to compare performance of different quantization modes - - Add `auto` quantization mode - **API** - Add `/sdapi/v1/lora?lora=` endpoint that returns full lora info and metadata - Add `/sdapi/v1/controlnets?model_type=` endpoints that returns list of available controlnets for specific model type diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index f151ab151..8df2d0dbd 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -13,30 +13,30 @@ debug_log = shared.log.trace if debug else lambda *args, **kwargs: None try: from diffusers import ( CMStochasticIterativeScheduler, - UniPCMultistepScheduler, - DDIMScheduler, - EulerDiscreteScheduler, - EulerAncestralDiscreteScheduler, - EDMEulerScheduler, - FlowMatchEulerDiscreteScheduler, - DEISMultistepScheduler, - SASolverScheduler, - DPMSolverSinglestepScheduler, - DPMSolverMultistepScheduler, - DPMSolverMultistepInverseScheduler, - EDMDPMSolverMultistepScheduler, CosineDPMSolverMultistepScheduler, - DPMSolverSDEScheduler, - HeunDiscreteScheduler, - FlowMatchHeunDiscreteScheduler, - LCMScheduler, - FlowMatchLCMScheduler, - PNDMScheduler, - IPNDMScheduler, + DDIMScheduler, DDPMScheduler, - LMSDiscreteScheduler, - KDPM2DiscreteScheduler, + DEISMultistepScheduler, + DPMSolverMultistepInverseScheduler, + DPMSolverMultistepScheduler, + DPMSolverSDEScheduler, + DPMSolverSinglestepScheduler, + EDMDPMSolverMultistepScheduler, + EDMEulerScheduler, + EulerAncestralDiscreteScheduler, + EulerDiscreteScheduler, + FlowMatchEulerDiscreteScheduler, + FlowMatchHeunDiscreteScheduler, + FlowMatchLCMScheduler, + HeunDiscreteScheduler, + IPNDMScheduler, KDPM2AncestralDiscreteScheduler, + KDPM2DiscreteScheduler, + LCMScheduler, + LMSDiscreteScheduler, + PNDMScheduler, + SASolverScheduler, + UniPCMultistepScheduler, ) except Exception as e: shared.log.error(f'Sampler import: version={diffusers.__version__} error: {e}') @@ -52,10 +52,6 @@ try: from modules.schedulers.scheduler_ufogen import UFOGenScheduler # pylint: disable=ungrouped-imports from modules.schedulers.scheduler_unipc_flowmatch import FlowUniPCMultistepScheduler # pylint: disable=ungrouped-imports from modules.perflow import PeRFlowScheduler # pylint: disable=ungrouped-imports - # from modules.schedulers.scheduler_kohaku import KohakuLoNyuYogScheduler # pylint: disable=ungrouped-imports - # from modules.schedulers.scheduler_smea import SMEAScheduler # pylint: disable=ungrouped-imports - # from modules.schedulers.scheduler_dy import DYScheduler # pylint: disable=ungrouped-imports - # from modules.schedulers.scheduler_negative import EulerNegativeScheduler # pylint: disable=ungrouped-imports except Exception as e: shared.log.error(f'Sampler import: version={diffusers.__version__} error: {e}') if os.environ.get('SD_SAMPLER_DEBUG', None) is not None: @@ -74,10 +70,6 @@ config = { 'Euler SGM': { 'steps_offset': 0, 'interpolation_type': "linear", 'rescale_betas_zero_snr': False, 'final_sigmas_type': 'zero', 'timestep_spacing': 'trailing', 'use_beta_sigmas': False, 'use_exponential_sigmas': False, 'use_karras_sigmas': False, 'prediction_type': "sample" }, 'Euler EDM': { 'sigma_schedule': "karras" }, 'Euler FlowMatch': { 'timestep_spacing': "linspace", 'shift': 1, 'use_dynamic_shifting': False, 'use_karras_sigmas': False, 'use_exponential_sigmas': False, 'use_beta_sigmas': False }, - # 'Euler SMEA': {}, - # 'Euler DY': {}, - # 'Euler Negative': {}, - # 'Kohaku LoNyu': {}, 'DPM++': { 'thresholding': False, 'sample_max_value': 1.0, 'algorithm_type': "dpmsolver++", 'solver_type': "midpoint", 'lower_order_final': True, 'use_karras_sigmas': False, 'use_exponential_sigmas': False, 'use_flow_sigmas': False, 'use_beta_sigmas': False, 'use_lu_lambdas': False, 'final_sigmas_type': 'zero', 'timestep_spacing': 'linspace', 'solver_order': 1 }, 'DPM++ 2M': { 'thresholding': False, 'sample_max_value': 1.0, 'algorithm_type': "dpmsolver++", 'solver_type': "midpoint", 'lower_order_final': True, 'use_karras_sigmas': False, 'use_exponential_sigmas': False, 'use_flow_sigmas': False, 'use_beta_sigmas': False, 'use_lu_lambdas': False, 'final_sigmas_type': 'zero', 'timestep_spacing': 'linspace', 'solver_order': 2 }, @@ -135,9 +127,6 @@ samplers_data_diffusers = [ SamplerData('Euler SGM', lambda model: DiffusionSampler('Euler SGM', EulerDiscreteScheduler, model), [], {}), SamplerData('Euler EDM', lambda model: DiffusionSampler('Euler EDM', EDMEulerScheduler, model), [], {}), SamplerData('Euler FlowMatch', lambda model: DiffusionSampler('Euler FlowMatch', FlowMatchEulerDiscreteScheduler, model), [], {}), - # SamplerData('Euler SMEA', lambda model: DiffusionSampler('Euler SMEA', SMEAScheduler, model), [], {}), - # SamplerData('Euler DY', lambda model: DiffusionSampler('Euler DY', DYScheduler, model), [], {}), - # SamplerData('Euler Negative', lambda model: DiffusionSampler('Euler Negative', EulerNegativeScheduler, model), [], {}), SamplerData('DPM++', lambda model: DiffusionSampler('DPM++', DPMSolverMultistepScheduler, model), [], {}), SamplerData('DPM++ 2M', lambda model: DiffusionSampler('DPM++ 2M', DPMSolverMultistepScheduler, model), [], {}), @@ -185,7 +174,6 @@ samplers_data_diffusers = [ SamplerData('TDD', lambda model: DiffusionSampler('TDD', TDDScheduler, model), [], {}), SamplerData('PeRFlow', lambda model: DiffusionSampler('PeRFlow', PeRFlowScheduler, model), [], {}), SamplerData('UFOGen', lambda model: DiffusionSampler('UFOGen', UFOGenScheduler, model), [], {}), - # SamplerData('Kohaku LoNyu', lambda model: DiffusionSampler('Kohaku LoNyu', KohakuLoNyuYogScheduler, model), [], {}), SamplerData('Same as primary', None, [], {}), ] diff --git a/wiki b/wiki index 706852830..c1ae36ab4 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 7068528301f5f1304f5e096291a9d014dce13c96 +Subproject commit c1ae36ab4c2197487306c5c9fe4e328a038d1367