diff --git a/.pylintrc b/.pylintrc index 534e7fdce..59f1cb127 100644 --- a/.pylintrc +++ b/.pylintrc @@ -8,33 +8,31 @@ fail-under=10 ignore=CVS ignore-paths=/usr/lib/.*$, modules/apg, + modules/consistory, modules/control/proc, modules/control/units, modules/ctrlx, - modules/dcsolver, modules/dml, modules/ggml, modules/hidiffusion, modules/hijack, + modules/instantir, modules/intel/ipex, modules/intel/openvino, modules/k-diffusion, modules/ldsr, + modules/meissonic, + modules/omnigen, modules/onnx_impl, modules/pag, modules/prompt_parser_xhinker.py, + modules/pulid/eva_clip, modules/rife, + modules/schedulers, modules/taesd, modules/todo, modules/unipc, - modules/vdm, modules/xadapter, - modules/meissonic, - modules/omnigen, - modules/instantir, - modules/consistory, - modules/flowmatch, - modules/pulid/eva_clip, repositories, extensions-builtin/sd-webui-agent-scheduler, extensions-builtin/sd-extension-chainner/nodes, diff --git a/.ruff.toml b/.ruff.toml index 8852729f1..c2d4a6f9a 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -4,32 +4,30 @@ exclude = [ ".ruff_cache", ".vscode", "modules/apg", + "modules/consistory", "modules/control/proc", "modules/control/units", - "modules/dcsolver", "modules/ggml", "modules/hidiffusion", "modules/hijack", + "modules/instantir", "modules/intel/ipex", "modules/intel/openvino", "modules/k-diffusion", "modules/ldsr", + "modules/meissonic", + "modules/omnigen", "modules/pag", "modules/postprocess/aurasr_arch.py", "modules/prompt_parser_xhinker.py", + "modules/pulid/eva_clip", "modules/rife", + "modules/schedulers", "modules/segmoe", "modules/taesd", "modules/todo", "modules/unipc", - "modules/vdm", "modules/xadapter", - "modules/meissonic", - "modules/omnigen", - "modules/instantir", - "modules/consistory", - "modules/flowmatch", - "modules/pulid/eva_clip", "repositories", "extensions-builtin/sd-extension-chainner/nodes", "extensions-builtin/sd-webui-agent-scheduler", diff --git a/CHANGELOG.md b/CHANGELOG.md index dadb63d81..795647a7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Change Log for SD.Next -## Update for 2024-11-17 +## Update for 2024-11-19 -### Highlights for 2024-11-17 +### Highlights for 2024-11-19 *What's New?* @@ -26,7 +26,7 @@ And quite a few more improvements and fixes since the last update - for full det [README](https://github.com/vladmandic/automatic/blob/master/README.md) | [CHANGELOG](https://github.com/vladmandic/automatic/blob/master/CHANGELOG.md) | [WiKi](https://github.com/vladmandic/automatic/wiki) | [Discord](https://discord.com/invite/sd-next-federal-batch-inspectors-1101998836328697867) -### Details for 2024-11-17 +### Details for 2024-11-19 - Docs: - new top-level **info** tab with access to [changelog](https://github.com/vladmandic/automatic/blob/master/CHANGELOG.md) and [wiki](https://github.com/vladmandic/automatic/wiki) diff --git a/modules/flowmatch/__init__.py b/modules/flowmatch/__init__.py deleted file mode 100644 index 5a577cce8..000000000 --- a/modules/flowmatch/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .flowmatch_dpm import FlowMatchDPMSolverMultistepScheduler, FlowMatchDPMSolverMultistepSchedulerOutput diff --git a/modules/dcsolver/__init__.py b/modules/schedulers/scheduler_dc.py similarity index 100% rename from modules/dcsolver/__init__.py rename to modules/schedulers/scheduler_dc.py diff --git a/modules/flowmatch/flowmatch_dpm.py b/modules/schedulers/scheduler_dpm_flowmatch.py similarity index 100% rename from modules/flowmatch/flowmatch_dpm.py rename to modules/schedulers/scheduler_dpm_flowmatch.py diff --git a/modules/tcd/__init__.py b/modules/schedulers/scheduler_tcd.py similarity index 100% rename from modules/tcd/__init__.py rename to modules/schedulers/scheduler_tcd.py diff --git a/modules/vdm/__init__.py b/modules/schedulers/scheduler_vdm.py similarity index 100% rename from modules/vdm/__init__.py rename to modules/schedulers/scheduler_vdm.py diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index 3cf153bf1..370cb767b 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -1,16 +1,16 @@ import os -import copy import re +import copy import inspect +import diffusers from modules import shared, errors from modules import sd_samplers_common -from modules.tcd import TCDScheduler -from modules.dcsolver import DCSolverMultistepScheduler -from modules.vdm import VDMScheduler + debug = shared.log.trace if os.environ.get('SD_SAMPLER_DEBUG', None) is not None else lambda *args, **kwargs: None debug('Trace: SAMPLER') + try: from diffusers import ( CMStochasticIterativeScheduler, @@ -43,17 +43,19 @@ try: KDPM2DiscreteScheduler, KDPM2AncestralDiscreteScheduler, ) - - from modules.flowmatch import FlowMatchDPMSolverMultistepScheduler # pylint: disable=ungrouped-imports - except Exception as e: - import diffusers shared.log.error(f'Diffusers import error: version={diffusers.__version__} error: {e}') if os.environ.get('SD_SAMPLER_DEBUG', None) is not None: errors.display(e, 'Samplers') - -""" -""" +try: + from modules.schedulers.scheduler_tcd import TCDScheduler # pylint: disable=ungrouped-imports + from modules.schedulers.scheduler_dc import DCSolverMultistepScheduler # pylint: disable=ungrouped-imports + from modules.schedulers.scheduler_vdm import VDMScheduler # pylint: disable=ungrouped-imports + from modules.schedulers.scheduler_dpm_flowmatch import FlowMatchDPMSolverMultistepScheduler # pylint: disable=ungrouped-imports +except Exception as e: + shared.log.error(f'Diffusers import error: version={diffusers.__version__} error: {e}') + if os.environ.get('SD_SAMPLER_DEBUG', None) is not None: + errors.display(e, 'Samplers') config = { # beta_start, beta_end are typically per-scheduler, but we don't want them as they should be taken from the model itself as those are values model was trained on @@ -93,7 +95,6 @@ config = { 'SA Solver': {'predictor_order': 2, 'corrector_order': 2, 'thresholding': False, 'lower_order_final': True, 'use_karras_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' },