From c56add74fccb887f82c6ea0809546418b6774f20 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 20 Nov 2024 18:02:14 +0530 Subject: [PATCH 1/6] skip nan lora tests on PyTorch 2.5.1 CPU. --- tests/lora/utils.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/lora/utils.py b/tests/lora/utils.py index 7cdb2d6f51d7..76cbd86f41f6 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -32,6 +32,7 @@ from diffusers.utils.testing_utils import ( CaptureLogger, floats_tensor, + is_torch_version, require_peft_backend, require_peft_version_greater, require_transformers_version_greater, @@ -1510,6 +1511,10 @@ def test_simple_inference_with_text_denoiser_multi_adapter_weighted(self): ) @skip_mps + @unittest.skipIf( + torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), + "Test not supported on PyTorch 2.5 and CPU.", + ) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) From 8b33123601df09469050989dd4023c7dff2949c5 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 20 Nov 2024 18:14:04 +0530 Subject: [PATCH 2/6] cog --- tests/lora/test_lora_layers_cogvideox.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index c141ebc96b3e..8a776b2a06c1 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -29,6 +29,7 @@ from diffusers.utils.testing_utils import ( floats_tensor, is_peft_available, + is_torch_version, require_peft_backend, skip_mps, torch_device, @@ -126,6 +127,10 @@ def get_dummy_inputs(self, with_generator=True): return noise, input_ids, pipeline_inputs @skip_mps + @unittest.skipIf( + torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), + "Test not supported on PyTorch 2.5 and CPU.", + ) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) From 288b0ccf144884b380a64089bbd9f4017b451136 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 20 Nov 2024 19:15:00 +0530 Subject: [PATCH 3/6] use xfail --- tests/lora/test_lora_layers_cogvideox.py | 7 ++----- tests/lora/utils.py | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index 8a776b2a06c1..f19227bb23c0 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -16,6 +16,7 @@ import unittest import numpy as np +import pytest import torch from transformers import AutoTokenizer, T5EncoderModel @@ -29,7 +30,6 @@ from diffusers.utils.testing_utils import ( floats_tensor, is_peft_available, - is_torch_version, require_peft_backend, skip_mps, torch_device, @@ -127,10 +127,7 @@ def get_dummy_inputs(self, with_generator=True): return noise, input_ids, pipeline_inputs @skip_mps - @unittest.skipIf( - torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), - "Test not supported on PyTorch 2.5 and CPU.", - ) + @pytest.mark.xfail("Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) diff --git a/tests/lora/utils.py b/tests/lora/utils.py index 76cbd86f41f6..e4b0e473c0e2 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -19,6 +19,7 @@ from itertools import product import numpy as np +import pytest import torch from diffusers import ( @@ -32,7 +33,6 @@ from diffusers.utils.testing_utils import ( CaptureLogger, floats_tensor, - is_torch_version, require_peft_backend, require_peft_version_greater, require_transformers_version_greater, @@ -1511,10 +1511,7 @@ def test_simple_inference_with_text_denoiser_multi_adapter_weighted(self): ) @skip_mps - @unittest.skipIf( - torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), - "Test not supported on PyTorch 2.5 and CPU.", - ) + @pytest.mark.xfail("Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) From 82571a42cfe110b9fdf83cae85d3f9edb9171bda Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 20 Nov 2024 19:25:41 +0530 Subject: [PATCH 4/6] correct xfail --- tests/lora/test_lora_layers_cogvideox.py | 2 +- tests/lora/utils.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index f19227bb23c0..997ae0843f85 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -127,7 +127,7 @@ def get_dummy_inputs(self, with_generator=True): return noise, input_ids, pipeline_inputs @skip_mps - @pytest.mark.xfail("Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) + @pytest.mark.xfail(reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) diff --git a/tests/lora/utils.py b/tests/lora/utils.py index e4b0e473c0e2..4c8e03cdc815 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -1511,7 +1511,7 @@ def test_simple_inference_with_text_denoiser_multi_adapter_weighted(self): ) @skip_mps - @pytest.mark.xfail("Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) + @pytest.mark.xfail(reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) From 863d28ff067e7b7f659ec6078c8fc99fef83ca1a Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Wed, 20 Nov 2024 19:27:04 +0530 Subject: [PATCH 5/6] add condition --- tests/lora/test_lora_layers_cogvideox.py | 6 +++++- tests/lora/utils.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index 997ae0843f85..9cc8376a7cc6 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -127,7 +127,11 @@ def get_dummy_inputs(self, with_generator=True): return noise, input_ids, pipeline_inputs @skip_mps - @pytest.mark.xfail(reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) + @pytest.mark.xfail( + condtion=torch.device(torch_device).type == "cpu", + reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", + strict=True, + ) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) diff --git a/tests/lora/utils.py b/tests/lora/utils.py index 4c8e03cdc815..30d7e8792372 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -1511,7 +1511,11 @@ def test_simple_inference_with_text_denoiser_multi_adapter_weighted(self): ) @skip_mps - @pytest.mark.xfail(reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True) + @pytest.mark.xfail( + condtion=torch.device(torch_device).type == "cpu", + reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", + strict=True, + ) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) From 17ec4b502a78b1b1ef03e64326df51dc7b1626d4 Mon Sep 17 00:00:00 2001 From: sayakpaul Date: Thu, 21 Nov 2024 21:36:03 +0530 Subject: [PATCH 6/6] tests --- tests/lora/test_lora_layers_cogvideox.py | 3 ++- tests/lora/test_lora_layers_mochi.py | 7 +++++++ tests/lora/utils.py | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index 9cc8376a7cc6..623b06621d66 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -30,6 +30,7 @@ from diffusers.utils.testing_utils import ( floats_tensor, is_peft_available, + is_torch_version, require_peft_backend, skip_mps, torch_device, @@ -128,7 +129,7 @@ def get_dummy_inputs(self, with_generator=True): @skip_mps @pytest.mark.xfail( - condtion=torch.device(torch_device).type == "cpu", + condtion=torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True, ) diff --git a/tests/lora/test_lora_layers_mochi.py b/tests/lora/test_lora_layers_mochi.py index eb15124601c6..910b126c147b 100644 --- a/tests/lora/test_lora_layers_mochi.py +++ b/tests/lora/test_lora_layers_mochi.py @@ -16,6 +16,7 @@ import unittest import numpy as np +import pytest import torch from transformers import AutoTokenizer, T5EncoderModel @@ -23,6 +24,7 @@ from diffusers.utils.testing_utils import ( floats_tensor, is_peft_available, + is_torch_version, require_peft_backend, skip_mps, torch_device, @@ -105,6 +107,11 @@ def get_dummy_inputs(self, with_generator=True): return noise, input_ids, pipeline_inputs + @pytest.mark.xfail( + condtion=torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), + reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", + strict=True, + ) def test_lora_fuse_nan(self): for scheduler_cls in self.scheduler_classes: components, text_lora_config, denoiser_lora_config = self.get_dummy_components(scheduler_cls) diff --git a/tests/lora/utils.py b/tests/lora/utils.py index 30d7e8792372..d8dc86d57007 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -33,6 +33,7 @@ from diffusers.utils.testing_utils import ( CaptureLogger, floats_tensor, + is_torch_version, require_peft_backend, require_peft_version_greater, require_transformers_version_greater, @@ -1512,7 +1513,7 @@ def test_simple_inference_with_text_denoiser_multi_adapter_weighted(self): @skip_mps @pytest.mark.xfail( - condtion=torch.device(torch_device).type == "cpu", + condtion=torch.device(torch_device).type == "cpu" and is_torch_version(">=", "2.5"), reason="Test currently fails on CPU and PyTorch 2.5.1 but not on PyTorch 2.4.1.", strict=True, )