Spaces:
Runtime error
Runtime error
import pytest | |
from .template import ( | |
APITestTemplate, | |
girl_img, | |
mask_img, | |
disable_in_cq, | |
get_model, | |
console_log_context, | |
) | |
def test_no_unit(gen_type): | |
assert APITestTemplate( | |
f"test_no_unit{gen_type}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides=[], | |
input_image=girl_img, | |
).exec() | |
def test_unrecognized_param(gen_type): | |
assert APITestTemplate( | |
f"test_unrecognized_param_{gen_type}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides={ | |
"foo": True, | |
"is_ui": False, | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_multiple_iter(gen_type): | |
assert APITestTemplate( | |
f"test_multiple_iter{gen_type}", | |
gen_type, | |
payload_overrides={"n_iter": 2}, | |
unit_overrides={}, | |
input_image=girl_img, | |
).exec() | |
def test_batch_size(gen_type): | |
assert APITestTemplate( | |
f"test_batch_size{gen_type}", | |
gen_type, | |
payload_overrides={"batch_size": 2}, | |
unit_overrides={}, | |
input_image=girl_img, | |
).exec() | |
def test_2_units(gen_type): | |
assert APITestTemplate( | |
f"test_2_units{gen_type}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides=[{}, {}], | |
input_image=girl_img, | |
).exec() | |
def test_preprocessor(gen_type): | |
assert APITestTemplate( | |
f"test_preprocessor{gen_type}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides={"module": "canny"}, | |
input_image=girl_img, | |
).exec() | |
def test_invalid_param(gen_type, param_name): | |
with console_log_context() as log_context: | |
assert APITestTemplate( | |
f"test_invalid_param{(gen_type, param_name)}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides={param_name: -1}, | |
input_image=girl_img, | |
).exec() | |
assert log_context.is_in_console_logs( | |
[ | |
f"[canny.{param_name}] Invalid value(-1), using default value", | |
] | |
) | |
def test_save_map(gen_type, save_map): | |
assert APITestTemplate( | |
f"test_save_map{(gen_type, save_map)}", | |
gen_type, | |
payload_overrides={}, | |
unit_overrides={"save_detected_map": save_map}, | |
input_image=girl_img, | |
).exec(expected_output_num=2 if save_map else 1) | |
def test_ip_adapter_face(): | |
assert APITestTemplate( | |
"test_ip_adapter_face", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"module": "ip-adapter_clip_sd15", | |
"model": get_model("ip-adapter-plus-face_sd15"), | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_ip_adapter_fullface(): | |
assert APITestTemplate( | |
"test_ip_adapter_fullface", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"module": "ip-adapter_clip_sd15", | |
"model": get_model("ip-adapter-full-face_sd15"), | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_control_lora(): | |
assert APITestTemplate( | |
"test_control_lora", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"module": "canny", | |
"model": get_model("control_lora_rank128_v11p_sd15_canny"), | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_t2i_adapter(): | |
assert APITestTemplate( | |
"test_t2i_adapter", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"module": "canny", | |
"model": get_model("t2iadapter_canny_sd15v2"), | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_reference(): | |
assert APITestTemplate( | |
"test_reference", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"module": "reference_only", | |
"model": "None", | |
}, | |
input_image=girl_img, | |
).exec() | |
def test_advanced_weighting(): | |
assert APITestTemplate( | |
"test_advanced_weighting", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={"advanced_weighting": [0.75] * 13}, # SD1.5 | |
input_image=girl_img, | |
).exec() | |
def test_hr_option(): | |
assert APITestTemplate( | |
"test_hr_option", | |
"txt2img", | |
payload_overrides={ | |
"enable_hr": True, | |
"denoising_strength": 0.75, | |
}, | |
unit_overrides={"hr_option": "HiResFixOption.BOTH"}, | |
input_image=girl_img, | |
).exec(expected_output_num=3) | |
def test_hr_option_default(): | |
"""In non-hr run, hr_option should be ignored.""" | |
assert APITestTemplate( | |
"test_hr_option_default", | |
"txt2img", | |
payload_overrides={"enable_hr": False}, | |
unit_overrides={"hr_option": "HiResFixOption.BOTH"}, | |
input_image=girl_img, | |
).exec(expected_output_num=2) | |
def test_masked_controlnet_txt2img(): | |
assert APITestTemplate( | |
f"test_masked_controlnet_txt2img", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"image": girl_img, | |
"mask_image": mask_img, | |
}, | |
).exec() | |
def test_masked_controlnet_img2img(): | |
assert APITestTemplate( | |
f"test_masked_controlnet_img2img", | |
"img2img", | |
payload_overrides={ | |
"init_images": [girl_img], | |
}, | |
# Note: Currently you must give ControlNet unit input image to specify | |
# mask. | |
# TODO: Fix this for img2img. | |
unit_overrides={ | |
"image": girl_img, | |
"mask_image": mask_img, | |
}, | |
).exec() | |
def test_txt2img_inpaint(): | |
assert APITestTemplate( | |
"txt2img_inpaint", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"image": girl_img, | |
"mask_image": mask_img, | |
"model": get_model("v11p_sd15_inpaint"), | |
"module": "inpaint_only", | |
}, | |
).exec() | |
def test_img2img_inpaint(): | |
assert APITestTemplate( | |
"img2img_inpaint", | |
"img2img", | |
payload_overrides={ | |
"init_images": [girl_img], | |
"mask": mask_img, | |
}, | |
unit_overrides={ | |
"model": get_model("v11p_sd15_inpaint"), | |
"module": "inpaint_only", | |
}, | |
).exec() | |
def test_lama_outpaint(): | |
assert APITestTemplate( | |
"txt2img_lama_outpaint", | |
"txt2img", | |
payload_overrides={ | |
"width": 768, | |
"height": 768, | |
}, | |
# Outpaint should not need a mask. | |
unit_overrides={ | |
"image": girl_img, | |
"model": get_model("v11p_sd15_inpaint"), | |
"module": "inpaint_only+lama", | |
"resize_mode": "Resize and Fill", # OUTER_FIT | |
}, | |
).exec(result_only=False) | |
def test_ip_adapter_auto(): | |
with console_log_context() as log_context: | |
assert APITestTemplate( | |
"txt2img_ip_adapter_auto", | |
"txt2img", | |
payload_overrides={}, | |
unit_overrides={ | |
"image": girl_img, | |
"model": get_model("ip-adapter_sd15"), | |
"module": "ip-adapter-auto", | |
}, | |
).exec() | |
assert log_context.is_in_console_logs(["ip-adapter-auto => ip-adapter_clip_h"]) | |