| import unittest | |
| import pytest | |
| from typing import NamedTuple, Optional | |
| from .template import ( | |
| sd_version, | |
| StableDiffusionVersion, | |
| is_full_coverage, | |
| APITestTemplate, | |
| living_room_img, | |
| general_negative_prompt, | |
| ) | |
| base_prompt = "A modern living room" | |
| general_depth_modules = [ | |
| "depth", | |
| "depth_leres", | |
| "depth_leres++", | |
| "depth_anything", | |
| ] | |
| hand_refiner_module = "depth_hand_refiner" | |
| general_depth_models = [ | |
| "control_sd15_depth_anything [48a4bc3a]", | |
| "control_v11f1p_sd15_depth [cfd03158]", | |
| "t2iadapter_depth_sd15v2 [3489cd37]", | |
| ] | |
| hand_refiner_model = "control_sd15_inpaint_depth_hand_fp16 [09456e54]" | |
| class TestDepthFullCoverage(unittest.TestCase): | |
| def setUp(self): | |
| if not is_full_coverage: | |
| pytest.skip() | |
| # TODO test SDXL. | |
| if sd_version == StableDiffusionVersion.SDXL: | |
| pytest.skip() | |
| def test_depth(self): | |
| for module in general_depth_modules: | |
| for model in general_depth_models: | |
| name = f"depth_txt2img_{module}_{model}" | |
| with self.subTest(name=name): | |
| self.assertTrue( | |
| APITestTemplate( | |
| name, | |
| "txt2img", | |
| payload_overrides={ | |
| "prompt": base_prompt, | |
| "negative_prompt": general_negative_prompt, | |
| "steps": 20, | |
| "width": 768, | |
| "height": 512, | |
| }, | |
| unit_overrides={ | |
| "module": module, | |
| "model": model, | |
| "image": living_room_img, | |
| }, | |
| ).exec(result_only=False) | |
| ) | |
| if __name__ == "__main__": | |
| unittest.main() | |