From 36f671551274bec4da16c2d235f184bc63b1808f Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 18 Feb 2024 16:14:24 +0100 Subject: [PATCH 1/2] chore: make steps enums more strict --- modules/flags.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/flags.py b/modules/flags.py index 278f7000..a32056ba 100644 --- a/modules/flags.py +++ b/modules/flags.py @@ -1,4 +1,4 @@ -from enum import Enum +from enum import IntEnum, Enum disabled = 'Disabled' enabled = 'Enabled' @@ -93,13 +93,13 @@ lora_count_with_lcm = lora_count + 1 controlnet_image_count = 4 -class Steps(Enum): +class Steps(IntEnum): QUALITY = 60 SPEED = 30 EXTREME_SPEED = 8 -class StepsUOV(Enum): +class StepsUOV(IntEnum): QUALITY = 36 SPEED = 18 EXTREME_SPEED = 8 From f93dd6edccb62f9deb0178790d3574afe1155048 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 18 Feb 2024 16:15:39 +0100 Subject: [PATCH 2/2] feat: only override steps if metadata value is not in steps enum or in steps enum and performance is not the same --- modules/meta_parser.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/meta_parser.py b/modules/meta_parser.py index 020dd19f..798bf9d3 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -96,7 +96,8 @@ def get_steps(key: str, fallback: str | None, source_dict: dict, results: list, h = source_dict.get(key, source_dict.get(fallback, default)) assert h is not None h = int(h) - if h not in set(item.value for item in Steps): + # if not in steps or in steps and performance is not the same + if h not in iter(Steps) or Steps(h).name.casefold() != source_dict.get('performance', '').replace(' ', '_').casefold(): results.append(h) return results.append(-1)