From 09889797a377cb6045056dcd4eed309b8a058ea8 Mon Sep 17 00:00:00 2001 From: lllyasviel Date: Sun, 28 Jan 2024 17:26:29 -0800 Subject: [PATCH] Update legacy_preprocessor_loader.py --- .../scripts/legacy_preprocessor_loader.py | 63 ++++++++++++++----- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessor_loader.py b/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessor_loader.py index ec7f0195..6803835d 100644 --- a/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessor_loader.py +++ b/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessor_loader.py @@ -11,26 +11,57 @@ from legacy_preprocessors.preprocessor_meta import cn_preprocessor_modules, cn_p from legacy_preprocessors.preprocessor import model_free_preprocessors, no_control_mode_preprocessors, flag_preprocessor_resolution, preprocessor_sliders_config, preprocessor_filters, preprocessor_filters_aliases -class LegacyPreprocessor(Preprocessor): - def __init__(self): - super().__init__() - self.legacy_call_function = None - self.legacy_unload_function = None - return +def special_get(d, k, default=None): + k1 = k + k2 = preprocessor_filters_aliases.get(k, k) + k3 = reverse_preprocessor_aliases.get(k, k) + + for pk in [k1, k2, k3]: + if pk in d: + return d[pk] + + return default + + +def special_judge_in(d, k): + k1 = k + k2 = preprocessor_filters_aliases.get(k, k) + k3 = reverse_preprocessor_aliases.get(k, k) + + for pk in [k1, k2, k3]: + if pk in d: + return True + + return False legacy_preprocessors = {} -for k in ui_preprocessor_keys: - p = LegacyPreprocessor() - p.name = k - real_key = reverse_preprocessor_aliases.get(k, k) - if real_key not in cn_preprocessor_modules: - print(f'bad key {real_key}') - continue - p.legacy_call_function = cn_preprocessor_modules[real_key] - p.legacy_unload_function = cn_preprocessor_unloadable.get(real_key, lambda: None) - legacy_preprocessors[k] = p +for name in ui_preprocessor_keys: + call_function = special_get(cn_preprocessor_modules, name, None) + assert call_function is not None + unload_function = special_get(cn_preprocessor_unloadable, name, None) + + model_free = special_judge_in(model_free_preprocessors, name) + no_control_mode = special_judge_in(no_control_mode_preprocessors, name) + slider_config = special_get(preprocessor_sliders_config, name, []) + + resolution = slider_config[0] if len(slider_config) > 0 else None + slider_1 = slider_config[1] if len(slider_config) > 1 else None + slider_2 = slider_config[2] if len(slider_config) > 2 else None + slider_3 = slider_config[3] if len(slider_config) > 3 else None + + legacy_preprocessors[name] = dict( + name=name, + call_function=call_function, + unload_function=unload_function, + model_free=model_free, + no_control_mode=no_control_mode, + resolution=resolution, + slider_1=slider_1, + slider_2=slider_2, + slider_3=slider_3 + ) a = 0