From f2b1ee09d441790418b3bb593f3f5da42678f2c2 Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Sat, 3 Feb 2024 04:17:18 +0000 Subject: [PATCH] Filter ControlNet model based on active SD's version (#32) --- .../sd_forge_controlnet/lib_controlnet/global_state.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/extensions-builtin/sd_forge_controlnet/lib_controlnet/global_state.py b/extensions-builtin/sd_forge_controlnet/lib_controlnet/global_state.py index 21be8a04..f3f615a4 100644 --- a/extensions-builtin/sd_forge_controlnet/lib_controlnet/global_state.py +++ b/extensions-builtin/sd_forge_controlnet/lib_controlnet/global_state.py @@ -98,12 +98,18 @@ def get_filtered_preprocessor_names(tag): return list(get_filtered_preprocessors(tag).keys()) -def get_filtered_controlnet_names(tag): +def get_filtered_controlnet_names(tag, filter_version: bool = True): filtered_preprocessors = get_filtered_preprocessors(tag) model_filename_filters = [] for p in filtered_preprocessors.values(): model_filename_filters += p.model_filename_filters - return [x for x in controlnet_names if any(f.lower() in x.lower() for f in model_filename_filters) or x == 'None'] + return [ + x for x in controlnet_names + if x == 'None' or ( + any(f.lower() in x.lower() for f in model_filename_filters) and + get_sd_version().is_compatible_with(StableDiffusionVersion.detect_from_model_name(x)) + ) + ] def update_controlnet_filenames():