test_txt2img.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import pytest
  2. import requests
  3. @pytest.fixture()
  4. def url_txt2img(base_url):
  5. return f"{base_url}/sdapi/v1/txt2img"
  6. @pytest.fixture()
  7. def simple_txt2img_request():
  8. return {
  9. "batch_size": 1,
  10. "cfg_scale": 7,
  11. "denoising_strength": 0,
  12. "enable_hr": False,
  13. "eta": 0,
  14. "firstphase_height": 0,
  15. "firstphase_width": 0,
  16. "height": 64,
  17. "n_iter": 1,
  18. "negative_prompt": "",
  19. "prompt": "example prompt",
  20. "restore_faces": False,
  21. "s_churn": 0,
  22. "s_noise": 1,
  23. "s_tmax": 0,
  24. "s_tmin": 0,
  25. "sampler_index": "Euler a",
  26. "seed": -1,
  27. "seed_resize_from_h": -1,
  28. "seed_resize_from_w": -1,
  29. "steps": 3,
  30. "styles": [],
  31. "subseed": -1,
  32. "subseed_strength": 0,
  33. "tiling": False,
  34. "width": 64,
  35. }
  36. def test_txt2img_simple_performed(url_txt2img, simple_txt2img_request):
  37. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  38. def test_txt2img_with_negative_prompt_performed(url_txt2img, simple_txt2img_request):
  39. simple_txt2img_request["negative_prompt"] = "example negative prompt"
  40. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  41. def test_txt2img_with_complex_prompt_performed(url_txt2img, simple_txt2img_request):
  42. simple_txt2img_request["prompt"] = "((emphasis)), (emphasis1:1.1), [to:1], [from::2], [from:to:0.3], [alt|alt1]"
  43. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  44. def test_txt2img_not_square_image_performed(url_txt2img, simple_txt2img_request):
  45. simple_txt2img_request["height"] = 128
  46. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  47. def test_txt2img_with_hrfix_performed(url_txt2img, simple_txt2img_request):
  48. simple_txt2img_request["enable_hr"] = True
  49. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  50. def test_txt2img_with_tiling_performed(url_txt2img, simple_txt2img_request):
  51. simple_txt2img_request["tiling"] = True
  52. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  53. def test_txt2img_with_restore_faces_performed(url_txt2img, simple_txt2img_request):
  54. simple_txt2img_request["restore_faces"] = True
  55. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  56. @pytest.mark.parametrize("sampler", ["PLMS", "DDIM", "UniPC"])
  57. def test_txt2img_with_vanilla_sampler_performed(url_txt2img, simple_txt2img_request, sampler):
  58. simple_txt2img_request["sampler_index"] = sampler
  59. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  60. def test_txt2img_multiple_batches_performed(url_txt2img, simple_txt2img_request):
  61. simple_txt2img_request["n_iter"] = 2
  62. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200
  63. def test_txt2img_batch_performed(url_txt2img, simple_txt2img_request):
  64. simple_txt2img_request["batch_size"] = 2
  65. assert requests.post(url_txt2img, json=simple_txt2img_request).status_code == 200