24
24
25
25
from diffusers import (
26
26
ClassifierFreeGuidance ,
27
- ComponentsManager ,
28
27
ModularPipeline ,
29
28
StableDiffusionXLAutoBlocks ,
30
29
StableDiffusionXLModularPipeline ,
33
32
from diffusers .utils .testing_utils import (
34
33
enable_full_determinism ,
35
34
floats_tensor ,
36
- require_torch_accelerator ,
37
35
torch_device ,
38
36
)
39
37
@@ -99,9 +97,9 @@ def _test_stable_diffusion_xl_euler(self, expected_image_shape, expected_slice,
99
97
100
98
assert image .shape == expected_image_shape
101
99
102
- assert (
103
- np . abs ( image_slice . flatten () - expected_slice ). max () < expected_max_diff
104
- ), "Image Slice does not match expected slice"
100
+ assert np . abs ( image_slice . flatten () - expected_slice ). max () < expected_max_diff , (
101
+ "Image Slice does not match expected slice"
102
+ )
105
103
106
104
107
105
class SDXLModularIPAdapterTests :
@@ -114,20 +112,20 @@ def test_pipeline_inputs_and_blocks(self):
114
112
parameters = blocks .input_names
115
113
116
114
assert issubclass (self .pipeline_class , ModularIPAdapterMixin )
117
- assert (
118
- "ip_adapter_image" in parameters
119
- ), "`ip_adapter_image` argument must be supported by the `__call__` method"
115
+ assert "ip_adapter_image" in parameters , (
116
+ "` ip_adapter_image` argument must be supported by the `__call__` method"
117
+ )
120
118
assert "ip_adapter" in blocks .sub_blocks , "pipeline must contain an IPAdapter block"
121
119
122
120
_ = blocks .sub_blocks .pop ("ip_adapter" )
123
121
parameters = blocks .input_names
124
122
intermediate_parameters = blocks .intermediate_input_names
125
- assert (
126
- "ip_adapter_image" not in parameters
127
- ), "`ip_adapter_image` argument must be removed from the `__call__` method"
128
- assert (
129
- "ip_adapter_image_embeds" not in intermediate_parameters
130
- ), "`ip_adapter_image_embeds` argument must be supported by the `__call__` method"
123
+ assert "ip_adapter_image" not in parameters , (
124
+ "` ip_adapter_image` argument must be removed from the `__call__` method"
125
+ )
126
+ assert "ip_adapter_image_embeds" not in intermediate_parameters , (
127
+ "` ip_adapter_image_embeds` argument must be supported by the `__call__` method"
128
+ )
131
129
132
130
def _get_dummy_image_embeds (self , cross_attention_dim : int = 32 ):
133
131
return torch .randn ((1 , 1 , cross_attention_dim ), device = torch_device )
@@ -203,9 +201,9 @@ def test_ip_adapter(self, expected_max_diff: float = 1e-4, expected_pipe_slice=N
203
201
max_diff_without_adapter_scale = np .abs (output_without_adapter_scale - output_without_adapter ).max ()
204
202
max_diff_with_adapter_scale = np .abs (output_with_adapter_scale - output_without_adapter ).max ()
205
203
206
- assert (
207
- max_diff_without_adapter_scale < expected_max_diff
208
- ), "Output without ip-adapter must be same as normal inference"
204
+ assert max_diff_without_adapter_scale < expected_max_diff , (
205
+ "Output without ip-adapter must be same as normal inference"
206
+ )
209
207
assert max_diff_with_adapter_scale > 1e-2 , "Output with ip-adapter must be different from normal inference"
210
208
211
209
# 2. Multi IP-Adapter test cases
@@ -235,12 +233,12 @@ def test_ip_adapter(self, expected_max_diff: float = 1e-4, expected_pipe_slice=N
235
233
output_without_multi_adapter_scale - output_without_adapter
236
234
).max ()
237
235
max_diff_with_multi_adapter_scale = np .abs (output_with_multi_adapter_scale - output_without_adapter ).max ()
238
- assert (
239
- max_diff_without_multi_adapter_scale < expected_max_diff
240
- ), "Output without multi-ip-adapter must be same as normal inference"
241
- assert (
242
- max_diff_with_multi_adapter_scale > 1e-2
243
- ), "Output with multi-ip-adapter scale must be different from normal inference"
236
+ assert max_diff_without_multi_adapter_scale < expected_max_diff , (
237
+ "Output without multi-ip-adapter must be same as normal inference"
238
+ )
239
+ assert max_diff_with_multi_adapter_scale > 1e-2 , (
240
+ "Output with multi-ip-adapter scale must be different from normal inference"
241
+ )
244
242
245
243
246
244
class SDXLModularControlNetTests :
@@ -253,9 +251,9 @@ def test_pipeline_inputs(self):
253
251
parameters = blocks .input_names
254
252
255
253
assert "control_image" in parameters , "`control_image` argument must be supported by the `__call__` method"
256
- assert (
257
- "controlnet_conditioning_scale" in parameters
258
- ), "`controlnet_conditioning_scale` argument must be supported by the `__call__` method"
254
+ assert "controlnet_conditioning_scale" in parameters , (
255
+ "` controlnet_conditioning_scale` argument must be supported by the `__call__` method"
256
+ )
259
257
260
258
def _modify_inputs_for_controlnet_test (self , inputs : Dict [str , Any ]):
261
259
controlnet_embedder_scale_factor = 2
@@ -301,9 +299,9 @@ def test_controlnet(self, expected_max_diff: float = 1e-4, expected_pipe_slice=N
301
299
max_diff_without_controlnet_scale = np .abs (output_without_controlnet_scale - output_without_controlnet ).max ()
302
300
max_diff_with_controlnet_scale = np .abs (output_with_controlnet_scale - output_without_controlnet ).max ()
303
301
304
- assert (
305
- max_diff_without_controlnet_scale < expected_max_diff
306
- ), "Output without controlnet must be same as normal inference"
302
+ assert max_diff_without_controlnet_scale < expected_max_diff , (
303
+ "Output without controlnet must be same as normal inference"
304
+ )
307
305
assert max_diff_with_controlnet_scale > 1e-2 , "Output with controlnet must be different from normal inference"
308
306
309
307
def test_controlnet_cfg (self ):
0 commit comments