@@ -241,3 +241,30 @@ def test_vae_tiling(self, expected_diff_max: float = 0.2):
241241 @pytest .mark .xfail (condition = True , reason = "Preconfigured embeddings need to be revisited." , strict = True )
242242 def test_encode_prompt_works_in_isolation (self , extra_required_param_value_dict = None , atol = 1e-4 , rtol = 1e-4 ):
243243 super ().test_encode_prompt_works_in_isolation (extra_required_param_value_dict , atol , rtol )
244+
245+ def test_true_cfg_without_negative_prompt_embeds_mask (self ):
246+ components = self .get_dummy_components ()
247+ pipe = self .pipeline_class (** components )
248+ pipe .to ("cpu" )
249+ pipe .set_progress_bar_config (disable = None )
250+
251+ inputs = self .get_dummy_inputs ("cpu" )
252+ prompt = inputs .pop ("prompt" )
253+
254+ prompt_embeds , prompt_embeds_mask = pipe .encode_prompt (
255+ prompt = prompt ,
256+ image = inputs .get ("image" ) if "image" in inputs else None ,
257+ device = "cpu" ,
258+ num_images_per_prompt = 1 ,
259+ max_sequence_length = inputs .get ("max_sequence_length" , 16 ),
260+ )
261+
262+ inputs ["prompt_embeds" ] = prompt_embeds
263+ inputs ["prompt_embeds_mask" ] = prompt_embeds_mask
264+ inputs ["negative_prompt_embeds" ] = prompt_embeds
265+ inputs ["negative_prompt" ] = None
266+ inputs ["negative_prompt_embeds_mask" ] = None
267+ inputs ["true_cfg_scale" ] = 2.0
268+
269+ image = pipe (** inputs ).images
270+ self .assertIsNotNone (image )
0 commit comments