1
0
mirror of https://github.com/huggingface/diffusers.git synced 2026-01-27 17:22:53 +03:00

Test skip_guidance_layers in SD3 pipeline (#10102)

* Test `skip_guidance_layers` in pipelines

* Move to test_pipeline_stable_diffusion_3
This commit is contained in:
hlky
2024-12-04 00:28:31 +00:00
committed by GitHub
parent 6a51427b6a
commit cfdeebd4a8

View File

@@ -225,6 +225,39 @@ class StableDiffusion3PipelineFastTests(unittest.TestCase, PipelineTesterMixin):
original_image_slice, image_slice_disabled, atol=1e-2, rtol=1e-2
), "Original outputs should match when fused QKV projections are disabled."
def test_skip_guidance_layers(self):
components = self.get_dummy_components()
pipe = self.pipeline_class(**components)
pipe = pipe.to(torch_device)
pipe.set_progress_bar_config(disable=None)
inputs = self.get_dummy_inputs(torch_device)
output_full = pipe(**inputs)[0]
inputs_with_skip = inputs.copy()
inputs_with_skip["skip_guidance_layers"] = [0]
output_skip = pipe(**inputs_with_skip)[0]
self.assertFalse(
np.allclose(output_full, output_skip, atol=1e-5), "Outputs should differ when layers are skipped"
)
self.assertEqual(output_full.shape, output_skip.shape, "Outputs should have the same shape")
inputs["num_images_per_prompt"] = 2
output_full = pipe(**inputs)[0]
inputs_with_skip = inputs.copy()
inputs_with_skip["skip_guidance_layers"] = [0]
output_skip = pipe(**inputs_with_skip)[0]
self.assertFalse(
np.allclose(output_full, output_skip, atol=1e-5), "Outputs should differ when layers are skipped"
)
self.assertEqual(output_full.shape, output_skip.shape, "Outputs should have the same shape")
@slow
@require_big_gpu_with_torch_cuda