diff --git a/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py b/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py index 31dc5acc89..f40333db35 100644 --- a/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +++ b/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py @@ -169,6 +169,8 @@ class StableDiffusionXLInstructPix2PixPipeline( Whether to use the [invisible_watermark library](https://github.com/ShieldMnt/invisible-watermark/) to watermark output images. If not defined, it will default to True if the package is installed, otherwise no watermarker will be used. + is_cosxl_edit (`bool`, *optional*): + When set the image latents are scaled. """ model_cpu_offload_seq = "text_encoder->text_encoder_2->unet->vae" @@ -185,6 +187,7 @@ class StableDiffusionXLInstructPix2PixPipeline( scheduler: KarrasDiffusionSchedulers, force_zeros_for_empty_prompt: bool = True, add_watermarker: Optional[bool] = None, + is_cosxl_edit: Optional[bool] = False, ): super().__init__() @@ -201,6 +204,7 @@ class StableDiffusionXLInstructPix2PixPipeline( self.vae_scale_factor = 2 ** (len(self.vae.config.block_out_channels) - 1) self.image_processor = VaeImageProcessor(vae_scale_factor=self.vae_scale_factor) self.default_sample_size = self.unet.config.sample_size + self.is_cosxl_edit = is_cosxl_edit add_watermarker = add_watermarker if add_watermarker is not None else is_invisible_watermark_available() @@ -551,6 +555,9 @@ class StableDiffusionXLInstructPix2PixPipeline( if image_latents.dtype != self.vae.dtype: image_latents = image_latents.to(dtype=self.vae.dtype) + if self.is_cosxl_edit: + image_latents = image_latents * self.vae.config.scaling_factor + return image_latents # Copied from diffusers.pipelines.stable_diffusion_xl.pipeline_stable_diffusion_xl.StableDiffusionXLPipeline._get_add_time_ids