Spaces:
Runtime error
Runtime error
import importlib | |
utils = importlib.import_module("extensions.sd-webui-controlnet.tests.utils", "utils") | |
from scripts.global_state import select_control_type, ui_preprocessor_keys | |
from scripts.enums import StableDiffusionVersion | |
dummy_value = "dummy" | |
cn_models = { | |
"None": dummy_value, | |
"canny_sd15": dummy_value, | |
"canny_sdxl": dummy_value, | |
} | |
# Tests for the select_control_type function | |
class TestSelectControlType: | |
def test_all_control_type(self): | |
result = select_control_type("All", cn_models=cn_models) | |
assert result == ( | |
[ui_preprocessor_keys, list(cn_models.keys()), "none", "None"] | |
), "Expected all preprocessors and models" | |
def test_sd_version(self): | |
(_, filtered_model_list, _, default_model) = select_control_type( | |
"Canny", sd_version=StableDiffusionVersion.UNKNOWN, cn_models=cn_models | |
) | |
assert filtered_model_list == [ | |
"None", | |
"canny_sd15", | |
"canny_sdxl", | |
], "UNKNOWN sd version should match all models" | |
assert default_model == "canny_sd15" | |
(_, filtered_model_list, _, default_model) = select_control_type( | |
"Canny", sd_version=StableDiffusionVersion.SD1x, cn_models=cn_models | |
) | |
assert filtered_model_list == [ | |
"None", | |
"canny_sd15", | |
], "sd1x version should only sd1x" | |
assert default_model == "canny_sd15" | |
(_, filtered_model_list, _, default_model) = select_control_type( | |
"Canny", sd_version=StableDiffusionVersion.SDXL, cn_models=cn_models | |
) | |
assert filtered_model_list == [ | |
"None", | |
"canny_sdxl", | |
], "sdxl version should only sdxl" | |
assert default_model == "canny_sdxl" | |
def test_invert_preprocessor(self): | |
for control_type in ("Canny", "Lineart", "Scribble/Sketch", "MLSD"): | |
filtered_preprocessor_list, _, _, _ = select_control_type( | |
control_type, cn_models=cn_models | |
) | |
assert any( | |
"invert" in module.lower() for module in filtered_preprocessor_list | |
) | |
def test_no_module_available(self): | |
(_, filtered_model_list, _, default_model) = select_control_type( | |
"Depth", cn_models=cn_models | |
) | |
assert filtered_model_list == ["None"] | |
assert default_model == "None" | |