From 3cb0ffe4ac0fb5e90004b5764e5822a4a2965e96 Mon Sep 17 00:00:00 2001 From: lllyasviel Date: Mon, 29 Jan 2024 08:18:30 -0800 Subject: [PATCH] Update legacy_preprocessors.py --- .../scripts/legacy_preprocessors.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessors.py b/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessors.py index 9b65644e..72284fb3 100644 --- a/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessors.py +++ b/extensions-builtin/forge_legacy_preprocessors/scripts/legacy_preprocessors.py @@ -10,6 +10,8 @@ # is much more effective and maintainable +import contextlib +from modules_forge.ops import automatic_memory_management from legacy_preprocessors.preprocessor_compiled import legacy_preprocessors from modules_forge.shared import Preprocessor, PreprocessorParameter, add_preprocessor @@ -48,6 +50,23 @@ class LegacyPreprocessor(Preprocessor): else: self.slider_3 = PreprocessorParameter(**legacy_dict['slider_3'], visible=True) + def __call__(self, input_image, resolution, slider_1=None, slider_2=None, slider_3=None, **kwargs): + # Legacy Preprocessors does not have slider 3 + del slider_3 + + if self.unload_function is not None or self.managed_model is not None: + context = contextlib.nullcontext() + else: + context = automatic_memory_management() + + with context: + result = self.call_function(img=input_image, res=resolution, thr_a=slider_1, thr_b=slider_2, **kwargs) + + if self.unload_function is not None: + self.unload_function() + + return result + for k, v in legacy_preprocessors.items(): p = LegacyPreprocessor(v)