Unverified Commit e126a82c authored by Sayak Paul's avatar Sayak Paul Committed by GitHub
Browse files

[Tests] Speed up panorama tests (#3067)

* fix: norm group test for UNet3D.

* chore: speed up the panorama tests (fast).

* set default value of _test_inference_batch_single_identical.

* fix: batch_sizes default value.
parent e7534542
...@@ -49,7 +49,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes ...@@ -49,7 +49,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes
torch.manual_seed(0) torch.manual_seed(0)
unet = UNet2DConditionModel( unet = UNet2DConditionModel(
block_out_channels=(32, 64), block_out_channels=(32, 64),
layers_per_block=2, layers_per_block=1,
sample_size=32, sample_size=32,
in_channels=4, in_channels=4,
out_channels=4, out_channels=4,
...@@ -101,7 +101,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes ...@@ -101,7 +101,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes
# Setting height and width to None to prevent OOMs on CPU. # Setting height and width to None to prevent OOMs on CPU.
"height": None, "height": None,
"width": None, "width": None,
"num_inference_steps": 2, "num_inference_steps": 1,
"guidance_scale": 6.0, "guidance_scale": 6.0,
"output_type": "numpy", "output_type": "numpy",
} }
...@@ -119,10 +119,18 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes ...@@ -119,10 +119,18 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes
image_slice = image[0, -3:, -3:, -1] image_slice = image[0, -3:, -3:, -1]
assert image.shape == (1, 64, 64, 3) assert image.shape == (1, 64, 64, 3)
expected_slice = np.array([0.4794, 0.5084, 0.4992, 0.3941, 0.3555, 0.4754, 0.5248, 0.5224, 0.4839]) expected_slice = np.array([0.6186, 0.5374, 0.4915, 0.4135, 0.4114, 0.4563, 0.5128, 0.4977, 0.4757])
assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2 assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2
# override to speed the overall test timing up.
def test_inference_batch_consistent(self):
super().test_inference_batch_consistent(batch_sizes=[1, 2])
# override to speed the overall test timing up.
def test_inference_batch_single_identical(self):
super().test_inference_batch_single_identical(batch_size=2)
def test_stable_diffusion_panorama_negative_prompt(self): def test_stable_diffusion_panorama_negative_prompt(self):
device = "cpu" # ensure determinism for the device-dependent torch.Generator device = "cpu" # ensure determinism for the device-dependent torch.Generator
components = self.get_dummy_components() components = self.get_dummy_components()
...@@ -138,7 +146,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes ...@@ -138,7 +146,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes
assert image.shape == (1, 64, 64, 3) assert image.shape == (1, 64, 64, 3)
expected_slice = np.array([0.5029, 0.5075, 0.5002, 0.3965, 0.3584, 0.4746, 0.5271, 0.5273, 0.4877]) expected_slice = np.array([0.6187, 0.5375, 0.4915, 0.4136, 0.4114, 0.4563, 0.5128, 0.4976, 0.4757])
assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2 assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2
...@@ -158,7 +166,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes ...@@ -158,7 +166,7 @@ class StableDiffusionPanoramaPipelineFastTests(PipelineTesterMixin, unittest.Tes
assert image.shape == (1, 64, 64, 3) assert image.shape == (1, 64, 64, 3)
expected_slice = np.array([0.4934, 0.5455, 0.4847, 0.5022, 0.5572, 0.4833, 0.5207, 0.4952, 0.5051]) expected_slice = np.array([0.4886, 0.5586, 0.4476, 0.5053, 0.6013, 0.4737, 0.5538, 0.5100, 0.4927])
assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2 assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2
......
...@@ -175,8 +175,8 @@ class PipelineTesterMixin: ...@@ -175,8 +175,8 @@ class PipelineTesterMixin:
f"Required optional parameters not present: {remaining_required_optional_parameters}", f"Required optional parameters not present: {remaining_required_optional_parameters}",
) )
def test_inference_batch_consistent(self): def test_inference_batch_consistent(self, batch_sizes=[2, 4, 13]):
self._test_inference_batch_consistent() self._test_inference_batch_consistent(batch_sizes=batch_sizes)
def _test_inference_batch_consistent( def _test_inference_batch_consistent(
self, batch_sizes=[2, 4, 13], additional_params_copy_to_batched_inputs=["num_inference_steps"] self, batch_sizes=[2, 4, 13], additional_params_copy_to_batched_inputs=["num_inference_steps"]
...@@ -235,11 +235,12 @@ class PipelineTesterMixin: ...@@ -235,11 +235,12 @@ class PipelineTesterMixin:
logger.setLevel(level=diffusers.logging.WARNING) logger.setLevel(level=diffusers.logging.WARNING)
def test_inference_batch_single_identical(self): def test_inference_batch_single_identical(self, batch_size=3):
self._test_inference_batch_single_identical() self._test_inference_batch_single_identical(batch_size=batch_size)
def _test_inference_batch_single_identical( def _test_inference_batch_single_identical(
self, self,
batch_size=3,
test_max_difference=None, test_max_difference=None,
test_mean_pixel_difference=None, test_mean_pixel_difference=None,
relax_max_difference=False, relax_max_difference=False,
...@@ -267,7 +268,7 @@ class PipelineTesterMixin: ...@@ -267,7 +268,7 @@ class PipelineTesterMixin:
# batchify inputs # batchify inputs
batched_inputs = {} batched_inputs = {}
batch_size = 3 batch_size = batch_size
for name, value in inputs.items(): for name, value in inputs.items():
if name in self.batch_params: if name in self.batch_params:
# prompt is string # prompt is string
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment