From 62cce3045d6710e9cd68869ac8391867e326928b Mon Sep 17 00:00:00 2001 From: Sayak Paul Date: Wed, 18 Jun 2025 20:56:00 +0530 Subject: [PATCH 1/6] [chore] change to 2025 licensing for remaining (#11741) change to 2025 licensing for remaining --- .../test_dreambooth_lora_flux_advanced.py | 2 +- examples/consistency_distillation/test_lcm_lora.py | 2 +- examples/controlnet/test_controlnet.py | 2 +- examples/custom_diffusion/test_custom_diffusion.py | 2 +- examples/dreambooth/test_dreambooth.py | 2 +- examples/dreambooth/test_dreambooth_flux.py | 2 +- examples/dreambooth/test_dreambooth_lora.py | 2 +- examples/dreambooth/test_dreambooth_lora_edm.py | 2 +- examples/dreambooth/test_dreambooth_lora_flux.py | 2 +- examples/dreambooth/test_dreambooth_lora_hidream.py | 2 +- examples/dreambooth/test_dreambooth_lora_lumina2.py | 2 +- examples/dreambooth/test_dreambooth_lora_sana.py | 2 +- examples/dreambooth/test_dreambooth_lora_sd3.py | 2 +- examples/dreambooth/test_dreambooth_sd3.py | 2 +- examples/instruct_pix2pix/test_instruct_pix2pix.py | 2 +- examples/t2i_adapter/test_t2i_adapter.py | 2 +- examples/test_examples_utils.py | 2 +- examples/textual_inversion/test_textual_inversion.py | 2 +- examples/textual_inversion/test_textual_inversion_sdxl.py | 2 +- examples/unconditional_image_generation/test_unconditional.py | 2 +- src/diffusers/models/activations.py | 2 +- src/diffusers/models/normalization.py | 2 +- tests/hooks/test_group_offloading.py | 2 +- tests/hooks/test_hooks.py | 2 +- tests/lora/test_lora_layers_auraflow.py | 2 +- tests/lora/test_lora_layers_cogvideox.py | 2 +- tests/lora/test_lora_layers_cogview4.py | 2 +- tests/lora/test_lora_layers_flux.py | 2 +- tests/lora/test_lora_layers_hunyuanvideo.py | 2 +- tests/lora/test_lora_layers_ltx_video.py | 2 +- tests/lora/test_lora_layers_lumina2.py | 2 +- tests/lora/test_lora_layers_mochi.py | 2 +- tests/lora/test_lora_layers_sana.py | 2 +- tests/lora/test_lora_layers_sd.py | 2 +- tests/lora/test_lora_layers_sd3.py | 2 +- tests/lora/test_lora_layers_sdxl.py | 2 +- tests/lora/test_lora_layers_wan.py | 2 +- tests/lora/utils.py | 2 +- .../autoencoders/test_models_asymmetric_autoencoder_kl.py | 2 +- tests/models/autoencoders/test_models_autoencoder_cosmos.py | 2 +- tests/models/autoencoders/test_models_autoencoder_dc.py | 2 +- .../autoencoders/test_models_autoencoder_hunyuan_video.py | 2 +- tests/models/autoencoders/test_models_autoencoder_kl.py | 2 +- .../models/autoencoders/test_models_autoencoder_kl_cogvideox.py | 2 +- .../autoencoders/test_models_autoencoder_kl_temporal_decoder.py | 2 +- tests/models/autoencoders/test_models_autoencoder_ltx_video.py | 2 +- tests/models/autoencoders/test_models_autoencoder_magvit.py | 2 +- tests/models/autoencoders/test_models_autoencoder_mochi.py | 2 +- tests/models/autoencoders/test_models_autoencoder_oobleck.py | 2 +- tests/models/autoencoders/test_models_autoencoder_tiny.py | 2 +- tests/models/autoencoders/test_models_autoencoder_wan.py | 2 +- .../models/autoencoders/test_models_consistency_decoder_vae.py | 2 +- tests/models/autoencoders/test_models_vq.py | 2 +- tests/models/test_layers_utils.py | 2 +- tests/models/test_modeling_common.py | 2 +- tests/models/transformers/test_models_dit_transformer2d.py | 2 +- tests/models/transformers/test_models_pixart_transformer2d.py | 2 +- tests/models/transformers/test_models_prior.py | 2 +- tests/models/transformers/test_models_transformer_allegro.py | 2 +- tests/models/transformers/test_models_transformer_aura_flow.py | 2 +- tests/models/transformers/test_models_transformer_chroma.py | 2 +- tests/models/transformers/test_models_transformer_cogvideox.py | 2 +- .../models/transformers/test_models_transformer_cogview3plus.py | 2 +- tests/models/transformers/test_models_transformer_cogview4.py | 2 +- tests/models/transformers/test_models_transformer_consisid.py | 2 +- tests/models/transformers/test_models_transformer_cosmos.py | 2 +- .../models/transformers/test_models_transformer_easyanimate.py | 2 +- tests/models/transformers/test_models_transformer_flux.py | 2 +- .../models/transformers/test_models_transformer_hunyuan_dit.py | 2 +- .../transformers/test_models_transformer_hunyuan_video.py | 2 +- .../test_models_transformer_hunyuan_video_framepack.py | 2 +- tests/models/transformers/test_models_transformer_latte.py | 2 +- tests/models/transformers/test_models_transformer_ltx.py | 2 +- tests/models/transformers/test_models_transformer_lumina.py | 2 +- tests/models/transformers/test_models_transformer_lumina2.py | 2 +- tests/models/transformers/test_models_transformer_mochi.py | 2 +- tests/models/transformers/test_models_transformer_omnigen.py | 2 +- tests/models/transformers/test_models_transformer_sana.py | 2 +- tests/models/transformers/test_models_transformer_sd3.py | 2 +- tests/models/transformers/test_models_transformer_temporal.py | 2 +- tests/models/transformers/test_models_transformer_wan.py | 2 +- tests/models/unets/test_models_unet_1d.py | 2 +- tests/models/unets/test_models_unet_2d.py | 2 +- tests/models/unets/test_models_unet_2d_condition.py | 2 +- tests/models/unets/test_models_unet_3d_condition.py | 2 +- tests/models/unets/test_models_unet_controlnetxs.py | 2 +- tests/models/unets/test_models_unet_motion.py | 2 +- tests/models/unets/test_models_unet_spatiotemporal.py | 2 +- tests/models/unets/test_unet_2d_blocks.py | 2 +- tests/models/unets/test_unet_blocks_common.py | 2 +- tests/others/test_config.py | 2 +- tests/others/test_ema.py | 2 +- tests/others/test_hub_utils.py | 2 +- tests/others/test_image_processor.py | 2 +- tests/others/test_training.py | 2 +- tests/others/test_utils.py | 2 +- tests/others/test_video_processor.py | 2 +- tests/pipelines/amused/test_amused.py | 2 +- tests/pipelines/amused/test_amused_img2img.py | 2 +- tests/pipelines/amused/test_amused_inpaint.py | 2 +- tests/pipelines/audioldm/test_audioldm.py | 2 +- tests/pipelines/audioldm2/test_audioldm2.py | 2 +- tests/pipelines/blipdiffusion/test_blipdiffusion.py | 2 +- tests/pipelines/controlnet/test_controlnet.py | 2 +- tests/pipelines/controlnet/test_controlnet_blip_diffusion.py | 2 +- tests/pipelines/controlnet/test_controlnet_img2img.py | 2 +- tests/pipelines/controlnet/test_controlnet_inpaint.py | 2 +- tests/pipelines/controlnet/test_controlnet_sdxl.py | 2 +- tests/pipelines/controlnet/test_controlnet_sdxl_img2img.py | 2 +- tests/pipelines/controlnet/test_flax_controlnet.py | 2 +- tests/pipelines/controlnet_sd3/test_controlnet_inpaint_sd3.py | 2 +- tests/pipelines/dance_diffusion/test_dance_diffusion.py | 2 +- tests/pipelines/ddim/test_ddim.py | 2 +- tests/pipelines/ddpm/test_ddpm.py | 2 +- tests/pipelines/deepfloyd_if/test_if.py | 2 +- tests/pipelines/deepfloyd_if/test_if_img2img.py | 2 +- tests/pipelines/deepfloyd_if/test_if_img2img_superresolution.py | 2 +- tests/pipelines/deepfloyd_if/test_if_inpainting.py | 2 +- .../deepfloyd_if/test_if_inpainting_superresolution.py | 2 +- tests/pipelines/deepfloyd_if/test_if_superresolution.py | 2 +- tests/pipelines/dit/test_dit.py | 2 +- tests/pipelines/hidream/test_pipeline_hidream.py | 2 +- tests/pipelines/hunyuandit/test_hunyuan_dit.py | 2 +- tests/pipelines/i2vgen_xl/test_i2vgenxl.py | 2 +- tests/pipelines/ip_adapters/test_ip_adapter_stable_diffusion.py | 2 +- tests/pipelines/kandinsky/test_kandinsky.py | 2 +- tests/pipelines/kandinsky/test_kandinsky_combined.py | 2 +- tests/pipelines/kandinsky/test_kandinsky_img2img.py | 2 +- tests/pipelines/kandinsky/test_kandinsky_inpaint.py | 2 +- tests/pipelines/kandinsky/test_kandinsky_prior.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_combined.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_controlnet.py | 2 +- .../pipelines/kandinsky2_2/test_kandinsky_controlnet_img2img.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_img2img.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_inpaint.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_prior.py | 2 +- tests/pipelines/kandinsky2_2/test_kandinsky_prior_emb2emb.py | 2 +- tests/pipelines/kandinsky3/test_kandinsky3.py | 2 +- tests/pipelines/kandinsky3/test_kandinsky3_img2img.py | 2 +- tests/pipelines/kolors/test_kolors.py | 2 +- tests/pipelines/kolors/test_kolors_img2img.py | 2 +- tests/pipelines/latent_diffusion/test_latent_diffusion.py | 2 +- .../latent_diffusion/test_latent_diffusion_superresolution.py | 2 +- tests/pipelines/musicldm/test_musicldm.py | 2 +- tests/pipelines/pag/test_pag_controlnet_sd.py | 2 +- tests/pipelines/pag/test_pag_controlnet_sd_inpaint.py | 2 +- tests/pipelines/pag/test_pag_controlnet_sdxl.py | 2 +- tests/pipelines/pag/test_pag_controlnet_sdxl_img2img.py | 2 +- tests/pipelines/pag/test_pag_hunyuan_dit.py | 2 +- tests/pipelines/pag/test_pag_kolors.py | 2 +- tests/pipelines/pag/test_pag_pixart_sigma.py | 2 +- tests/pipelines/pag/test_pag_sd.py | 2 +- tests/pipelines/pag/test_pag_sd_img2img.py | 2 +- tests/pipelines/pag/test_pag_sd_inpaint.py | 2 +- tests/pipelines/pag/test_pag_sdxl.py | 2 +- tests/pipelines/pag/test_pag_sdxl_img2img.py | 2 +- tests/pipelines/pag/test_pag_sdxl_inpaint.py | 2 +- tests/pipelines/paint_by_example/test_paint_by_example.py | 2 +- tests/pipelines/pixart_alpha/test_pixart.py | 2 +- tests/pipelines/pixart_sigma/test_pixart.py | 2 +- tests/pipelines/pndm/test_pndm.py | 2 +- .../semantic_stable_diffusion/test_semantic_diffusion.py | 2 +- tests/pipelines/shap_e/test_shap_e.py | 2 +- tests/pipelines/shap_e/test_shap_e_img2img.py | 2 +- tests/pipelines/stable_audio/test_stable_audio.py | 2 +- tests/pipelines/stable_cascade/test_stable_cascade_combined.py | 2 +- tests/pipelines/stable_cascade/test_stable_cascade_decoder.py | 2 +- tests/pipelines/stable_cascade/test_stable_cascade_prior.py | 2 +- tests/pipelines/stable_diffusion/test_onnx_stable_diffusion.py | 2 +- .../stable_diffusion/test_onnx_stable_diffusion_img2img.py | 2 +- .../stable_diffusion/test_onnx_stable_diffusion_inpaint.py | 2 +- tests/pipelines/stable_diffusion/test_stable_diffusion.py | 2 +- .../pipelines/stable_diffusion/test_stable_diffusion_img2img.py | 2 +- .../pipelines/stable_diffusion/test_stable_diffusion_inpaint.py | 2 +- .../test_stable_diffusion_instruction_pix2pix.py | 2 +- tests/pipelines/stable_diffusion_2/test_stable_diffusion.py | 2 +- .../test_stable_diffusion_attend_and_excite.py | 2 +- .../pipelines/stable_diffusion_2/test_stable_diffusion_depth.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_diffedit.py | 2 +- .../pipelines/stable_diffusion_2/test_stable_diffusion_flax.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_flax_inpaint.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_inpaint.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_latent_upscale.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_upscale.py | 2 +- .../stable_diffusion_2/test_stable_diffusion_v_pred.py | 2 +- .../stable_diffusion_gligen/test_stable_diffusion_gligen.py | 2 +- .../test_stable_diffusion_gligen_text_image.py | 2 +- .../test_stable_diffusion_image_variation.py | 2 +- .../test_stable_diffusion_k_diffusion.py | 2 +- .../stable_diffusion_ldm3d/test_stable_diffusion_ldm3d.py | 2 +- .../stable_diffusion_panorama/test_stable_diffusion_panorama.py | 2 +- tests/pipelines/stable_diffusion_safe/test_safe_diffusion.py | 2 +- .../pipelines/stable_diffusion_sag/test_stable_diffusion_sag.py | 2 +- tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl.py | 2 +- .../stable_diffusion_xl/test_stable_diffusion_xl_adapter.py | 2 +- .../stable_diffusion_xl/test_stable_diffusion_xl_img2img.py | 2 +- .../stable_diffusion_xl/test_stable_diffusion_xl_inpaint.py | 2 +- .../stable_diffusion_xl/test_stable_diffusion_xl_k_diffusion.py | 2 +- tests/pipelines/test_pipelines.py | 2 +- tests/pipelines/test_pipelines_auto.py | 2 +- tests/pipelines/test_pipelines_combined.py | 2 +- tests/pipelines/test_pipelines_flax.py | 2 +- tests/pipelines/text_to_video_synthesis/test_text_to_video.py | 2 +- .../text_to_video_synthesis/test_text_to_video_zero.py | 2 +- .../text_to_video_synthesis/test_text_to_video_zero_sdxl.py | 2 +- tests/pipelines/text_to_video_synthesis/test_video_to_video.py | 2 +- tests/pipelines/unclip/test_unclip.py | 2 +- tests/pipelines/unclip/test_unclip_image_variation.py | 2 +- tests/pipelines/wuerstchen/test_wuerstchen_combined.py | 2 +- tests/pipelines/wuerstchen/test_wuerstchen_decoder.py | 2 +- tests/pipelines/wuerstchen/test_wuerstchen_prior.py | 2 +- tests/schedulers/test_scheduler_flax.py | 2 +- tests/schedulers/test_schedulers.py | 2 +- tests/single_file/test_model_autoencoder_dc_single_file.py | 2 +- tests/single_file/test_model_controlnet_single_file.py | 2 +- tests/single_file/test_model_flux_transformer_single_file.py | 2 +- tests/single_file/test_model_motion_adapter_single_file.py | 2 +- tests/single_file/test_model_sd_cascade_unet_single_file.py | 2 +- tests/single_file/test_model_vae_single_file.py | 2 +- 220 files changed, 220 insertions(+), 220 deletions(-) diff --git a/examples/advanced_diffusion_training/test_dreambooth_lora_flux_advanced.py b/examples/advanced_diffusion_training/test_dreambooth_lora_flux_advanced.py index d465b7de85..74aec95dd8 100644 --- a/examples/advanced_diffusion_training/test_dreambooth_lora_flux_advanced.py +++ b/examples/advanced_diffusion_training/test_dreambooth_lora_flux_advanced.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/consistency_distillation/test_lcm_lora.py b/examples/consistency_distillation/test_lcm_lora.py index 5ca66909a2..1eeb31d6e4 100644 --- a/examples/consistency_distillation/test_lcm_lora.py +++ b/examples/consistency_distillation/test_lcm_lora.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/controlnet/test_controlnet.py b/examples/controlnet/test_controlnet.py index d595a1a312..04b9a950a9 100644 --- a/examples/controlnet/test_controlnet.py +++ b/examples/controlnet/test_controlnet.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/custom_diffusion/test_custom_diffusion.py b/examples/custom_diffusion/test_custom_diffusion.py index 0d7e895b3b..9af84ec759 100644 --- a/examples/custom_diffusion/test_custom_diffusion.py +++ b/examples/custom_diffusion/test_custom_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth.py b/examples/dreambooth/test_dreambooth.py index 86d0438fc2..76f7fe8bd4 100644 --- a/examples/dreambooth/test_dreambooth.py +++ b/examples/dreambooth/test_dreambooth.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_flux.py b/examples/dreambooth/test_dreambooth_flux.py index 2d5703d2a2..4b9117266c 100644 --- a/examples/dreambooth/test_dreambooth_flux.py +++ b/examples/dreambooth/test_dreambooth_flux.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora.py b/examples/dreambooth/test_dreambooth_lora.py index 9df104e071..e950807d37 100644 --- a/examples/dreambooth/test_dreambooth_lora.py +++ b/examples/dreambooth/test_dreambooth_lora.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_edm.py b/examples/dreambooth/test_dreambooth_lora_edm.py index 0f6b3674b8..737f5b4309 100644 --- a/examples/dreambooth/test_dreambooth_lora_edm.py +++ b/examples/dreambooth/test_dreambooth_lora_edm.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_flux.py b/examples/dreambooth/test_dreambooth_lora_flux.py index 837a537b5a..3b1391cb35 100644 --- a/examples/dreambooth/test_dreambooth_lora_flux.py +++ b/examples/dreambooth/test_dreambooth_lora_flux.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_hidream.py b/examples/dreambooth/test_dreambooth_lora_hidream.py index 3f48c3095f..df4c70e2e8 100644 --- a/examples/dreambooth/test_dreambooth_lora_hidream.py +++ b/examples/dreambooth/test_dreambooth_lora_hidream.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_lumina2.py b/examples/dreambooth/test_dreambooth_lora_lumina2.py index 1b729a0ff5..984ee0331e 100644 --- a/examples/dreambooth/test_dreambooth_lora_lumina2.py +++ b/examples/dreambooth/test_dreambooth_lora_lumina2.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_sana.py b/examples/dreambooth/test_dreambooth_lora_sana.py index dfceb09a97..6e5727ae71 100644 --- a/examples/dreambooth/test_dreambooth_lora_sana.py +++ b/examples/dreambooth/test_dreambooth_lora_sana.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_lora_sd3.py b/examples/dreambooth/test_dreambooth_lora_sd3.py index 5d6c8bb993..134aeeb1da 100644 --- a/examples/dreambooth/test_dreambooth_lora_sd3.py +++ b/examples/dreambooth/test_dreambooth_lora_sd3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/dreambooth/test_dreambooth_sd3.py b/examples/dreambooth/test_dreambooth_sd3.py index 19fb7243ce..d1b3daf944 100644 --- a/examples/dreambooth/test_dreambooth_sd3.py +++ b/examples/dreambooth/test_dreambooth_sd3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/instruct_pix2pix/test_instruct_pix2pix.py b/examples/instruct_pix2pix/test_instruct_pix2pix.py index f72f95db6a..cfb9c8d854 100644 --- a/examples/instruct_pix2pix/test_instruct_pix2pix.py +++ b/examples/instruct_pix2pix/test_instruct_pix2pix.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/t2i_adapter/test_t2i_adapter.py b/examples/t2i_adapter/test_t2i_adapter.py index cdf124cdd9..be7331d024 100644 --- a/examples/t2i_adapter/test_t2i_adapter.py +++ b/examples/t2i_adapter/test_t2i_adapter.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/test_examples_utils.py b/examples/test_examples_utils.py index b57a35e1f1..f3f3d7541c 100644 --- a/examples/test_examples_utils.py +++ b/examples/test_examples_utils.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/textual_inversion/test_textual_inversion.py b/examples/textual_inversion/test_textual_inversion.py index fa0b2c2bcf..baf8692f22 100644 --- a/examples/textual_inversion/test_textual_inversion.py +++ b/examples/textual_inversion/test_textual_inversion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/textual_inversion/test_textual_inversion_sdxl.py b/examples/textual_inversion/test_textual_inversion_sdxl.py index a861708a70..3af75b44ee 100644 --- a/examples/textual_inversion/test_textual_inversion_sdxl.py +++ b/examples/textual_inversion/test_textual_inversion_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/unconditional_image_generation/test_unconditional.py b/examples/unconditional_image_generation/test_unconditional.py index ef71da0a11..94ea88881e 100644 --- a/examples/unconditional_image_generation/test_unconditional.py +++ b/examples/unconditional_image_generation/test_unconditional.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/diffusers/models/activations.py b/src/diffusers/models/activations.py index 68f4d1d594..2d1fdb5f7d 100644 --- a/src/diffusers/models/activations.py +++ b/src/diffusers/models/activations.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/diffusers/models/normalization.py b/src/diffusers/models/normalization.py index 4a512c5cb1..ae2a6298f5 100644 --- a/src/diffusers/models/normalization.py +++ b/src/diffusers/models/normalization.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/hooks/test_group_offloading.py b/tests/hooks/test_group_offloading.py index 1e115dcaa9..7f778be980 100644 --- a/tests/hooks/test_group_offloading.py +++ b/tests/hooks/test_group_offloading.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/hooks/test_hooks.py b/tests/hooks/test_hooks.py index 53aafc9d2e..7f60acf8d3 100644 --- a/tests/hooks/test_hooks.py +++ b/tests/hooks/test_hooks.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_auraflow.py b/tests/lora/test_lora_layers_auraflow.py index ac1fed608c..d119feae20 100644 --- a/tests/lora/test_lora_layers_auraflow.py +++ b/tests/lora/test_lora_layers_auraflow.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_cogvideox.py b/tests/lora/test_lora_layers_cogvideox.py index 26dcdb1f4f..bd7b33445c 100644 --- a/tests/lora/test_lora_layers_cogvideox.py +++ b/tests/lora/test_lora_layers_cogvideox.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_cogview4.py b/tests/lora/test_lora_layers_cogview4.py index 178de2069b..23573bcb21 100644 --- a/tests/lora/test_lora_layers_cogview4.py +++ b/tests/lora/test_lora_layers_cogview4.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_flux.py b/tests/lora/test_lora_layers_flux.py index 4a74db95f5..336ac2246f 100644 --- a/tests/lora/test_lora_layers_flux.py +++ b/tests/lora/test_lora_layers_flux.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_hunyuanvideo.py b/tests/lora/test_lora_layers_hunyuanvideo.py index 87c3100b59..19e31f320d 100644 --- a/tests/lora/test_lora_layers_hunyuanvideo.py +++ b/tests/lora/test_lora_layers_hunyuanvideo.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_ltx_video.py b/tests/lora/test_lora_layers_ltx_video.py index 0eccaa73ad..88949227cf 100644 --- a/tests/lora/test_lora_layers_ltx_video.py +++ b/tests/lora/test_lora_layers_ltx_video.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_lumina2.py b/tests/lora/test_lora_layers_lumina2.py index 1c8b92ecb7..d7096e79b9 100644 --- a/tests/lora/test_lora_layers_lumina2.py +++ b/tests/lora/test_lora_layers_lumina2.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_mochi.py b/tests/lora/test_lora_layers_mochi.py index 671f1277f9..501a4b35f4 100644 --- a/tests/lora/test_lora_layers_mochi.py +++ b/tests/lora/test_lora_layers_mochi.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_sana.py b/tests/lora/test_lora_layers_sana.py index 78f71527cb..24beb46b95 100644 --- a/tests/lora/test_lora_layers_sana.py +++ b/tests/lora/test_lora_layers_sana.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_sd.py b/tests/lora/test_lora_layers_sd.py index 5295535b3c..a81128fa44 100644 --- a/tests/lora/test_lora_layers_sd.py +++ b/tests/lora/test_lora_layers_sd.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_sd3.py b/tests/lora/test_lora_layers_sd3.py index 06668c9497..8a8f2a676d 100644 --- a/tests/lora/test_lora_layers_sd3.py +++ b/tests/lora/test_lora_layers_sd3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_sdxl.py b/tests/lora/test_lora_layers_sdxl.py index 22d3ecbde8..267650056a 100644 --- a/tests/lora/test_lora_layers_sdxl.py +++ b/tests/lora/test_lora_layers_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/test_lora_layers_wan.py b/tests/lora/test_lora_layers_wan.py index a1420012d6..95ec44b2bf 100644 --- a/tests/lora/test_lora_layers_wan.py +++ b/tests/lora/test_lora_layers_wan.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/lora/utils.py b/tests/lora/utils.py index e419c61f66..3742d395e7 100644 --- a/tests/lora/utils.py +++ b/tests/lora/utils.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_asymmetric_autoencoder_kl.py b/tests/models/autoencoders/test_models_asymmetric_autoencoder_kl.py index 9622850766..4741648359 100644 --- a/tests/models/autoencoders/test_models_asymmetric_autoencoder_kl.py +++ b/tests/models/autoencoders/test_models_asymmetric_autoencoder_kl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_cosmos.py b/tests/models/autoencoders/test_models_autoencoder_cosmos.py index 89b72f8a4f..bc0011a2f0 100644 --- a/tests/models/autoencoders/test_models_autoencoder_cosmos.py +++ b/tests/models/autoencoders/test_models_autoencoder_cosmos.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_dc.py b/tests/models/autoencoders/test_models_autoencoder_dc.py index 5f21593d8e..4d2c3dc663 100644 --- a/tests/models/autoencoders/test_models_autoencoder_dc.py +++ b/tests/models/autoencoders/test_models_autoencoder_dc.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_hunyuan_video.py b/tests/models/autoencoders/test_models_autoencoder_hunyuan_video.py index 00d4b8ed2b..40479991e9 100644 --- a/tests/models/autoencoders/test_models_autoencoder_hunyuan_video.py +++ b/tests/models/autoencoders/test_models_autoencoder_hunyuan_video.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_kl.py b/tests/models/autoencoders/test_models_autoencoder_kl.py index 9126594000..2c323e4f03 100644 --- a/tests/models/autoencoders/test_models_autoencoder_kl.py +++ b/tests/models/autoencoders/test_models_autoencoder_kl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_kl_cogvideox.py b/tests/models/autoencoders/test_models_autoencoder_kl_cogvideox.py index 7336bb3d3e..7ab9520ce6 100644 --- a/tests/models/autoencoders/test_models_autoencoder_kl_cogvideox.py +++ b/tests/models/autoencoders/test_models_autoencoder_kl_cogvideox.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_kl_temporal_decoder.py b/tests/models/autoencoders/test_models_autoencoder_kl_temporal_decoder.py index cf80ff5044..618a448eca 100644 --- a/tests/models/autoencoders/test_models_autoencoder_kl_temporal_decoder.py +++ b/tests/models/autoencoders/test_models_autoencoder_kl_temporal_decoder.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_ltx_video.py b/tests/models/autoencoders/test_models_autoencoder_ltx_video.py index 66d170b28e..c056930a5e 100644 --- a/tests/models/autoencoders/test_models_autoencoder_ltx_video.py +++ b/tests/models/autoencoders/test_models_autoencoder_ltx_video.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_magvit.py b/tests/models/autoencoders/test_models_autoencoder_magvit.py index ee7e5bbdd4..c171176627 100644 --- a/tests/models/autoencoders/test_models_autoencoder_magvit.py +++ b/tests/models/autoencoders/test_models_autoencoder_magvit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_mochi.py b/tests/models/autoencoders/test_models_autoencoder_mochi.py index 77645d3c07..d646693c57 100755 --- a/tests/models/autoencoders/test_models_autoencoder_mochi.py +++ b/tests/models/autoencoders/test_models_autoencoder_mochi.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_oobleck.py b/tests/models/autoencoders/test_models_autoencoder_oobleck.py index 2adea6bda4..5c1d7c8b71 100644 --- a/tests/models/autoencoders/test_models_autoencoder_oobleck.py +++ b/tests/models/autoencoders/test_models_autoencoder_oobleck.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_tiny.py b/tests/models/autoencoders/test_models_autoencoder_tiny.py index bfbfb7ab85..fba2c9eb1b 100644 --- a/tests/models/autoencoders/test_models_autoencoder_tiny.py +++ b/tests/models/autoencoders/test_models_autoencoder_tiny.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_autoencoder_wan.py b/tests/models/autoencoders/test_models_autoencoder_wan.py index 777fc56c67..c0af4f5834 100644 --- a/tests/models/autoencoders/test_models_autoencoder_wan.py +++ b/tests/models/autoencoders/test_models_autoencoder_wan.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_consistency_decoder_vae.py b/tests/models/autoencoders/test_models_consistency_decoder_vae.py index db87004fcb..cdce013cfb 100644 --- a/tests/models/autoencoders/test_models_consistency_decoder_vae.py +++ b/tests/models/autoencoders/test_models_consistency_decoder_vae.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/autoencoders/test_models_vq.py b/tests/models/autoencoders/test_models_vq.py index 77abe139d7..e8ed98f44a 100644 --- a/tests/models/autoencoders/test_models_vq.py +++ b/tests/models/autoencoders/test_models_vq.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/test_layers_utils.py b/tests/models/test_layers_utils.py index 415bb12b73..ec8e01b4b7 100644 --- a/tests/models/test_layers_utils.py +++ b/tests/models/test_layers_utils.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/test_modeling_common.py b/tests/models/test_modeling_common.py index 7a5ed962f3..884f725741 100644 --- a/tests/models/test_modeling_common.py +++ b/tests/models/test_modeling_common.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_dit_transformer2d.py b/tests/models/transformers/test_models_dit_transformer2d.py index 5f4a2f587e..3070321673 100644 --- a/tests/models/transformers/test_models_dit_transformer2d.py +++ b/tests/models/transformers/test_models_dit_transformer2d.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_pixart_transformer2d.py b/tests/models/transformers/test_models_pixart_transformer2d.py index a544a3fc46..38fada0b4b 100644 --- a/tests/models/transformers/test_models_pixart_transformer2d.py +++ b/tests/models/transformers/test_models_pixart_transformer2d.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_prior.py b/tests/models/transformers/test_models_prior.py index 471c1084c0..5d66aadb1b 100644 --- a/tests/models/transformers/test_models_prior.py +++ b/tests/models/transformers/test_models_prior.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_allegro.py b/tests/models/transformers/test_models_transformer_allegro.py index 3479803da6..8a0c475583 100644 --- a/tests/models/transformers/test_models_transformer_allegro.py +++ b/tests/models/transformers/test_models_transformer_allegro.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_aura_flow.py b/tests/models/transformers/test_models_transformer_aura_flow.py index d1ff7d2c96..8dff07373e 100644 --- a/tests/models/transformers/test_models_transformer_aura_flow.py +++ b/tests/models/transformers/test_models_transformer_aura_flow.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_chroma.py b/tests/models/transformers/test_models_transformer_chroma.py index 93df7ca35c..e9fd5a0bfb 100644 --- a/tests/models/transformers/test_models_transformer_chroma.py +++ b/tests/models/transformers/test_models_transformer_chroma.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_cogvideox.py b/tests/models/transformers/test_models_transformer_cogvideox.py index 2b3cca883d..54d1242bf7 100644 --- a/tests/models/transformers/test_models_transformer_cogvideox.py +++ b/tests/models/transformers/test_models_transformer_cogvideox.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_cogview3plus.py b/tests/models/transformers/test_models_transformer_cogview3plus.py index 91c7c35fbd..57131dc3f1 100644 --- a/tests/models/transformers/test_models_transformer_cogview3plus.py +++ b/tests/models/transformers/test_models_transformer_cogview3plus.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_cogview4.py b/tests/models/transformers/test_models_transformer_cogview4.py index e311ce77ea..798453e86d 100644 --- a/tests/models/transformers/test_models_transformer_cogview4.py +++ b/tests/models/transformers/test_models_transformer_cogview4.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_consisid.py b/tests/models/transformers/test_models_transformer_consisid.py index b848ed0140..af2e1e6338 100644 --- a/tests/models/transformers/test_models_transformer_consisid.py +++ b/tests/models/transformers/test_models_transformer_consisid.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_cosmos.py b/tests/models/transformers/test_models_transformer_cosmos.py index 27839b83b1..7d26004d75 100644 --- a/tests/models/transformers/test_models_transformer_cosmos.py +++ b/tests/models/transformers/test_models_transformer_cosmos.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_easyanimate.py b/tests/models/transformers/test_models_transformer_easyanimate.py index 9f10a7da0a..0a255f4d4e 100644 --- a/tests/models/transformers/test_models_transformer_easyanimate.py +++ b/tests/models/transformers/test_models_transformer_easyanimate.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_flux.py b/tests/models/transformers/test_models_transformer_flux.py index 036ed2ea30..0a55236ef1 100644 --- a/tests/models/transformers/test_models_transformer_flux.py +++ b/tests/models/transformers/test_models_transformer_flux.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_hunyuan_dit.py b/tests/models/transformers/test_models_transformer_hunyuan_dit.py index ea05abed38..242ce1f283 100644 --- a/tests/models/transformers/test_models_transformer_hunyuan_dit.py +++ b/tests/models/transformers/test_models_transformer_hunyuan_dit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_hunyuan_video.py b/tests/models/transformers/test_models_transformer_hunyuan_video.py index 112acd0658..b42a3cb5dc 100644 --- a/tests/models/transformers/test_models_transformer_hunyuan_video.py +++ b/tests/models/transformers/test_models_transformer_hunyuan_video.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_hunyuan_video_framepack.py b/tests/models/transformers/test_models_transformer_hunyuan_video_framepack.py index 5f485b210f..ddb79925a7 100644 --- a/tests/models/transformers/test_models_transformer_hunyuan_video_framepack.py +++ b/tests/models/transformers/test_models_transformer_hunyuan_video_framepack.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_latte.py b/tests/models/transformers/test_models_transformer_latte.py index 0cb9094f51..db93421b44 100644 --- a/tests/models/transformers/test_models_transformer_latte.py +++ b/tests/models/transformers/test_models_transformer_latte.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_ltx.py b/tests/models/transformers/test_models_transformer_ltx.py index e624c83b44..2c61658f58 100644 --- a/tests/models/transformers/test_models_transformer_ltx.py +++ b/tests/models/transformers/test_models_transformer_ltx.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_lumina.py b/tests/models/transformers/test_models_transformer_lumina.py index 6744fb8ac8..d0103eb473 100644 --- a/tests/models/transformers/test_models_transformer_lumina.py +++ b/tests/models/transformers/test_models_transformer_lumina.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_lumina2.py b/tests/models/transformers/test_models_transformer_lumina2.py index 4db3ae68aa..731e2ff3d5 100644 --- a/tests/models/transformers/test_models_transformer_lumina2.py +++ b/tests/models/transformers/test_models_transformer_lumina2.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_mochi.py b/tests/models/transformers/test_models_transformer_mochi.py index d284ab9429..db65c03292 100644 --- a/tests/models/transformers/test_models_transformer_mochi.py +++ b/tests/models/transformers/test_models_transformer_mochi.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_omnigen.py b/tests/models/transformers/test_models_transformer_omnigen.py index 1bdcc68b03..25f25a8d63 100644 --- a/tests/models/transformers/test_models_transformer_omnigen.py +++ b/tests/models/transformers/test_models_transformer_omnigen.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_sana.py b/tests/models/transformers/test_models_transformer_sana.py index d4dc30f5d7..6586af0e82 100644 --- a/tests/models/transformers/test_models_transformer_sana.py +++ b/tests/models/transformers/test_models_transformer_sana.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_sd3.py b/tests/models/transformers/test_models_transformer_sd3.py index bfef1fc4f0..10469c0ca9 100644 --- a/tests/models/transformers/test_models_transformer_sd3.py +++ b/tests/models/transformers/test_models_transformer_sd3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_temporal.py b/tests/models/transformers/test_models_transformer_temporal.py index 7b689447cf..183ef22982 100644 --- a/tests/models/transformers/test_models_transformer_temporal.py +++ b/tests/models/transformers/test_models_transformer_temporal.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/transformers/test_models_transformer_wan.py b/tests/models/transformers/test_models_transformer_wan.py index 682289c6c7..932f255984 100644 --- a/tests/models/transformers/test_models_transformer_wan.py +++ b/tests/models/transformers/test_models_transformer_wan.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_1d.py b/tests/models/unets/test_models_unet_1d.py index 7e160f9c12..e3dd608a25 100644 --- a/tests/models/unets/test_models_unet_1d.py +++ b/tests/models/unets/test_models_unet_1d.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_2d.py b/tests/models/unets/test_models_unet_2d.py index 1a7959a877..f6fa82aeb7 100644 --- a/tests/models/unets/test_models_unet_2d.py +++ b/tests/models/unets/test_models_unet_2d.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_2d_condition.py b/tests/models/unets/test_models_unet_2d_condition.py index c8ed68c65b..abf44aa744 100644 --- a/tests/models/unets/test_models_unet_2d_condition.py +++ b/tests/models/unets/test_models_unet_2d_condition.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_3d_condition.py b/tests/models/unets/test_models_unet_3d_condition.py index e798586b69..72d692b6e7 100644 --- a/tests/models/unets/test_models_unet_3d_condition.py +++ b/tests/models/unets/test_models_unet_3d_condition.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_controlnetxs.py b/tests/models/unets/test_models_unet_controlnetxs.py index 9431e81028..cebd18c10d 100644 --- a/tests/models/unets/test_models_unet_controlnetxs.py +++ b/tests/models/unets/test_models_unet_controlnetxs.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_motion.py b/tests/models/unets/test_models_unet_motion.py index 209806a5fe..bf8d6bd007 100644 --- a/tests/models/unets/test_models_unet_motion.py +++ b/tests/models/unets/test_models_unet_motion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_models_unet_spatiotemporal.py b/tests/models/unets/test_models_unet_spatiotemporal.py index 0d7dc823b0..86aa0f6a0e 100644 --- a/tests/models/unets/test_models_unet_spatiotemporal.py +++ b/tests/models/unets/test_models_unet_spatiotemporal.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_unet_2d_blocks.py b/tests/models/unets/test_unet_2d_blocks.py index e371991702..21c0c0f08b 100644 --- a/tests/models/unets/test_unet_2d_blocks.py +++ b/tests/models/unets/test_unet_2d_blocks.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/unets/test_unet_blocks_common.py b/tests/models/unets/test_unet_blocks_common.py index dce28c77cb..ada7c83269 100644 --- a/tests/models/unets/test_unet_blocks_common.py +++ b/tests/models/unets/test_unet_blocks_common.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_config.py b/tests/others/test_config.py index 664c36ac33..a8f93024f7 100644 --- a/tests/others/test_config.py +++ b/tests/others/test_config.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_ema.py b/tests/others/test_ema.py index 7cf8f30ecc..14808b9e58 100644 --- a/tests/others/test_ema.py +++ b/tests/others/test_ema.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_hub_utils.py b/tests/others/test_hub_utils.py index 7a0c29dcb0..0a6b8ef2bd 100644 --- a/tests/others/test_hub_utils.py +++ b/tests/others/test_hub_utils.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_image_processor.py b/tests/others/test_image_processor.py index 071194c59e..e9e5c06706 100644 --- a/tests/others/test_image_processor.py +++ b/tests/others/test_image_processor.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_training.py b/tests/others/test_training.py index 863ba6e107..fb64205301 100644 --- a/tests/others/test_training.py +++ b/tests/others/test_training.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_utils.py b/tests/others/test_utils.py index a17c7a50c8..01b423f556 100755 --- a/tests/others/test_utils.py +++ b/tests/others/test_utils.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/others/test_video_processor.py b/tests/others/test_video_processor.py index a2fc87717f..35c9f99c37 100644 --- a/tests/others/test_video_processor.py +++ b/tests/others/test_video_processor.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/amused/test_amused.py b/tests/pipelines/amused/test_amused.py index ac579bbf2b..94759d1f20 100644 --- a/tests/pipelines/amused/test_amused.py +++ b/tests/pipelines/amused/test_amused.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/amused/test_amused_img2img.py b/tests/pipelines/amused/test_amused_img2img.py index 942735f157..a76d82a2f0 100644 --- a/tests/pipelines/amused/test_amused_img2img.py +++ b/tests/pipelines/amused/test_amused_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/amused/test_amused_inpaint.py b/tests/pipelines/amused/test_amused_inpaint.py index 541b988f17..62f39de8c3 100644 --- a/tests/pipelines/amused/test_amused_inpaint.py +++ b/tests/pipelines/amused/test_amused_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/audioldm/test_audioldm.py b/tests/pipelines/audioldm/test_audioldm.py index 340bc24adc..eb4139f0dc 100644 --- a/tests/pipelines/audioldm/test_audioldm.py +++ b/tests/pipelines/audioldm/test_audioldm.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/audioldm2/test_audioldm2.py b/tests/pipelines/audioldm2/test_audioldm2.py index 14b5510fca..0046f556f2 100644 --- a/tests/pipelines/audioldm2/test_audioldm2.py +++ b/tests/pipelines/audioldm2/test_audioldm2.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/blipdiffusion/test_blipdiffusion.py b/tests/pipelines/blipdiffusion/test_blipdiffusion.py index db8d36b23a..0e3f723fc6 100644 --- a/tests/pipelines/blipdiffusion/test_blipdiffusion.py +++ b/tests/pipelines/blipdiffusion/test_blipdiffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet.py b/tests/pipelines/controlnet/test_controlnet.py index a2951a8b46..bd558a50cf 100644 --- a/tests/pipelines/controlnet/test_controlnet.py +++ b/tests/pipelines/controlnet/test_controlnet.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet_blip_diffusion.py b/tests/pipelines/controlnet/test_controlnet_blip_diffusion.py index a5768cb51f..100082b6f0 100644 --- a/tests/pipelines/controlnet/test_controlnet_blip_diffusion.py +++ b/tests/pipelines/controlnet/test_controlnet_blip_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet_img2img.py b/tests/pipelines/controlnet/test_controlnet_img2img.py index 0147d4a651..dd7bb002a1 100644 --- a/tests/pipelines/controlnet/test_controlnet_img2img.py +++ b/tests/pipelines/controlnet/test_controlnet_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet_inpaint.py b/tests/pipelines/controlnet/test_controlnet_inpaint.py index 63d5fd4660..c457c324c5 100644 --- a/tests/pipelines/controlnet/test_controlnet_inpaint.py +++ b/tests/pipelines/controlnet/test_controlnet_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet_sdxl.py b/tests/pipelines/controlnet/test_controlnet_sdxl.py index 503db2f574..47d0920b74 100644 --- a/tests/pipelines/controlnet/test_controlnet_sdxl.py +++ b/tests/pipelines/controlnet/test_controlnet_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_controlnet_sdxl_img2img.py b/tests/pipelines/controlnet/test_controlnet_sdxl_img2img.py index bf5da16fcb..5a8dd10ad5 100644 --- a/tests/pipelines/controlnet/test_controlnet_sdxl_img2img.py +++ b/tests/pipelines/controlnet/test_controlnet_sdxl_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet/test_flax_controlnet.py b/tests/pipelines/controlnet/test_flax_controlnet.py index c71116dc79..07d3a09e5d 100644 --- a/tests/pipelines/controlnet/test_flax_controlnet.py +++ b/tests/pipelines/controlnet/test_flax_controlnet.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/controlnet_sd3/test_controlnet_inpaint_sd3.py b/tests/pipelines/controlnet_sd3/test_controlnet_inpaint_sd3.py index d9f5dcad7d..fcf8cade67 100644 --- a/tests/pipelines/controlnet_sd3/test_controlnet_inpaint_sd3.py +++ b/tests/pipelines/controlnet_sd3/test_controlnet_inpaint_sd3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/dance_diffusion/test_dance_diffusion.py b/tests/pipelines/dance_diffusion/test_dance_diffusion.py index 881946e6a0..a2a1753214 100644 --- a/tests/pipelines/dance_diffusion/test_dance_diffusion.py +++ b/tests/pipelines/dance_diffusion/test_dance_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/ddim/test_ddim.py b/tests/pipelines/ddim/test_ddim.py index f7e0093c51..57b97b4649 100644 --- a/tests/pipelines/ddim/test_ddim.py +++ b/tests/pipelines/ddim/test_ddim.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/ddpm/test_ddpm.py b/tests/pipelines/ddpm/test_ddpm.py index 750885db2c..97bb53128d 100644 --- a/tests/pipelines/ddpm/test_ddpm.py +++ b/tests/pipelines/ddpm/test_ddpm.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if.py b/tests/pipelines/deepfloyd_if/test_if.py index 8445229079..633d802ab9 100644 --- a/tests/pipelines/deepfloyd_if/test_if.py +++ b/tests/pipelines/deepfloyd_if/test_if.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if_img2img.py b/tests/pipelines/deepfloyd_if/test_if_img2img.py index 14271a9862..739d2a0e16 100644 --- a/tests/pipelines/deepfloyd_if/test_if_img2img.py +++ b/tests/pipelines/deepfloyd_if/test_if_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if_img2img_superresolution.py b/tests/pipelines/deepfloyd_if/test_if_img2img_superresolution.py index 77f2f9c7bb..fb89aab8e2 100644 --- a/tests/pipelines/deepfloyd_if/test_if_img2img_superresolution.py +++ b/tests/pipelines/deepfloyd_if/test_if_img2img_superresolution.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if_inpainting.py b/tests/pipelines/deepfloyd_if/test_if_inpainting.py index a62d957257..127ae19aa6 100644 --- a/tests/pipelines/deepfloyd_if/test_if_inpainting.py +++ b/tests/pipelines/deepfloyd_if/test_if_inpainting.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if_inpainting_superresolution.py b/tests/pipelines/deepfloyd_if/test_if_inpainting_superresolution.py index f98284bef6..8b5210194a 100644 --- a/tests/pipelines/deepfloyd_if/test_if_inpainting_superresolution.py +++ b/tests/pipelines/deepfloyd_if/test_if_inpainting_superresolution.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/deepfloyd_if/test_if_superresolution.py b/tests/pipelines/deepfloyd_if/test_if_superresolution.py index 435b0cc6ec..c16b3d6a56 100644 --- a/tests/pipelines/deepfloyd_if/test_if_superresolution.py +++ b/tests/pipelines/deepfloyd_if/test_if_superresolution.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/dit/test_dit.py b/tests/pipelines/dit/test_dit.py index 65f39db078..46e28a28e1 100644 --- a/tests/pipelines/dit/test_dit.py +++ b/tests/pipelines/dit/test_dit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/hidream/test_pipeline_hidream.py b/tests/pipelines/hidream/test_pipeline_hidream.py index 525e29eaa6..ada4a11d16 100644 --- a/tests/pipelines/hidream/test_pipeline_hidream.py +++ b/tests/pipelines/hidream/test_pipeline_hidream.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/hunyuandit/test_hunyuan_dit.py b/tests/pipelines/hunyuandit/test_hunyuan_dit.py index 05c94262ab..5aa6372a89 100644 --- a/tests/pipelines/hunyuandit/test_hunyuan_dit.py +++ b/tests/pipelines/hunyuandit/test_hunyuan_dit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/i2vgen_xl/test_i2vgenxl.py b/tests/pipelines/i2vgen_xl/test_i2vgenxl.py index f9dd4fb7bc..bedd63738a 100644 --- a/tests/pipelines/i2vgen_xl/test_i2vgenxl.py +++ b/tests/pipelines/i2vgen_xl/test_i2vgenxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/ip_adapters/test_ip_adapter_stable_diffusion.py b/tests/pipelines/ip_adapters/test_ip_adapter_stable_diffusion.py index bad03ff801..f5980f218a 100644 --- a/tests/pipelines/ip_adapters/test_ip_adapter_stable_diffusion.py +++ b/tests/pipelines/ip_adapters/test_ip_adapter_stable_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky/test_kandinsky.py b/tests/pipelines/kandinsky/test_kandinsky.py index f4de6f3a53..65a5195a8b 100644 --- a/tests/pipelines/kandinsky/test_kandinsky.py +++ b/tests/pipelines/kandinsky/test_kandinsky.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky/test_kandinsky_combined.py b/tests/pipelines/kandinsky/test_kandinsky_combined.py index f14a741d7d..6dd8895952 100644 --- a/tests/pipelines/kandinsky/test_kandinsky_combined.py +++ b/tests/pipelines/kandinsky/test_kandinsky_combined.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky/test_kandinsky_img2img.py b/tests/pipelines/kandinsky/test_kandinsky_img2img.py index 1697099780..5a0107838a 100644 --- a/tests/pipelines/kandinsky/test_kandinsky_img2img.py +++ b/tests/pipelines/kandinsky/test_kandinsky_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky/test_kandinsky_inpaint.py b/tests/pipelines/kandinsky/test_kandinsky_inpaint.py index d4d5c4e48f..03b555b2f0 100644 --- a/tests/pipelines/kandinsky/test_kandinsky_inpaint.py +++ b/tests/pipelines/kandinsky/test_kandinsky_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky/test_kandinsky_prior.py b/tests/pipelines/kandinsky/test_kandinsky_prior.py index abb53bfb79..8ecf2d855f 100644 --- a/tests/pipelines/kandinsky/test_kandinsky_prior.py +++ b/tests/pipelines/kandinsky/test_kandinsky_prior.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky.py b/tests/pipelines/kandinsky2_2/test_kandinsky.py index aa17f6fc5d..0ad5620eee 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_combined.py b/tests/pipelines/kandinsky2_2/test_kandinsky_combined.py index b365c574a9..1e064d3368 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_combined.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_combined.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet.py b/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet.py index 6454152b7a..84085f9d7d 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet_img2img.py b/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet_img2img.py index c99b7b738a..4f50f51819 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet_img2img.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_controlnet_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_img2img.py b/tests/pipelines/kandinsky2_2/test_kandinsky_img2img.py index aa7589a212..bc1477b97e 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_img2img.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_inpaint.py b/tests/pipelines/kandinsky2_2/test_kandinsky_inpaint.py index d7ac698207..8b3d8f74ec 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_inpaint.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_prior.py b/tests/pipelines/kandinsky2_2/test_kandinsky_prior.py index bdec6c132f..f5c2d6037b 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_prior.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_prior.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky2_2/test_kandinsky_prior_emb2emb.py b/tests/pipelines/kandinsky2_2/test_kandinsky_prior_emb2emb.py index 0ea32981d5..54a9cf6d60 100644 --- a/tests/pipelines/kandinsky2_2/test_kandinsky_prior_emb2emb.py +++ b/tests/pipelines/kandinsky2_2/test_kandinsky_prior_emb2emb.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky3/test_kandinsky3.py b/tests/pipelines/kandinsky3/test_kandinsky3.py index c54b91f024..1acf076b3d 100644 --- a/tests/pipelines/kandinsky3/test_kandinsky3.py +++ b/tests/pipelines/kandinsky3/test_kandinsky3.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kandinsky3/test_kandinsky3_img2img.py b/tests/pipelines/kandinsky3/test_kandinsky3_img2img.py index 088c32e286..edad5b7d37 100644 --- a/tests/pipelines/kandinsky3/test_kandinsky3_img2img.py +++ b/tests/pipelines/kandinsky3/test_kandinsky3_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kolors/test_kolors.py b/tests/pipelines/kolors/test_kolors.py index 15c735a8c8..839d06ab93 100644 --- a/tests/pipelines/kolors/test_kolors.py +++ b/tests/pipelines/kolors/test_kolors.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/kolors/test_kolors_img2img.py b/tests/pipelines/kolors/test_kolors_img2img.py index f3caed704a..c8429322ca 100644 --- a/tests/pipelines/kolors/test_kolors_img2img.py +++ b/tests/pipelines/kolors/test_kolors_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/latent_diffusion/test_latent_diffusion.py b/tests/pipelines/latent_diffusion/test_latent_diffusion.py index 245116d5fa..ec52f5aebf 100644 --- a/tests/pipelines/latent_diffusion/test_latent_diffusion.py +++ b/tests/pipelines/latent_diffusion/test_latent_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/latent_diffusion/test_latent_diffusion_superresolution.py b/tests/pipelines/latent_diffusion/test_latent_diffusion_superresolution.py index 38ac6a46cc..2884dd3508 100644 --- a/tests/pipelines/latent_diffusion/test_latent_diffusion_superresolution.py +++ b/tests/pipelines/latent_diffusion/test_latent_diffusion_superresolution.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/musicldm/test_musicldm.py b/tests/pipelines/musicldm/test_musicldm.py index 7f553e919c..5d6392865b 100644 --- a/tests/pipelines/musicldm/test_musicldm.py +++ b/tests/pipelines/musicldm/test_musicldm.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_controlnet_sd.py b/tests/pipelines/pag/test_pag_controlnet_sd.py index 02232c7379..378f0a130c 100644 --- a/tests/pipelines/pag/test_pag_controlnet_sd.py +++ b/tests/pipelines/pag/test_pag_controlnet_sd.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_controlnet_sd_inpaint.py b/tests/pipelines/pag/test_pag_controlnet_sd_inpaint.py index cfc0b218d2..5eff71ed64 100644 --- a/tests/pipelines/pag/test_pag_controlnet_sd_inpaint.py +++ b/tests/pipelines/pag/test_pag_controlnet_sd_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_controlnet_sdxl.py b/tests/pipelines/pag/test_pag_controlnet_sdxl.py index 10adff7fe0..4d7e4f072e 100644 --- a/tests/pipelines/pag/test_pag_controlnet_sdxl.py +++ b/tests/pipelines/pag/test_pag_controlnet_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_controlnet_sdxl_img2img.py b/tests/pipelines/pag/test_pag_controlnet_sdxl_img2img.py index fe4b615f64..dec029a499 100644 --- a/tests/pipelines/pag/test_pag_controlnet_sdxl_img2img.py +++ b/tests/pipelines/pag/test_pag_controlnet_sdxl_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_hunyuan_dit.py b/tests/pipelines/pag/test_pag_hunyuan_dit.py index d6cfbbed9e..65f39f585d 100644 --- a/tests/pipelines/pag/test_pag_hunyuan_dit.py +++ b/tests/pipelines/pag/test_pag_hunyuan_dit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_kolors.py b/tests/pipelines/pag/test_pag_kolors.py index c9f197b703..b504b77801 100644 --- a/tests/pipelines/pag/test_pag_kolors.py +++ b/tests/pipelines/pag/test_pag_kolors.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_pixart_sigma.py b/tests/pipelines/pag/test_pag_pixart_sigma.py index c79f5ee821..eb9399c9b3 100644 --- a/tests/pipelines/pag/test_pag_pixart_sigma.py +++ b/tests/pipelines/pag/test_pag_pixart_sigma.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sd.py b/tests/pipelines/pag/test_pag_sd.py index bc20226873..ee9a74ed03 100644 --- a/tests/pipelines/pag/test_pag_sd.py +++ b/tests/pipelines/pag/test_pag_sd.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sd_img2img.py b/tests/pipelines/pag/test_pag_sd_img2img.py index ef70985571..668e798463 100644 --- a/tests/pipelines/pag/test_pag_sd_img2img.py +++ b/tests/pipelines/pag/test_pag_sd_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sd_inpaint.py b/tests/pipelines/pag/test_pag_sd_inpaint.py index 04ec8b2165..f856041422 100644 --- a/tests/pipelines/pag/test_pag_sd_inpaint.py +++ b/tests/pipelines/pag/test_pag_sd_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sdxl.py b/tests/pipelines/pag/test_pag_sdxl.py index fc4ce1067f..5c1608d210 100644 --- a/tests/pipelines/pag/test_pag_sdxl.py +++ b/tests/pipelines/pag/test_pag_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sdxl_img2img.py b/tests/pipelines/pag/test_pag_sdxl_img2img.py index 0e5c2cc7f9..2e18fdcebb 100644 --- a/tests/pipelines/pag/test_pag_sdxl_img2img.py +++ b/tests/pipelines/pag/test_pag_sdxl_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pag/test_pag_sdxl_inpaint.py b/tests/pipelines/pag/test_pag_sdxl_inpaint.py index 854c65cbc7..e36716b603 100644 --- a/tests/pipelines/pag/test_pag_sdxl_inpaint.py +++ b/tests/pipelines/pag/test_pag_sdxl_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/paint_by_example/test_paint_by_example.py b/tests/pipelines/paint_by_example/test_paint_by_example.py index 4192bc71ca..f122c7411d 100644 --- a/tests/pipelines/paint_by_example/test_paint_by_example.py +++ b/tests/pipelines/paint_by_example/test_paint_by_example.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pixart_alpha/test_pixart.py b/tests/pipelines/pixart_alpha/test_pixart.py index ea5cfcef86..933a005c4a 100644 --- a/tests/pipelines/pixart_alpha/test_pixart.py +++ b/tests/pipelines/pixart_alpha/test_pixart.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pixart_sigma/test_pixart.py b/tests/pipelines/pixart_sigma/test_pixart.py index 7084fc9bce..cda7b442d7 100644 --- a/tests/pipelines/pixart_sigma/test_pixart.py +++ b/tests/pipelines/pixart_sigma/test_pixart.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/pndm/test_pndm.py b/tests/pipelines/pndm/test_pndm.py index 5efb244919..2c12690ad1 100644 --- a/tests/pipelines/pndm/test_pndm.py +++ b/tests/pipelines/pndm/test_pndm.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/semantic_stable_diffusion/test_semantic_diffusion.py b/tests/pipelines/semantic_stable_diffusion/test_semantic_diffusion.py index 7b543920f2..b4d82b0fb2 100644 --- a/tests/pipelines/semantic_stable_diffusion/test_semantic_diffusion.py +++ b/tests/pipelines/semantic_stable_diffusion/test_semantic_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/shap_e/test_shap_e.py b/tests/pipelines/shap_e/test_shap_e.py index 638de7e8cc..47cc97844e 100644 --- a/tests/pipelines/shap_e/test_shap_e.py +++ b/tests/pipelines/shap_e/test_shap_e.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/shap_e/test_shap_e_img2img.py b/tests/pipelines/shap_e/test_shap_e_img2img.py index ed0a4d47b6..ba9f9fe521 100644 --- a/tests/pipelines/shap_e/test_shap_e_img2img.py +++ b/tests/pipelines/shap_e/test_shap_e_img2img.py @@ -1,4 +1,4 @@ -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_audio/test_stable_audio.py b/tests/pipelines/stable_audio/test_stable_audio.py index f8f4803ccf..5167dfdf0c 100644 --- a/tests/pipelines/stable_audio/test_stable_audio.py +++ b/tests/pipelines/stable_audio/test_stable_audio.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_cascade/test_stable_cascade_combined.py b/tests/pipelines/stable_cascade/test_stable_cascade_combined.py index d433a461bd..0a75b1e8b9 100644 --- a/tests/pipelines/stable_cascade/test_stable_cascade_combined.py +++ b/tests/pipelines/stable_cascade/test_stable_cascade_combined.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_cascade/test_stable_cascade_decoder.py b/tests/pipelines/stable_cascade/test_stable_cascade_decoder.py index 2b51e59f6b..d0c9fc891f 100644 --- a/tests/pipelines/stable_cascade/test_stable_cascade_decoder.py +++ b/tests/pipelines/stable_cascade/test_stable_cascade_decoder.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_cascade/test_stable_cascade_prior.py b/tests/pipelines/stable_cascade/test_stable_cascade_prior.py index 0374de9b02..90633adea9 100644 --- a/tests/pipelines/stable_cascade/test_stable_cascade_prior.py +++ b/tests/pipelines/stable_cascade/test_stable_cascade_prior.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion.py b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion.py index f7036dee47..69c105743b 100644 --- a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion.py +++ b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_img2img.py b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_img2img.py index c73ed0f6af..8a470fc668 100644 --- a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_img2img.py +++ b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_inpaint.py b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_inpaint.py index 09048b5c0e..6bca7b288c 100644 --- a/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_inpaint.py +++ b/tests/pipelines/stable_diffusion/test_onnx_stable_diffusion_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_stable_diffusion.py b/tests/pipelines/stable_diffusion/test_stable_diffusion.py index 2c6739c8ef..bcad693501 100644 --- a/tests/pipelines/stable_diffusion/test_stable_diffusion.py +++ b/tests/pipelines/stable_diffusion/test_stable_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_stable_diffusion_img2img.py b/tests/pipelines/stable_diffusion/test_stable_diffusion_img2img.py index 094e98d09e..c80667656e 100644 --- a/tests/pipelines/stable_diffusion/test_stable_diffusion_img2img.py +++ b/tests/pipelines/stable_diffusion/test_stable_diffusion_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_stable_diffusion_inpaint.py b/tests/pipelines/stable_diffusion/test_stable_diffusion_inpaint.py index 8456994d6f..20a9848118 100644 --- a/tests/pipelines/stable_diffusion/test_stable_diffusion_inpaint.py +++ b/tests/pipelines/stable_diffusion/test_stable_diffusion_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion/test_stable_diffusion_instruction_pix2pix.py b/tests/pipelines/stable_diffusion/test_stable_diffusion_instruction_pix2pix.py index 9721bb02ee..1654831a99 100644 --- a/tests/pipelines/stable_diffusion/test_stable_diffusion_instruction_pix2pix.py +++ b/tests/pipelines/stable_diffusion/test_stable_diffusion_instruction_pix2pix.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion.py index 3f9f7e965b..b3b5ba3de4 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_attend_and_excite.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_attend_and_excite.py index 8399e57bfb..45fc70be23 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_attend_and_excite.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_attend_and_excite.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_depth.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_depth.py index 0a00518161..6f772e5df1 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_depth.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_depth.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_diffedit.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_diffedit.py index c190a789b1..9f8870af7b 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_diffedit.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_diffedit.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax.py index 9e4fa76708..77014bd7a5 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax_inpaint.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax_inpaint.py index eeec52dab5..d83c696736 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax_inpaint.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_flax_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_inpaint.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_inpaint.py index ff4a33abf8..238874c7f8 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_inpaint.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_latent_upscale.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_latent_upscale.py index 22e588a932..50cb9aa4b7 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_latent_upscale.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_latent_upscale.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_upscale.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_upscale.py index 5400c21c9f..a0949db7ee 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_upscale.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_upscale.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_v_pred.py b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_v_pred.py index 1953017c0e..55d801fd6c 100644 --- a/tests/pipelines/stable_diffusion_2/test_stable_diffusion_v_pred.py +++ b/tests/pipelines/stable_diffusion_2/test_stable_diffusion_v_pred.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_gligen/test_stable_diffusion_gligen.py b/tests/pipelines/stable_diffusion_gligen/test_stable_diffusion_gligen.py index b3ac507f76..5d56f16803 100644 --- a/tests/pipelines/stable_diffusion_gligen/test_stable_diffusion_gligen.py +++ b/tests/pipelines/stable_diffusion_gligen/test_stable_diffusion_gligen.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_gligen_text_image/test_stable_diffusion_gligen_text_image.py b/tests/pipelines/stable_diffusion_gligen_text_image/test_stable_diffusion_gligen_text_image.py index b080bb987e..3f092e02dd 100644 --- a/tests/pipelines/stable_diffusion_gligen_text_image/test_stable_diffusion_gligen_text_image.py +++ b/tests/pipelines/stable_diffusion_gligen_text_image/test_stable_diffusion_gligen_text_image.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_image_variation/test_stable_diffusion_image_variation.py b/tests/pipelines/stable_diffusion_image_variation/test_stable_diffusion_image_variation.py index f706e7000b..5eca6c2380 100644 --- a/tests/pipelines/stable_diffusion_image_variation/test_stable_diffusion_image_variation.py +++ b/tests/pipelines/stable_diffusion_image_variation/test_stable_diffusion_image_variation.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_k_diffusion/test_stable_diffusion_k_diffusion.py b/tests/pipelines/stable_diffusion_k_diffusion/test_stable_diffusion_k_diffusion.py index 33a44c0fcd..dc7e62078a 100644 --- a/tests/pipelines/stable_diffusion_k_diffusion/test_stable_diffusion_k_diffusion.py +++ b/tests/pipelines/stable_diffusion_k_diffusion/test_stable_diffusion_k_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_ldm3d/test_stable_diffusion_ldm3d.py b/tests/pipelines/stable_diffusion_ldm3d/test_stable_diffusion_ldm3d.py index 2c4ae94ede..936e22b470 100644 --- a/tests/pipelines/stable_diffusion_ldm3d/test_stable_diffusion_ldm3d.py +++ b/tests/pipelines/stable_diffusion_ldm3d/test_stable_diffusion_ldm3d.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_panorama/test_stable_diffusion_panorama.py b/tests/pipelines/stable_diffusion_panorama/test_stable_diffusion_panorama.py index fcde294120..61f91cae2b 100644 --- a/tests/pipelines/stable_diffusion_panorama/test_stable_diffusion_panorama.py +++ b/tests/pipelines/stable_diffusion_panorama/test_stable_diffusion_panorama.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_safe/test_safe_diffusion.py b/tests/pipelines/stable_diffusion_safe/test_safe_diffusion.py index bb95115541..5d81cff3e0 100644 --- a/tests/pipelines/stable_diffusion_safe/test_safe_diffusion.py +++ b/tests/pipelines/stable_diffusion_safe/test_safe_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_sag/test_stable_diffusion_sag.py b/tests/pipelines/stable_diffusion_sag/test_stable_diffusion_sag.py index ebdd17c46f..1d18403322 100644 --- a/tests/pipelines/stable_diffusion_sag/test_stable_diffusion_sag.py +++ b/tests/pipelines/stable_diffusion_sag/test_stable_diffusion_sag.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl.py b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl.py index 11f08c8820..966d864843 100644 --- a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl.py +++ b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_adapter.py b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_adapter.py index 0733362386..c39c9bedaf 100644 --- a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_adapter.py +++ b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_adapter.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_img2img.py b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_img2img.py index 7d19d745a2..450891b257 100644 --- a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_img2img.py +++ b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_img2img.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_inpaint.py b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_inpaint.py index 729c6981d2..6ac820547d 100644 --- a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_inpaint.py +++ b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_inpaint.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_k_diffusion.py b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_k_diffusion.py index c4894f2950..ae131d1d4f 100644 --- a/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_k_diffusion.py +++ b/tests/pipelines/stable_diffusion_xl/test_stable_diffusion_xl_k_diffusion.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/test_pipelines.py b/tests/pipelines/test_pipelines.py index c4db662784..6c342bcbe6 100644 --- a/tests/pipelines/test_pipelines.py +++ b/tests/pipelines/test_pipelines.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/test_pipelines_auto.py b/tests/pipelines/test_pipelines_auto.py index 561a9011c6..de4b447f66 100644 --- a/tests/pipelines/test_pipelines_auto.py +++ b/tests/pipelines/test_pipelines_auto.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/test_pipelines_combined.py b/tests/pipelines/test_pipelines_combined.py index adedd54fea..fffc053bae 100644 --- a/tests/pipelines/test_pipelines_combined.py +++ b/tests/pipelines/test_pipelines_combined.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/test_pipelines_flax.py b/tests/pipelines/test_pipelines_flax.py index efd3da4c61..ffe43ac9d7 100644 --- a/tests/pipelines/test_pipelines_flax.py +++ b/tests/pipelines/test_pipelines_flax.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/text_to_video_synthesis/test_text_to_video.py b/tests/pipelines/text_to_video_synthesis/test_text_to_video.py index 5d0f8299f6..445f876985 100644 --- a/tests/pipelines/text_to_video_synthesis/test_text_to_video.py +++ b/tests/pipelines/text_to_video_synthesis/test_text_to_video.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero.py b/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero.py index 3146414646..8c29b27416 100644 --- a/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero.py +++ b/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero_sdxl.py b/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero_sdxl.py index 827e83243b..da60435d0d 100644 --- a/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero_sdxl.py +++ b/tests/pipelines/text_to_video_synthesis/test_text_to_video_zero_sdxl.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/text_to_video_synthesis/test_video_to_video.py b/tests/pipelines/text_to_video_synthesis/test_video_to_video.py index f44a8aa33c..2efef3d640 100644 --- a/tests/pipelines/text_to_video_synthesis/test_video_to_video.py +++ b/tests/pipelines/text_to_video_synthesis/test_video_to_video.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/unclip/test_unclip.py b/tests/pipelines/unclip/test_unclip.py index 64f3d9de24..4a970a4f6f 100644 --- a/tests/pipelines/unclip/test_unclip.py +++ b/tests/pipelines/unclip/test_unclip.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/unclip/test_unclip_image_variation.py b/tests/pipelines/unclip/test_unclip_image_variation.py index 3aa3c1b115..15733513a5 100644 --- a/tests/pipelines/unclip/test_unclip_image_variation.py +++ b/tests/pipelines/unclip/test_unclip_image_variation.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/wuerstchen/test_wuerstchen_combined.py b/tests/pipelines/wuerstchen/test_wuerstchen_combined.py index fa544c91f2..060a11434e 100644 --- a/tests/pipelines/wuerstchen/test_wuerstchen_combined.py +++ b/tests/pipelines/wuerstchen/test_wuerstchen_combined.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/wuerstchen/test_wuerstchen_decoder.py b/tests/pipelines/wuerstchen/test_wuerstchen_decoder.py index b566e894b8..5d2462d48d 100644 --- a/tests/pipelines/wuerstchen/test_wuerstchen_decoder.py +++ b/tests/pipelines/wuerstchen/test_wuerstchen_decoder.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/pipelines/wuerstchen/test_wuerstchen_prior.py b/tests/pipelines/wuerstchen/test_wuerstchen_prior.py index 4bc086e7f6..34f7c684b7 100644 --- a/tests/pipelines/wuerstchen/test_wuerstchen_prior.py +++ b/tests/pipelines/wuerstchen/test_wuerstchen_prior.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/schedulers/test_scheduler_flax.py b/tests/schedulers/test_scheduler_flax.py index 8ccb5f6594..c8121d3341 100644 --- a/tests/schedulers/test_scheduler_flax.py +++ b/tests/schedulers/test_scheduler_flax.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/schedulers/test_schedulers.py b/tests/schedulers/test_schedulers.py index 42ca1bc541..cd8dc5ccf1 100755 --- a/tests/schedulers/test_schedulers.py +++ b/tests/schedulers/test_schedulers.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_autoencoder_dc_single_file.py b/tests/single_file/test_model_autoencoder_dc_single_file.py index 27348fa7b2..184498ca2f 100644 --- a/tests/single_file/test_model_autoencoder_dc_single_file.py +++ b/tests/single_file/test_model_autoencoder_dc_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_controlnet_single_file.py b/tests/single_file/test_model_controlnet_single_file.py index 3580d73531..ade6f63a50 100644 --- a/tests/single_file/test_model_controlnet_single_file.py +++ b/tests/single_file/test_model_controlnet_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_flux_transformer_single_file.py b/tests/single_file/test_model_flux_transformer_single_file.py index 81779cf8fa..2f837bd18e 100644 --- a/tests/single_file/test_model_flux_transformer_single_file.py +++ b/tests/single_file/test_model_flux_transformer_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_motion_adapter_single_file.py b/tests/single_file/test_model_motion_adapter_single_file.py index a747f16dc1..dc08a95b84 100644 --- a/tests/single_file/test_model_motion_adapter_single_file.py +++ b/tests/single_file/test_model_motion_adapter_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_sd_cascade_unet_single_file.py b/tests/single_file/test_model_sd_cascade_unet_single_file.py index 92b371c3fb..a16278c6b0 100644 --- a/tests/single_file/test_model_sd_cascade_unet_single_file.py +++ b/tests/single_file/test_model_sd_cascade_unet_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/single_file/test_model_vae_single_file.py b/tests/single_file/test_model_vae_single_file.py index bba1726ae3..9d994b5b49 100644 --- a/tests/single_file/test_model_vae_single_file.py +++ b/tests/single_file/test_model_vae_single_file.py @@ -1,5 +1,5 @@ # coding=utf-8 -# Copyright 2024 HuggingFace Inc. +# Copyright 2025 HuggingFace Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 66394bf6c798a93a1e9536dac4999f77b690174c Mon Sep 17 00:00:00 2001 From: Dhruv Nair Date: Wed, 18 Jun 2025 18:54:41 +0200 Subject: [PATCH 2/6] Chroma Follow Up (#11725) * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * update * updte * update * update * update --- src/diffusers/__init__.py | 2 + src/diffusers/models/attention_processor.py | 8 +- .../models/transformers/transformer_chroma.py | 20 +- src/diffusers/pipelines/__init__.py | 4 +- src/diffusers/pipelines/chroma/__init__.py | 2 + .../pipelines/chroma/pipeline_chroma.py | 125 +- .../chroma/pipeline_chroma_img2img.py | 1039 +++++++++++++++++ .../dummy_torch_and_transformers_objects.py | 15 + .../chroma/test_pipeline_chroma_img2img.py | 170 +++ 9 files changed, 1356 insertions(+), 29 deletions(-) create mode 100644 src/diffusers/pipelines/chroma/pipeline_chroma_img2img.py create mode 100644 tests/pipelines/chroma/test_pipeline_chroma_img2img.py diff --git a/src/diffusers/__init__.py b/src/diffusers/__init__.py index e27c908ece..81051b9f25 100644 --- a/src/diffusers/__init__.py +++ b/src/diffusers/__init__.py @@ -353,6 +353,7 @@ else: "AuraFlowPipeline", "BlipDiffusionControlNetPipeline", "BlipDiffusionPipeline", + "ChromaImg2ImgPipeline", "ChromaPipeline", "CLIPImageProjection", "CogVideoXFunControlPipeline", @@ -945,6 +946,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: AudioLDM2UNet2DConditionModel, AudioLDMPipeline, AuraFlowPipeline, + ChromaImg2ImgPipeline, ChromaPipeline, CLIPImageProjection, CogVideoXFunControlPipeline, diff --git a/src/diffusers/models/attention_processor.py b/src/diffusers/models/attention_processor.py index 23ae05e2ab..291e96eb6d 100755 --- a/src/diffusers/models/attention_processor.py +++ b/src/diffusers/models/attention_processor.py @@ -2543,7 +2543,9 @@ class FusedFluxAttnProcessor2_0: query = apply_rotary_emb(query, image_rotary_emb) key = apply_rotary_emb(key, image_rotary_emb) - hidden_states = F.scaled_dot_product_attention(query, key, value, dropout_p=0.0, is_causal=False) + hidden_states = F.scaled_dot_product_attention( + query, key, value, attn_mask=attention_mask, dropout_p=0.0, is_causal=False + ) hidden_states = hidden_states.transpose(1, 2).reshape(batch_size, -1, attn.heads * head_dim) hidden_states = hidden_states.to(query.dtype) @@ -2776,7 +2778,9 @@ class FluxIPAdapterJointAttnProcessor2_0(torch.nn.Module): query = apply_rotary_emb(query, image_rotary_emb) key = apply_rotary_emb(key, image_rotary_emb) - hidden_states = F.scaled_dot_product_attention(query, key, value, dropout_p=0.0, is_causal=False) + hidden_states = F.scaled_dot_product_attention( + query, key, value, attn_mask=attention_mask, dropout_p=0.0, is_causal=False + ) hidden_states = hidden_states.transpose(1, 2).reshape(batch_size, -1, attn.heads * head_dim) hidden_states = hidden_states.to(query.dtype) diff --git a/src/diffusers/models/transformers/transformer_chroma.py b/src/diffusers/models/transformers/transformer_chroma.py index 2b415cfed2..d11f6c2a5e 100644 --- a/src/diffusers/models/transformers/transformer_chroma.py +++ b/src/diffusers/models/transformers/transformer_chroma.py @@ -250,15 +250,21 @@ class ChromaSingleTransformerBlock(nn.Module): hidden_states: torch.Tensor, temb: torch.Tensor, image_rotary_emb: Optional[Tuple[torch.Tensor, torch.Tensor]] = None, + attention_mask: Optional[torch.Tensor] = None, joint_attention_kwargs: Optional[Dict[str, Any]] = None, ) -> torch.Tensor: residual = hidden_states norm_hidden_states, gate = self.norm(hidden_states, emb=temb) mlp_hidden_states = self.act_mlp(self.proj_mlp(norm_hidden_states)) joint_attention_kwargs = joint_attention_kwargs or {} + + if attention_mask is not None: + attention_mask = attention_mask[:, None, None, :] * attention_mask[:, None, :, None] + attn_output = self.attn( hidden_states=norm_hidden_states, image_rotary_emb=image_rotary_emb, + attention_mask=attention_mask, **joint_attention_kwargs, ) @@ -312,6 +318,7 @@ class ChromaTransformerBlock(nn.Module): encoder_hidden_states: torch.Tensor, temb: torch.Tensor, image_rotary_emb: Optional[Tuple[torch.Tensor, torch.Tensor]] = None, + attention_mask: Optional[torch.Tensor] = None, joint_attention_kwargs: Optional[Dict[str, Any]] = None, ) -> Tuple[torch.Tensor, torch.Tensor]: temb_img, temb_txt = temb[:, :6], temb[:, 6:] @@ -321,11 +328,15 @@ class ChromaTransformerBlock(nn.Module): encoder_hidden_states, emb=temb_txt ) joint_attention_kwargs = joint_attention_kwargs or {} + if attention_mask is not None: + attention_mask = attention_mask[:, None, None, :] * attention_mask[:, None, :, None] + # Attention. attention_outputs = self.attn( hidden_states=norm_hidden_states, encoder_hidden_states=norm_encoder_hidden_states, image_rotary_emb=image_rotary_emb, + attention_mask=attention_mask, **joint_attention_kwargs, ) @@ -570,6 +581,7 @@ class ChromaTransformer2DModel( timestep: torch.LongTensor = None, img_ids: torch.Tensor = None, txt_ids: torch.Tensor = None, + attention_mask: torch.Tensor = None, joint_attention_kwargs: Optional[Dict[str, Any]] = None, controlnet_block_samples=None, controlnet_single_block_samples=None, @@ -659,11 +671,7 @@ class ChromaTransformer2DModel( ) if torch.is_grad_enabled() and self.gradient_checkpointing: encoder_hidden_states, hidden_states = self._gradient_checkpointing_func( - block, - hidden_states, - encoder_hidden_states, - temb, - image_rotary_emb, + block, hidden_states, encoder_hidden_states, temb, image_rotary_emb, attention_mask ) else: @@ -672,6 +680,7 @@ class ChromaTransformer2DModel( encoder_hidden_states=encoder_hidden_states, temb=temb, image_rotary_emb=image_rotary_emb, + attention_mask=attention_mask, joint_attention_kwargs=joint_attention_kwargs, ) @@ -704,6 +713,7 @@ class ChromaTransformer2DModel( hidden_states=hidden_states, temb=temb, image_rotary_emb=image_rotary_emb, + attention_mask=attention_mask, joint_attention_kwargs=joint_attention_kwargs, ) diff --git a/src/diffusers/pipelines/__init__.py b/src/diffusers/pipelines/__init__.py index 2fca49f51f..b32d55bd51 100644 --- a/src/diffusers/pipelines/__init__.py +++ b/src/diffusers/pipelines/__init__.py @@ -148,7 +148,7 @@ else: "AudioLDM2UNet2DConditionModel", ] _import_structure["blip_diffusion"] = ["BlipDiffusionPipeline"] - _import_structure["chroma"] = ["ChromaPipeline"] + _import_structure["chroma"] = ["ChromaPipeline", "ChromaImg2ImgPipeline"] _import_structure["cogvideo"] = [ "CogVideoXPipeline", "CogVideoXImageToVideoPipeline", @@ -537,7 +537,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: ) from .aura_flow import AuraFlowPipeline from .blip_diffusion import BlipDiffusionPipeline - from .chroma import ChromaPipeline + from .chroma import ChromaImg2ImgPipeline, ChromaPipeline from .cogvideo import ( CogVideoXFunControlPipeline, CogVideoXImageToVideoPipeline, diff --git a/src/diffusers/pipelines/chroma/__init__.py b/src/diffusers/pipelines/chroma/__init__.py index 9faa7902a1..d9238b735c 100644 --- a/src/diffusers/pipelines/chroma/__init__.py +++ b/src/diffusers/pipelines/chroma/__init__.py @@ -23,6 +23,7 @@ except OptionalDependencyNotAvailable: _dummy_objects.update(get_objects_from_module(dummy_torch_and_transformers_objects)) else: _import_structure["pipeline_chroma"] = ["ChromaPipeline"] + _import_structure["pipeline_chroma_img2img"] = ["ChromaImg2ImgPipeline"] if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: try: if not (is_transformers_available() and is_torch_available()): @@ -31,6 +32,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: from ...utils.dummy_torch_and_transformers_objects import * # noqa F403 else: from .pipeline_chroma import ChromaPipeline + from .pipeline_chroma_img2img import ChromaImg2ImgPipeline else: import sys diff --git a/src/diffusers/pipelines/chroma/pipeline_chroma.py b/src/diffusers/pipelines/chroma/pipeline_chroma.py index c111458d33..6ce1b7e5f0 100644 --- a/src/diffusers/pipelines/chroma/pipeline_chroma.py +++ b/src/diffusers/pipelines/chroma/pipeline_chroma.py @@ -1,4 +1,4 @@ -# Copyright 2024 Black Forest Labs and The HuggingFace Team. All rights reserved. +# Copyright 2025 Black Forest Labs and The HuggingFace Team. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -52,12 +52,21 @@ EXAMPLE_DOC_STRING = """ >>> import torch >>> from diffusers import ChromaPipeline - >>> pipe = ChromaPipeline.from_single_file( - ... "chroma-unlocked-v35-detail-calibrated.safetensors", torch_dtype=torch.bfloat16 + >>> ckpt_path = "https://huggingface.co/lodestones/Chroma/blob/main/chroma-unlocked-v37.safetensors" + >>> transformer = ChromaTransformer2DModel.from_single_file(ckpt_path, torch_dtype=torch.bfloat16) + >>> text_encoder = AutoModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2") + >>> tokenizer = AutoTokenizer.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2") + >>> pipe = ChromaImg2ImgPipeline.from_pretrained( + ... "black-forest-labs/FLUX.1-schnell", + ... transformer=transformer, + ... text_encoder=text_encoder, + ... tokenizer=tokenizer, + ... torch_dtype=torch.bfloat16, ... ) - >>> pipe.to("cuda") + >>> pipe.enable_model_cpu_offload() >>> prompt = "A cat holding a sign that says hello world" - >>> image = pipe(prompt, num_inference_steps=28, guidance_scale=4.0).images[0] + >>> negative_prompt = "low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors" + >>> image = pipe(prompt, negative_prompt=negative_prompt).images[0] >>> image.save("chroma.png") ``` """ @@ -235,6 +244,7 @@ class ChromaPipeline( dtype = self.text_encoder.dtype prompt_embeds = prompt_embeds.to(dtype=dtype, device=device) + attention_mask = attention_mask.to(dtype=dtype, device=device) _, seq_len, _ = prompt_embeds.shape @@ -242,7 +252,10 @@ class ChromaPipeline( prompt_embeds = prompt_embeds.repeat(1, num_images_per_prompt, 1) prompt_embeds = prompt_embeds.view(batch_size * num_images_per_prompt, seq_len, -1) - return prompt_embeds + attention_mask = attention_mask.repeat(1, num_images_per_prompt) + attention_mask = attention_mask.view(batch_size * num_images_per_prompt, seq_len) + + return prompt_embeds, attention_mask def encode_prompt( self, @@ -250,8 +263,10 @@ class ChromaPipeline( negative_prompt: Union[str, List[str]] = None, device: Optional[torch.device] = None, num_images_per_prompt: int = 1, - prompt_embeds: Optional[torch.FloatTensor] = None, - negative_prompt_embeds: Optional[torch.FloatTensor] = None, + prompt_embeds: Optional[torch.Tensor] = None, + negative_prompt_embeds: Optional[torch.Tensor] = None, + prompt_attention_mask: Optional[torch.Tensor] = None, + negative_prompt_attention_mask: Optional[torch.Tensor] = None, do_classifier_free_guidance: bool = True, max_sequence_length: int = 512, lora_scale: Optional[float] = None, @@ -268,7 +283,7 @@ class ChromaPipeline( torch device num_images_per_prompt (`int`): number of images that should be generated per prompt - prompt_embeds (`torch.FloatTensor`, *optional*): + prompt_embeds (`torch.Tensor`, *optional*): Pre-generated text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt weighting. If not provided, text embeddings will be generated from `prompt` input argument. lora_scale (`float`, *optional*): @@ -293,7 +308,7 @@ class ChromaPipeline( batch_size = prompt_embeds.shape[0] if prompt_embeds is None: - prompt_embeds = self._get_t5_prompt_embeds( + prompt_embeds, prompt_attention_mask = self._get_t5_prompt_embeds( prompt=prompt, num_images_per_prompt=num_images_per_prompt, max_sequence_length=max_sequence_length, @@ -323,12 +338,13 @@ class ChromaPipeline( " the batch size of `prompt`." ) - negative_prompt_embeds = self._get_t5_prompt_embeds( + negative_prompt_embeds, negative_prompt_attention_mask = self._get_t5_prompt_embeds( prompt=negative_prompt, num_images_per_prompt=num_images_per_prompt, max_sequence_length=max_sequence_length, device=device, ) + negative_text_ids = torch.zeros(negative_prompt_embeds.shape[1], 3).to(device=device, dtype=dtype) if self.text_encoder is not None: @@ -336,7 +352,14 @@ class ChromaPipeline( # Retrieve the original scale by scaling back the LoRA layers unscale_lora_layers(self.text_encoder, lora_scale) - return prompt_embeds, text_ids, negative_prompt_embeds, negative_text_ids + return ( + prompt_embeds, + text_ids, + prompt_attention_mask, + negative_prompt_embeds, + negative_text_ids, + negative_prompt_attention_mask, + ) # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.encode_image def encode_image(self, image, device, num_images_per_prompt): @@ -394,7 +417,9 @@ class ChromaPipeline( width, negative_prompt=None, prompt_embeds=None, + prompt_attention_mask=None, negative_prompt_embeds=None, + negative_prompt_attention_mask=None, callback_on_step_end_tensor_inputs=None, max_sequence_length=None, ): @@ -428,6 +453,14 @@ class ChromaPipeline( f" {negative_prompt_embeds}. Please make sure to only forward one of the two." ) + if prompt_embeds is not None and prompt_attention_mask is None: + raise ValueError("Cannot provide `prompt_embeds` without also providing `prompt_attention_mask") + + if negative_prompt_embeds is not None and negative_prompt_attention_mask is None: + raise ValueError( + "Cannot provide `negative_prompt_embeds` without also providing `negative_prompt_attention_mask" + ) + if max_sequence_length is not None and max_sequence_length > 512: raise ValueError(f"`max_sequence_length` cannot be greater than 512 but is {max_sequence_length}") @@ -534,6 +567,25 @@ class ChromaPipeline( return latents, latent_image_ids + def _prepare_attention_mask( + self, + batch_size, + sequence_length, + dtype, + attention_mask=None, + ): + if attention_mask is None: + return attention_mask + + # Extend the prompt attention mask to account for image tokens in the final sequence + attention_mask = torch.cat( + [attention_mask, torch.ones(batch_size, sequence_length, device=attention_mask.device)], + dim=1, + ) + attention_mask = attention_mask.to(dtype) + + return attention_mask + @property def guidance_scale(self): return self._guidance_scale @@ -566,18 +618,20 @@ class ChromaPipeline( negative_prompt: Union[str, List[str]] = None, height: Optional[int] = None, width: Optional[int] = None, - num_inference_steps: int = 28, + num_inference_steps: int = 35, sigmas: Optional[List[float]] = None, - guidance_scale: float = 3.5, + guidance_scale: float = 5.0, num_images_per_prompt: Optional[int] = 1, generator: Optional[Union[torch.Generator, List[torch.Generator]]] = None, - latents: Optional[torch.FloatTensor] = None, - prompt_embeds: Optional[torch.FloatTensor] = None, + latents: Optional[torch.Tensor] = None, + prompt_embeds: Optional[torch.Tensor] = None, ip_adapter_image: Optional[PipelineImageInput] = None, ip_adapter_image_embeds: Optional[List[torch.Tensor]] = None, negative_ip_adapter_image: Optional[PipelineImageInput] = None, negative_ip_adapter_image_embeds: Optional[List[torch.Tensor]] = None, - negative_prompt_embeds: Optional[torch.FloatTensor] = None, + negative_prompt_embeds: Optional[torch.Tensor] = None, + prompt_attention_mask: Optional[torch.Tensor] = None, + negative_prompt_attention_mask: Optional[torch.Tensor] = None, output_type: Optional[str] = "pil", return_dict: bool = True, joint_attention_kwargs: Optional[Dict[str, Any]] = None, @@ -618,11 +672,11 @@ class ChromaPipeline( generator (`torch.Generator` or `List[torch.Generator]`, *optional*): One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make generation deterministic. - latents (`torch.FloatTensor`, *optional*): + latents (`torch.Tensor`, *optional*): Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for image generation. Can be used to tweak the same generation with different prompts. If not provided, a latents tensor will ge generated by sampling using the supplied random `generator`. - prompt_embeds (`torch.FloatTensor`, *optional*): + prompt_embeds (`torch.Tensor`, *optional*): Pre-generated text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt weighting. If not provided, text embeddings will be generated from `prompt` input argument. ip_adapter_image: (`PipelineImageInput`, *optional*): Optional image input to work with IP Adapters. @@ -636,10 +690,18 @@ class ChromaPipeline( Pre-generated image embeddings for IP-Adapter. It should be a list of length same as number of IP-adapters. Each element should be a tensor of shape `(batch_size, num_images, emb_dim)`. If not provided, embeddings are computed from the `ip_adapter_image` input argument. - negative_prompt_embeds (`torch.FloatTensor`, *optional*): + negative_prompt_embeds (`torch.Tensor`, *optional*): Pre-generated negative text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt weighting. If not provided, negative_prompt_embeds will be generated from `negative_prompt` input argument. + prompt_attention_mask (torch.Tensor, *optional*): + Attention mask for the prompt embeddings. Used to mask out padding tokens in the prompt sequence. + Chroma requires a single padding token remain unmasked. Please refer to + https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training + negative_prompt_attention_mask (torch.Tensor, *optional*): + Attention mask for the negative prompt embeddings. Used to mask out padding tokens in the negative + prompt sequence. Chroma requires a single padding token remain unmasked. PLease refer to + https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training output_type (`str`, *optional*, defaults to `"pil"`): The output format of the generate image. Choose between [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` or `np.array`. @@ -678,7 +740,9 @@ class ChromaPipeline( width, negative_prompt=negative_prompt, prompt_embeds=prompt_embeds, + prompt_attention_mask=prompt_attention_mask, negative_prompt_embeds=negative_prompt_embeds, + negative_prompt_attention_mask=negative_prompt_attention_mask, callback_on_step_end_tensor_inputs=callback_on_step_end_tensor_inputs, max_sequence_length=max_sequence_length, ) @@ -704,13 +768,17 @@ class ChromaPipeline( ( prompt_embeds, text_ids, + prompt_attention_mask, negative_prompt_embeds, negative_text_ids, + negative_prompt_attention_mask, ) = self.encode_prompt( prompt=prompt, negative_prompt=negative_prompt, prompt_embeds=prompt_embeds, negative_prompt_embeds=negative_prompt_embeds, + prompt_attention_mask=prompt_attention_mask, + negative_prompt_attention_mask=negative_prompt_attention_mask, do_classifier_free_guidance=self.do_classifier_free_guidance, device=device, num_images_per_prompt=num_images_per_prompt, @@ -730,6 +798,7 @@ class ChromaPipeline( generator, latents, ) + # 5. Prepare timesteps sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) if sigmas is None else sigmas image_seq_len = latents.shape[1] @@ -740,6 +809,20 @@ class ChromaPipeline( self.scheduler.config.get("base_shift", 0.5), self.scheduler.config.get("max_shift", 1.15), ) + + attention_mask = self._prepare_attention_mask( + batch_size=latents.shape[0], + sequence_length=image_seq_len, + dtype=latents.dtype, + attention_mask=prompt_attention_mask, + ) + negative_attention_mask = self._prepare_attention_mask( + batch_size=latents.shape[0], + sequence_length=image_seq_len, + dtype=latents.dtype, + attention_mask=negative_prompt_attention_mask, + ) + timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, num_inference_steps, @@ -801,6 +884,7 @@ class ChromaPipeline( encoder_hidden_states=prompt_embeds, txt_ids=text_ids, img_ids=latent_image_ids, + attention_mask=attention_mask, joint_attention_kwargs=self.joint_attention_kwargs, return_dict=False, )[0] @@ -814,6 +898,7 @@ class ChromaPipeline( encoder_hidden_states=negative_prompt_embeds, txt_ids=negative_text_ids, img_ids=latent_image_ids, + attention_mask=negative_attention_mask, joint_attention_kwargs=self.joint_attention_kwargs, return_dict=False, )[0] diff --git a/src/diffusers/pipelines/chroma/pipeline_chroma_img2img.py b/src/diffusers/pipelines/chroma/pipeline_chroma_img2img.py new file mode 100644 index 0000000000..ce1643147e --- /dev/null +++ b/src/diffusers/pipelines/chroma/pipeline_chroma_img2img.py @@ -0,0 +1,1039 @@ +# Copyright 2025 Black Forest Labs and The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import inspect +from typing import Any, Callable, Dict, List, Optional, Union + +import numpy as np +import torch +from transformers import CLIPImageProcessor, CLIPVisionModelWithProjection, T5EncoderModel, T5TokenizerFast + +from ...image_processor import PipelineImageInput, VaeImageProcessor +from ...loaders import FluxIPAdapterMixin, FluxLoraLoaderMixin, FromSingleFileMixin, TextualInversionLoaderMixin +from ...models import AutoencoderKL, ChromaTransformer2DModel +from ...schedulers import FlowMatchEulerDiscreteScheduler +from ...utils import ( + USE_PEFT_BACKEND, + is_torch_xla_available, + logging, + replace_example_docstring, + scale_lora_layers, + unscale_lora_layers, +) +from ...utils.torch_utils import randn_tensor +from ..pipeline_utils import DiffusionPipeline +from .pipeline_output import ChromaPipelineOutput + + +if is_torch_xla_available(): + import torch_xla.core.xla_model as xm + + XLA_AVAILABLE = True +else: + XLA_AVAILABLE = False + + +logger = logging.get_logger(__name__) # pylint: disable=invalid-name + +EXAMPLE_DOC_STRING = """ + Examples: + ```py + >>> import torch + >>> from diffusers import ChromaTransformer2DModel, ChromaImg2ImgPipeline + >>> from transformers import AutoModel, Autotokenizer + + >>> ckpt_path = "https://huggingface.co/lodestones/Chroma/blob/main/chroma-unlocked-v37.safetensors" + >>> transformer = ChromaTransformer2DModel.from_single_file(ckpt_path, torch_dtype=torch.bfloat16) + >>> text_encoder = AutoModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2") + >>> tokenizer = AutoTokenizer.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2") + >>> pipe = ChromaImg2ImgPipeline.from_pretrained( + ... "black-forest-labs/FLUX.1-schnell", + ... transformer=transformer, + ... text_encoder=text_encoder, + ... tokenizer=tokenizer, + ... torch_dtype=torch.bfloat16, + ... ) + >>> pipe.enable_model_cpu_offload() + >>> image = load_image( + ... "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg" + ... ) + >>> prompt = "a scenic fastasy landscape with a river and mountains in the background, vibrant colors, detailed, high resolution" + >>> negative_prompt = "low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors" + >>> image = pipe(prompt, image=image, negative_prompt=negative_prompt).images[0] + >>> image.save("chroma-img2img.png") + ``` +""" + + +# Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift +def calculate_shift( + image_seq_len, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.15, +): + m = (max_shift - base_shift) / (max_seq_len - base_seq_len) + b = base_shift - m * base_seq_len + mu = image_seq_len * m + b + return mu + + +# Copied from diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion_img2img.retrieve_latents +def retrieve_latents( + encoder_output: torch.Tensor, generator: Optional[torch.Generator] = None, sample_mode: str = "sample" +): + if hasattr(encoder_output, "latent_dist") and sample_mode == "sample": + return encoder_output.latent_dist.sample(generator) + elif hasattr(encoder_output, "latent_dist") and sample_mode == "argmax": + return encoder_output.latent_dist.mode() + elif hasattr(encoder_output, "latents"): + return encoder_output.latents + else: + raise AttributeError("Could not access latents of provided encoder_output") + + +# Copied from diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion.retrieve_timesteps +def retrieve_timesteps( + scheduler, + num_inference_steps: Optional[int] = None, + device: Optional[Union[str, torch.device]] = None, + timesteps: Optional[List[int]] = None, + sigmas: Optional[List[float]] = None, + **kwargs, +): + r""" + Calls the scheduler's `set_timesteps` method and retrieves timesteps from the scheduler after the call. Handles + custom timesteps. Any kwargs will be supplied to `scheduler.set_timesteps`. + + Args: + scheduler (`SchedulerMixin`): + The scheduler to get timesteps from. + num_inference_steps (`int`): + The number of diffusion steps used when generating samples with a pre-trained model. If used, `timesteps` + must be `None`. + device (`str` or `torch.device`, *optional*): + The device to which the timesteps should be moved to. If `None`, the timesteps are not moved. + timesteps (`List[int]`, *optional*): + Custom timesteps used to override the timestep spacing strategy of the scheduler. If `timesteps` is passed, + `num_inference_steps` and `sigmas` must be `None`. + sigmas (`List[float]`, *optional*): + Custom sigmas used to override the timestep spacing strategy of the scheduler. If `sigmas` is passed, + `num_inference_steps` and `timesteps` must be `None`. + + Returns: + `Tuple[torch.Tensor, int]`: A tuple where the first element is the timestep schedule from the scheduler and the + second element is the number of inference steps. + """ + if timesteps is not None and sigmas is not None: + raise ValueError("Only one of `timesteps` or `sigmas` can be passed. Please choose one to set custom values") + if timesteps is not None: + accepts_timesteps = "timesteps" in set(inspect.signature(scheduler.set_timesteps).parameters.keys()) + if not accepts_timesteps: + raise ValueError( + f"The current scheduler class {scheduler.__class__}'s `set_timesteps` does not support custom" + f" timestep schedules. Please check whether you are using the correct scheduler." + ) + scheduler.set_timesteps(timesteps=timesteps, device=device, **kwargs) + timesteps = scheduler.timesteps + num_inference_steps = len(timesteps) + elif sigmas is not None: + accept_sigmas = "sigmas" in set(inspect.signature(scheduler.set_timesteps).parameters.keys()) + if not accept_sigmas: + raise ValueError( + f"The current scheduler class {scheduler.__class__}'s `set_timesteps` does not support custom" + f" sigmas schedules. Please check whether you are using the correct scheduler." + ) + scheduler.set_timesteps(sigmas=sigmas, device=device, **kwargs) + timesteps = scheduler.timesteps + num_inference_steps = len(timesteps) + else: + scheduler.set_timesteps(num_inference_steps, device=device, **kwargs) + timesteps = scheduler.timesteps + return timesteps, num_inference_steps + + +class ChromaImg2ImgPipeline( + DiffusionPipeline, + FluxLoraLoaderMixin, + FromSingleFileMixin, + TextualInversionLoaderMixin, + FluxIPAdapterMixin, +): + r""" + The Chroma pipeline for image-to-image generation. + + Reference: https://huggingface.co/lodestones/Chroma/ + + Args: + transformer ([`ChromaTransformer2DModel`]): + Conditional Transformer (MMDiT) architecture to denoise the encoded image latents. + scheduler ([`FlowMatchEulerDiscreteScheduler`]): + A scheduler to be used in combination with `transformer` to denoise the encoded image latents. + vae ([`AutoencoderKL`]): + Variational Auto-Encoder (VAE) Model to encode and decode images to and from latent representation + text_encoder ([`T5EncoderModel`]): + [T5](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel), specifically + the [google/t5-v1_1-xxl](https://huggingface.co/google/t5-v1_1-xxl) variant. + tokenizer (`T5TokenizerFast`): + Second Tokenizer of class + [T5TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5TokenizerFast). + """ + + model_cpu_offload_seq = "text_encoder->image_encoder->transformer->vae" + _optional_components = ["image_encoder", "feature_extractor"] + _callback_tensor_inputs = ["latents", "prompt_embeds"] + + def __init__( + self, + scheduler: FlowMatchEulerDiscreteScheduler, + vae: AutoencoderKL, + text_encoder: T5EncoderModel, + tokenizer: T5TokenizerFast, + transformer: ChromaTransformer2DModel, + image_encoder: CLIPVisionModelWithProjection = None, + feature_extractor: CLIPImageProcessor = None, + ): + super().__init__() + + self.register_modules( + vae=vae, + text_encoder=text_encoder, + tokenizer=tokenizer, + transformer=transformer, + scheduler=scheduler, + image_encoder=image_encoder, + feature_extractor=feature_extractor, + ) + self.vae_scale_factor = 2 ** (len(self.vae.config.block_out_channels) - 1) if getattr(self, "vae", None) else 8 + self.latent_channels = self.vae.config.latent_channels if getattr(self, "vae", None) else 16 + + # Flux latents are turned into 2x2 patches and packed. This means the latent width and height has to be divisible + # by the patch size. So the vae scale factor is multiplied by the patch size to account for this + self.image_processor = VaeImageProcessor(vae_scale_factor=self.vae_scale_factor * 2) + self.default_sample_size = 128 + + def _get_t5_prompt_embeds( + self, + prompt: Union[str, List[str]] = None, + num_images_per_prompt: int = 1, + max_sequence_length: int = 512, + device: Optional[torch.device] = None, + dtype: Optional[torch.dtype] = None, + ): + device = device or self._execution_device + dtype = dtype or self.text_encoder.dtype + + prompt = [prompt] if isinstance(prompt, str) else prompt + batch_size = len(prompt) + + if isinstance(self, TextualInversionLoaderMixin): + prompt = self.maybe_convert_prompt(prompt, self.tokenizer) + + text_inputs = self.tokenizer( + prompt, + padding="max_length", + max_length=max_sequence_length, + truncation=True, + return_length=False, + return_overflowing_tokens=False, + return_tensors="pt", + ) + text_input_ids = text_inputs.input_ids + attention_mask = text_inputs.attention_mask.clone() + + # Chroma requires the attention mask to include one padding token + seq_lengths = attention_mask.sum(dim=1) + mask_indices = torch.arange(attention_mask.size(1)).unsqueeze(0).expand(batch_size, -1) + attention_mask = (mask_indices <= seq_lengths.unsqueeze(1)).long() + + prompt_embeds = self.text_encoder( + text_input_ids.to(device), output_hidden_states=False, attention_mask=attention_mask.to(device) + )[0] + + dtype = self.text_encoder.dtype + prompt_embeds = prompt_embeds.to(dtype=dtype, device=device) + attention_mask = attention_mask.to(dtype=dtype, device=device) + + _, seq_len, _ = prompt_embeds.shape + + # duplicate text embeddings and attention mask for each generation per prompt, using mps friendly method + prompt_embeds = prompt_embeds.repeat(1, num_images_per_prompt, 1) + prompt_embeds = prompt_embeds.view(batch_size * num_images_per_prompt, seq_len, -1) + + attention_mask = attention_mask.repeat(1, num_images_per_prompt) + attention_mask = attention_mask.view(batch_size * num_images_per_prompt, seq_len) + + return prompt_embeds, attention_mask + + # Copied from diffusers.pipelines.stable_diffusion_3.pipeline_stable_diffusion_3_inpaint.StableDiffusion3InpaintPipeline._encode_vae_image + def _encode_vae_image(self, image: torch.Tensor, generator: torch.Generator): + if isinstance(generator, list): + image_latents = [ + retrieve_latents(self.vae.encode(image[i : i + 1]), generator=generator[i]) + for i in range(image.shape[0]) + ] + image_latents = torch.cat(image_latents, dim=0) + else: + image_latents = retrieve_latents(self.vae.encode(image), generator=generator) + + image_latents = (image_latents - self.vae.config.shift_factor) * self.vae.config.scaling_factor + + return image_latents + + def encode_prompt( + self, + prompt: Union[str, List[str]], + negative_prompt: Union[str, List[str]] = None, + device: Optional[torch.device] = None, + num_images_per_prompt: int = 1, + prompt_embeds: Optional[torch.Tensor] = None, + negative_prompt_embeds: Optional[torch.Tensor] = None, + prompt_attention_mask: Optional[torch.Tensor] = None, + negative_prompt_attention_mask: Optional[torch.Tensor] = None, + do_classifier_free_guidance: bool = True, + max_sequence_length: int = 512, + lora_scale: Optional[float] = None, + ): + r""" + + Args: + prompt (`str` or `List[str]`, *optional*): + prompt to be encoded + negative_prompt (`str` or `List[str]`, *optional*): + The prompt not to guide the image generation. If not defined, one has to pass `negative_prompt_embeds` + instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is less than `1`). + device: (`torch.device`): + torch device + num_images_per_prompt (`int`): + number of images that should be generated per prompt + prompt_embeds (`torch.Tensor`, *optional*): + Pre-generated text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt weighting. If not + provided, text embeddings will be generated from `prompt` input argument. + lora_scale (`float`, *optional*): + A lora scale that will be applied to all LoRA layers of the text encoder if LoRA layers are loaded. + """ + device = device or self._execution_device + + # set lora scale so that monkey patched LoRA + # function of text encoder can correctly access it + if lora_scale is not None and isinstance(self, FluxLoraLoaderMixin): + self._lora_scale = lora_scale + + # dynamically adjust the LoRA scale + if self.text_encoder is not None and USE_PEFT_BACKEND: + scale_lora_layers(self.text_encoder, lora_scale) + + prompt = [prompt] if isinstance(prompt, str) else prompt + + if prompt is not None: + batch_size = len(prompt) + else: + batch_size = prompt_embeds.shape[0] + + if prompt_embeds is None: + prompt_embeds, prompt_attention_mask = self._get_t5_prompt_embeds( + prompt=prompt, + num_images_per_prompt=num_images_per_prompt, + max_sequence_length=max_sequence_length, + device=device, + ) + + dtype = self.text_encoder.dtype if self.text_encoder is not None else self.transformer.dtype + text_ids = torch.zeros(prompt_embeds.shape[1], 3).to(device=device, dtype=dtype) + negative_text_ids = None + + if do_classifier_free_guidance: + if negative_prompt_embeds is None: + negative_prompt = negative_prompt or "" + negative_prompt = ( + batch_size * [negative_prompt] if isinstance(negative_prompt, str) else negative_prompt + ) + + if prompt is not None and type(prompt) is not type(negative_prompt): + raise TypeError( + f"`negative_prompt` should be the same type to `prompt`, but got {type(negative_prompt)} !=" + f" {type(prompt)}." + ) + elif batch_size != len(negative_prompt): + raise ValueError( + f"`negative_prompt`: {negative_prompt} has batch size {len(negative_prompt)}, but `prompt`:" + f" {prompt} has batch size {batch_size}. Please make sure that passed `negative_prompt` matches" + " the batch size of `prompt`." + ) + + negative_prompt_embeds, negative_prompt_attention_mask = self._get_t5_prompt_embeds( + prompt=negative_prompt, + num_images_per_prompt=num_images_per_prompt, + max_sequence_length=max_sequence_length, + device=device, + ) + + negative_text_ids = torch.zeros(negative_prompt_embeds.shape[1], 3).to(device=device, dtype=dtype) + + if self.text_encoder is not None: + if isinstance(self, FluxLoraLoaderMixin) and USE_PEFT_BACKEND: + # Retrieve the original scale by scaling back the LoRA layers + unscale_lora_layers(self.text_encoder, lora_scale) + + return ( + prompt_embeds, + text_ids, + prompt_attention_mask, + negative_prompt_embeds, + negative_text_ids, + negative_prompt_attention_mask, + ) + + # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.encode_image + def encode_image(self, image, device, num_images_per_prompt): + dtype = next(self.image_encoder.parameters()).dtype + + if not isinstance(image, torch.Tensor): + image = self.feature_extractor(image, return_tensors="pt").pixel_values + + image = image.to(device=device, dtype=dtype) + image_embeds = self.image_encoder(image).image_embeds + image_embeds = image_embeds.repeat_interleave(num_images_per_prompt, dim=0) + return image_embeds + + def prepare_ip_adapter_image_embeds( + self, ip_adapter_image, ip_adapter_image_embeds, device, num_images_per_prompt + ): + device = device or self._execution_device + + image_embeds = [] + if ip_adapter_image_embeds is None: + if not isinstance(ip_adapter_image, list): + ip_adapter_image = [ip_adapter_image] + + if len(ip_adapter_image) != self.transformer.encoder_hid_proj.num_ip_adapters: + raise ValueError( + f"`ip_adapter_image` must have same length as the number of IP Adapters. Got {len(ip_adapter_image)} images and {self.transformer.encoder_hid_proj.num_ip_adapters} IP Adapters." + ) + + for single_ip_adapter_image in ip_adapter_image: + single_image_embeds = self.encode_image(single_ip_adapter_image, device, 1) + image_embeds.append(single_image_embeds[None, :]) + else: + if not isinstance(ip_adapter_image_embeds, list): + ip_adapter_image_embeds = [ip_adapter_image_embeds] + + if len(ip_adapter_image_embeds) != self.transformer.encoder_hid_proj.num_ip_adapters: + raise ValueError( + f"`ip_adapter_image_embeds` must have same length as the number of IP Adapters. Got {len(ip_adapter_image_embeds)} image embeds and {self.transformer.encoder_hid_proj.num_ip_adapters} IP Adapters." + ) + + for single_image_embeds in ip_adapter_image_embeds: + image_embeds.append(single_image_embeds) + + ip_adapter_image_embeds = [] + for single_image_embeds in image_embeds: + single_image_embeds = torch.cat([single_image_embeds] * num_images_per_prompt, dim=0) + single_image_embeds = single_image_embeds.to(device=device) + ip_adapter_image_embeds.append(single_image_embeds) + + return ip_adapter_image_embeds + + def check_inputs( + self, + prompt, + height, + width, + strength, + negative_prompt=None, + prompt_embeds=None, + negative_prompt_embeds=None, + prompt_attention_mask=None, + negative_prompt_attention_mask=None, + callback_on_step_end_tensor_inputs=None, + max_sequence_length=None, + ): + if strength < 0 or strength > 1: + raise ValueError(f"The value of strength should in [0.0, 1.0] but is {strength}") + + if height % (self.vae_scale_factor * 2) != 0 or width % (self.vae_scale_factor * 2) != 0: + logger.warning( + f"`height` and `width` have to be divisible by {self.vae_scale_factor * 2} but are {height} and {width}. Dimensions will be resized accordingly" + ) + + if callback_on_step_end_tensor_inputs is not None and not all( + k in self._callback_tensor_inputs for k in callback_on_step_end_tensor_inputs + ): + raise ValueError( + f"`callback_on_step_end_tensor_inputs` has to be in {self._callback_tensor_inputs}, but found {[k for k in callback_on_step_end_tensor_inputs if k not in self._callback_tensor_inputs]}" + ) + + if prompt is not None and prompt_embeds is not None: + raise ValueError( + f"Cannot forward both `prompt`: {prompt} and `prompt_embeds`: {prompt_embeds}. Please make sure to" + " only forward one of the two." + ) + elif prompt is None and prompt_embeds is None: + raise ValueError( + "Provide either `prompt` or `prompt_embeds`. Cannot leave both `prompt` and `prompt_embeds` undefined." + ) + elif prompt is not None and (not isinstance(prompt, str) and not isinstance(prompt, list)): + raise ValueError(f"`prompt` has to be of type `str` or `list` but is {type(prompt)}") + + if negative_prompt is not None and negative_prompt_embeds is not None: + raise ValueError( + f"Cannot forward both `negative_prompt`: {negative_prompt} and `negative_prompt_embeds`:" + f" {negative_prompt_embeds}. Please make sure to only forward one of the two." + ) + + if prompt_embeds is not None and prompt_attention_mask is None: + raise ValueError("Cannot provide `prompt_embeds` without also providing `prompt_attention_mask") + + if negative_prompt_embeds is not None and negative_prompt_attention_mask is None: + raise ValueError( + "Cannot provide `negative_prompt_embeds` without also providing `negative_prompt_attention_mask" + ) + + if max_sequence_length is not None and max_sequence_length > 512: + raise ValueError(f"`max_sequence_length` cannot be greater than 512 but is {max_sequence_length}") + + @staticmethod + def _prepare_latent_image_ids(height, width, device, dtype): + latent_image_ids = torch.zeros(height, width, 3) + latent_image_ids[..., 1] = latent_image_ids[..., 1] + torch.arange(height)[:, None] + latent_image_ids[..., 2] = latent_image_ids[..., 2] + torch.arange(width)[None, :] + + latent_image_id_height, latent_image_id_width, latent_image_id_channels = latent_image_ids.shape + + latent_image_ids = latent_image_ids.reshape( + latent_image_id_height * latent_image_id_width, latent_image_id_channels + ) + + return latent_image_ids.to(device=device, dtype=dtype) + + @staticmethod + def _pack_latents(latents, batch_size, num_channels_latents, height, width): + latents = latents.view(batch_size, num_channels_latents, height // 2, 2, width // 2, 2) + latents = latents.permute(0, 2, 4, 1, 3, 5) + latents = latents.reshape(batch_size, (height // 2) * (width // 2), num_channels_latents * 4) + + return latents + + @staticmethod + def _unpack_latents(latents, height, width, vae_scale_factor): + batch_size, num_patches, channels = latents.shape + + # VAE applies 8x compression on images but we must also account for packing which requires + # latent height and width to be divisible by 2. + height = 2 * (int(height) // (vae_scale_factor * 2)) + width = 2 * (int(width) // (vae_scale_factor * 2)) + + latents = latents.view(batch_size, height // 2, width // 2, channels // 4, 2, 2) + latents = latents.permute(0, 3, 1, 4, 2, 5) + + latents = latents.reshape(batch_size, channels // (2 * 2), height, width) + + return latents + + def enable_vae_slicing(self): + r""" + Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to + compute decoding in several steps. This is useful to save some memory and allow larger batch sizes. + """ + self.vae.enable_slicing() + + def disable_vae_slicing(self): + r""" + Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to + computing decoding in one step. + """ + self.vae.disable_slicing() + + def enable_vae_tiling(self): + r""" + Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to + compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow + processing larger images. + """ + self.vae.enable_tiling() + + def disable_vae_tiling(self): + r""" + Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to + computing decoding in one step. + """ + self.vae.disable_tiling() + + # Copied from diffusers.pipelines.stable_diffusion_3.pipeline_stable_diffusion_3_img2img.StableDiffusion3Img2ImgPipeline.get_timesteps + def get_timesteps(self, num_inference_steps, strength, device): + # get the original timestep using init_timestep + init_timestep = min(num_inference_steps * strength, num_inference_steps) + + t_start = int(max(num_inference_steps - init_timestep, 0)) + timesteps = self.scheduler.timesteps[t_start * self.scheduler.order :] + if hasattr(self.scheduler, "set_begin_index"): + self.scheduler.set_begin_index(t_start * self.scheduler.order) + + return timesteps, num_inference_steps - t_start + + def prepare_latents( + self, + image, + timestep, + batch_size, + num_channels_latents, + height, + width, + dtype, + device, + generator, + latents=None, + ): + if isinstance(generator, list) and len(generator) != batch_size: + raise ValueError( + f"You have passed a list of generators of length {len(generator)}, but requested an effective batch" + f" size of {batch_size}. Make sure the batch size matches the length of the generators." + ) + + # VAE applies 8x compression on images but we must also account for packing which requires + # latent height and width to be divisible by 2. + height = 2 * (int(height) // (self.vae_scale_factor * 2)) + width = 2 * (int(width) // (self.vae_scale_factor * 2)) + shape = (batch_size, num_channels_latents, height, width) + latent_image_ids = self._prepare_latent_image_ids(height // 2, width // 2, device, dtype) + + if latents is not None: + return latents.to(device=device, dtype=dtype), latent_image_ids + + image = image.to(device=device, dtype=dtype) + if image.shape[1] != self.latent_channels: + image_latents = self._encode_vae_image(image=image, generator=generator) + else: + image_latents = image + if batch_size > image_latents.shape[0] and batch_size % image_latents.shape[0] == 0: + # expand init_latents for batch_size + additional_image_per_prompt = batch_size // image_latents.shape[0] + image_latents = torch.cat([image_latents] * additional_image_per_prompt, dim=0) + elif batch_size > image_latents.shape[0] and batch_size % image_latents.shape[0] != 0: + raise ValueError( + f"Cannot duplicate `image` of batch size {image_latents.shape[0]} to {batch_size} text prompts." + ) + else: + image_latents = torch.cat([image_latents], dim=0) + + noise = randn_tensor(shape, generator=generator, device=device, dtype=dtype) + latents = self.scheduler.scale_noise(image_latents, timestep, noise) + latents = self._pack_latents(latents, batch_size, num_channels_latents, height, width) + return latents, latent_image_ids + + def _prepare_attention_mask( + self, + batch_size, + sequence_length, + dtype, + attention_mask=None, + ): + if attention_mask is None: + return attention_mask + + # Extend the prompt attention mask to account for image tokens in the final sequence + attention_mask = torch.cat( + [attention_mask, torch.ones(batch_size, sequence_length, device=attention_mask.device)], + dim=1, + ) + attention_mask = attention_mask.to(dtype) + + return attention_mask + + @property + def guidance_scale(self): + return self._guidance_scale + + @property + def joint_attention_kwargs(self): + return self._joint_attention_kwargs + + @property + def do_classifier_free_guidance(self): + return self._guidance_scale > 1 + + @property + def num_timesteps(self): + return self._num_timesteps + + @property + def current_timestep(self): + return self._current_timestep + + @property + def interrupt(self): + return self._interrupt + + @torch.no_grad() + @replace_example_docstring(EXAMPLE_DOC_STRING) + def __call__( + self, + prompt: Union[str, List[str]] = None, + negative_prompt: Union[str, List[str]] = None, + image: PipelineImageInput = None, + height: Optional[int] = None, + width: Optional[int] = None, + num_inference_steps: int = 35, + sigmas: Optional[List[float]] = None, + guidance_scale: float = 5.0, + strength: float = 0.9, + num_images_per_prompt: Optional[int] = 1, + generator: Optional[Union[torch.Generator, List[torch.Generator]]] = None, + latents: Optional[torch.Tensor] = None, + prompt_embeds: Optional[torch.Tensor] = None, + ip_adapter_image: Optional[PipelineImageInput] = None, + ip_adapter_image_embeds: Optional[List[torch.Tensor]] = None, + negative_ip_adapter_image: Optional[PipelineImageInput] = None, + negative_ip_adapter_image_embeds: Optional[List[torch.Tensor]] = None, + negative_prompt_embeds: Optional[torch.Tensor] = None, + prompt_attention_mask: Optional[torch.Tensor] = None, + negative_prompt_attention_mask: Optional[torch.tensor] = None, + output_type: Optional[str] = "pil", + return_dict: bool = True, + joint_attention_kwargs: Optional[Dict[str, Any]] = None, + callback_on_step_end: Optional[Callable[[int, int, Dict], None]] = None, + callback_on_step_end_tensor_inputs: List[str] = ["latents"], + max_sequence_length: int = 512, + ): + r""" + Function invoked when calling the pipeline for generation. + + Args: + prompt (`str` or `List[str]`, *optional*): + The prompt or prompts to guide the image generation. If not defined, one has to pass `prompt_embeds`. + instead. + negative_prompt (`str` or `List[str]`, *optional*): + The prompt or prompts not to guide the image generation. If not defined, one has to pass + `negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is + not greater than `1`). + height (`int`, *optional*, defaults to self.unet.config.sample_size * self.vae_scale_factor): + The height in pixels of the generated image. This is set to 1024 by default for the best results. + width (`int`, *optional*, defaults to self.unet.config.sample_size * self.vae_scale_factor): + The width in pixels of the generated image. This is set to 1024 by default for the best results. + num_inference_steps (`int`, *optional*, defaults to 35): + The number of denoising steps. More denoising steps usually lead to a higher quality image at the + expense of slower inference. + sigmas (`List[float]`, *optional*): + Custom sigmas to use for the denoising process with schedulers which support a `sigmas` argument in + their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed + will be used. + guidance_scale (`float`, *optional*, defaults to 5.0): + Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598). + `guidance_scale` is defined as `w` of equation 2. of [Imagen + Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale > + 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`, + usually at the expense of lower image quality. + strength (`float, *optional*, defaults to 0.9): + Conceptually, indicates how much to transform the reference image. Must be between 0 and 1. image will + be used as a starting point, adding more noise to it the larger the strength. The number of denoising + steps depends on the amount of noise initially added. When strength is 1, added noise will be maximum + and the denoising process will run for the full number of iterations specified in num_inference_steps. + A value of 1, therefore, essentially ignores image. + num_images_per_prompt (`int`, *optional*, defaults to 1): + The number of images to generate per prompt. + generator (`torch.Generator` or `List[torch.Generator]`, *optional*): + One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html) + to make generation deterministic. + latents (`torch.Tensor`, *optional*): + Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for image + generation. Can be used to tweak the same generation with different prompts. If not provided, a latents + tensor will ge generated by sampling using the supplied random `generator`. + prompt_embeds (`torch.Tensor`, *optional*): + Pre-generated text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt weighting. If not + provided, text embeddings will be generated from `prompt` input argument. + ip_adapter_image: (`PipelineImageInput`, *optional*): Optional image input to work with IP Adapters. + ip_adapter_image_embeds (`List[torch.Tensor]`, *optional*): + Pre-generated image embeddings for IP-Adapter. It should be a list of length same as number of + IP-adapters. Each element should be a tensor of shape `(batch_size, num_images, emb_dim)`. If not + provided, embeddings are computed from the `ip_adapter_image` input argument. + negative_ip_adapter_image: + (`PipelineImageInput`, *optional*): Optional image input to work with IP Adapters. + negative_ip_adapter_image_embeds (`List[torch.Tensor]`, *optional*): + Pre-generated image embeddings for IP-Adapter. It should be a list of length same as number of + IP-adapters. Each element should be a tensor of shape `(batch_size, num_images, emb_dim)`. If not + provided, embeddings are computed from the `ip_adapter_image` input argument. + negative_prompt_embeds (`torch.Tensor`, *optional*): + Pre-generated negative text embeddings. Can be used to easily tweak text inputs, *e.g.* prompt + weighting. If not provided, negative_prompt_embeds will be generated from `negative_prompt` input + argument. + prompt_attention_mask (torch.Tensor, *optional*): + Attention mask for the prompt embeddings. Used to mask out padding tokens in the prompt sequence. + Chroma requires a single padding token remain unmasked. Please refer to + https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training + negative_prompt_attention_mask (torch.Tensor, *optional*): + Attention mask for the negative prompt embeddings. Used to mask out padding tokens in the negative + prompt sequence. Chroma requires a single padding token remain unmasked. PLease refer to + https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training + output_type (`str`, *optional*, defaults to `"pil"`): + The output format of the generate image. Choose between + [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` or `np.array`. + return_dict (`bool`, *optional*, defaults to `True`): + Whether or not to return a [`~pipelines.flux.ChromaPipelineOutput`] instead of a plain tuple. + joint_attention_kwargs (`dict`, *optional*): + A kwargs dictionary that if specified is passed along to the `AttentionProcessor` as defined under + `self.processor` in + [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). + callback_on_step_end (`Callable`, *optional*): + A function that calls at the end of each denoising steps during the inference. The function is called + with the following arguments: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, + callback_kwargs: Dict)`. `callback_kwargs` will include a list of all tensors as specified by + `callback_on_step_end_tensor_inputs`. + callback_on_step_end_tensor_inputs (`List`, *optional*): + The list of tensor inputs for the `callback_on_step_end` function. The tensors specified in the list + will be passed as `callback_kwargs` argument. You will only be able to include variables listed in the + `._callback_tensor_inputs` attribute of your pipeline class. + max_sequence_length (`int` defaults to 512): Maximum sequence length to use with the `prompt`. + + Examples: + + Returns: + [`~pipelines.chroma.ChromaPipelineOutput`] or `tuple`: [`~pipelines.chroma.ChromaPipelineOutput`] if + `return_dict` is True, otherwise a `tuple`. When returning a tuple, the first element is a list with the + generated images. + """ + + height = height or self.default_sample_size * self.vae_scale_factor + width = width or self.default_sample_size * self.vae_scale_factor + + # 1. Check inputs. Raise error if not correct + self.check_inputs( + prompt, + height, + width, + strength, + negative_prompt=negative_prompt, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_prompt_embeds, + prompt_attention_mask=prompt_attention_mask, + negative_prompt_attention_mask=negative_prompt_attention_mask, + callback_on_step_end_tensor_inputs=callback_on_step_end_tensor_inputs, + max_sequence_length=max_sequence_length, + ) + + self._guidance_scale = guidance_scale + self._joint_attention_kwargs = joint_attention_kwargs + self._current_timestep = None + self._interrupt = False + + # 2. Preprocess image + init_image = self.image_processor.preprocess(image, height=height, width=width) + init_image = init_image.to(dtype=torch.float32) + + # 3. Define call parameters + if prompt is not None and isinstance(prompt, str): + batch_size = 1 + elif prompt is not None and isinstance(prompt, list): + batch_size = len(prompt) + else: + batch_size = prompt_embeds.shape[0] + + device = self._execution_device + lora_scale = ( + self.joint_attention_kwargs.get("scale", None) if self.joint_attention_kwargs is not None else None + ) + + ( + prompt_embeds, + text_ids, + prompt_attention_mask, + negative_prompt_embeds, + negative_text_ids, + negative_prompt_attention_mask, + ) = self.encode_prompt( + prompt=prompt, + negative_prompt=negative_prompt, + prompt_embeds=prompt_embeds, + negative_prompt_embeds=negative_prompt_embeds, + prompt_attention_mask=prompt_attention_mask, + negative_prompt_attention_mask=negative_prompt_attention_mask, + do_classifier_free_guidance=self.do_classifier_free_guidance, + device=device, + num_images_per_prompt=num_images_per_prompt, + max_sequence_length=max_sequence_length, + lora_scale=lora_scale, + ) + + # 4. Prepare timesteps + sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) if sigmas is None else sigmas + image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) + mu = calculate_shift( + image_seq_len, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.15), + ) + timesteps, num_inference_steps = retrieve_timesteps( + self.scheduler, + num_inference_steps, + device, + sigmas=sigmas, + mu=mu, + ) + timesteps, num_inference_steps = self.get_timesteps(num_inference_steps, strength, device) + + num_warmup_steps = max(len(timesteps) - num_inference_steps * self.scheduler.order, 0) + self._num_timesteps = len(timesteps) + + if num_inference_steps < 1: + raise ValueError( + f"After adjusting the num_inference_steps by strength parameter: {strength}, the number of pipeline" + f"steps is {num_inference_steps} which is < 1 and not appropriate for this pipeline." + ) + latent_timestep = timesteps[:1].repeat(batch_size * num_images_per_prompt) + + # 5. Prepare latent variables + num_channels_latents = self.transformer.config.in_channels // 4 + latents, latent_image_ids = self.prepare_latents( + init_image, + latent_timestep, + batch_size * num_images_per_prompt, + num_channels_latents, + height, + width, + prompt_embeds.dtype, + device, + generator, + latents, + ) + + attention_mask = self._prepare_attention_mask( + batch_size=latents.shape[0], + sequence_length=image_seq_len, + dtype=latents.dtype, + attention_mask=prompt_attention_mask, + ) + negative_attention_mask = self._prepare_attention_mask( + batch_size=latents.shape[0], + sequence_length=image_seq_len, + dtype=latents.dtype, + attention_mask=negative_prompt_attention_mask, + ) + + # 6. Prepare image embeddings + if (ip_adapter_image is not None or ip_adapter_image_embeds is not None) and ( + negative_ip_adapter_image is None and negative_ip_adapter_image_embeds is None + ): + negative_ip_adapter_image = np.zeros((width, height, 3), dtype=np.uint8) + negative_ip_adapter_image = [negative_ip_adapter_image] * self.transformer.encoder_hid_proj.num_ip_adapters + + elif (ip_adapter_image is None and ip_adapter_image_embeds is None) and ( + negative_ip_adapter_image is not None or negative_ip_adapter_image_embeds is not None + ): + ip_adapter_image = np.zeros((width, height, 3), dtype=np.uint8) + ip_adapter_image = [ip_adapter_image] * self.transformer.encoder_hid_proj.num_ip_adapters + + if self.joint_attention_kwargs is None: + self._joint_attention_kwargs = {} + + image_embeds = None + negative_image_embeds = None + if ip_adapter_image is not None or ip_adapter_image_embeds is not None: + image_embeds = self.prepare_ip_adapter_image_embeds( + ip_adapter_image, + ip_adapter_image_embeds, + device, + batch_size * num_images_per_prompt, + ) + if negative_ip_adapter_image is not None or negative_ip_adapter_image_embeds is not None: + negative_image_embeds = self.prepare_ip_adapter_image_embeds( + negative_ip_adapter_image, + negative_ip_adapter_image_embeds, + device, + batch_size * num_images_per_prompt, + ) + + # 6. Denoising loop + with self.progress_bar(total=num_inference_steps) as progress_bar: + for i, t in enumerate(timesteps): + if self.interrupt: + continue + + self._current_timestep = t + # broadcast to batch dimension in a way that's compatible with ONNX/Core ML + timestep = t.expand(latents.shape[0]) + + if image_embeds is not None: + self._joint_attention_kwargs["ip_adapter_image_embeds"] = image_embeds + + noise_pred = self.transformer( + hidden_states=latents, + timestep=timestep / 1000, + encoder_hidden_states=prompt_embeds, + txt_ids=text_ids, + img_ids=latent_image_ids, + attention_mask=attention_mask, + joint_attention_kwargs=self.joint_attention_kwargs, + return_dict=False, + )[0] + + if self.do_classifier_free_guidance: + if negative_image_embeds is not None: + self._joint_attention_kwargs["ip_adapter_image_embeds"] = negative_image_embeds + + noise_pred_uncond = self.transformer( + hidden_states=latents, + timestep=timestep / 1000, + encoder_hidden_states=negative_prompt_embeds, + txt_ids=negative_text_ids, + img_ids=latent_image_ids, + attention_mask=negative_attention_mask, + joint_attention_kwargs=self.joint_attention_kwargs, + return_dict=False, + )[0] + noise_pred = noise_pred_uncond + guidance_scale * (noise_pred - noise_pred_uncond) + + # compute the previous noisy sample x_t -> x_t-1 + latents_dtype = latents.dtype + latents = self.scheduler.step(noise_pred, t, latents, return_dict=False)[0] + + if latents.dtype != latents_dtype: + if torch.backends.mps.is_available(): + # some platforms (eg. apple mps) misbehave due to a pytorch bug: https://github.com/pytorch/pytorch/pull/99272 + latents = latents.to(latents_dtype) + + if callback_on_step_end is not None: + callback_kwargs = {} + for k in callback_on_step_end_tensor_inputs: + callback_kwargs[k] = locals()[k] + callback_outputs = callback_on_step_end(self, i, t, callback_kwargs) + + latents = callback_outputs.pop("latents", latents) + prompt_embeds = callback_outputs.pop("prompt_embeds", prompt_embeds) + + # call the callback, if provided + if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0): + progress_bar.update() + + if XLA_AVAILABLE: + xm.mark_step() + + self._current_timestep = None + + if output_type == "latent": + image = latents + else: + latents = self._unpack_latents(latents, height, width, self.vae_scale_factor) + latents = (latents / self.vae.config.scaling_factor) + self.vae.config.shift_factor + image = self.vae.decode(latents, return_dict=False)[0] + image = self.image_processor.postprocess(image, output_type=output_type) + + # Offload all models + self.maybe_free_model_hooks() + + if not return_dict: + return (image,) + + return ChromaPipelineOutput(images=image) diff --git a/src/diffusers/utils/dummy_torch_and_transformers_objects.py b/src/diffusers/utils/dummy_torch_and_transformers_objects.py index c95f11fc58..656a8ac6c6 100644 --- a/src/diffusers/utils/dummy_torch_and_transformers_objects.py +++ b/src/diffusers/utils/dummy_torch_and_transformers_objects.py @@ -272,6 +272,21 @@ class AuraFlowPipeline(metaclass=DummyObject): requires_backends(cls, ["torch", "transformers"]) +class ChromaImg2ImgPipeline(metaclass=DummyObject): + _backends = ["torch", "transformers"] + + def __init__(self, *args, **kwargs): + requires_backends(self, ["torch", "transformers"]) + + @classmethod + def from_config(cls, *args, **kwargs): + requires_backends(cls, ["torch", "transformers"]) + + @classmethod + def from_pretrained(cls, *args, **kwargs): + requires_backends(cls, ["torch", "transformers"]) + + class ChromaPipeline(metaclass=DummyObject): _backends = ["torch", "transformers"] diff --git a/tests/pipelines/chroma/test_pipeline_chroma_img2img.py b/tests/pipelines/chroma/test_pipeline_chroma_img2img.py new file mode 100644 index 0000000000..02b20527b2 --- /dev/null +++ b/tests/pipelines/chroma/test_pipeline_chroma_img2img.py @@ -0,0 +1,170 @@ +import random +import unittest + +import numpy as np +import torch +from transformers import AutoTokenizer, T5EncoderModel + +from diffusers import AutoencoderKL, ChromaImg2ImgPipeline, ChromaTransformer2DModel, FlowMatchEulerDiscreteScheduler +from diffusers.utils.testing_utils import floats_tensor, torch_device + +from ..test_pipelines_common import ( + FluxIPAdapterTesterMixin, + PipelineTesterMixin, + check_qkv_fusion_matches_attn_procs_length, + check_qkv_fusion_processors_exist, +) + + +class ChromaImg2ImgPipelineFastTests( + unittest.TestCase, + PipelineTesterMixin, + FluxIPAdapterTesterMixin, +): + pipeline_class = ChromaImg2ImgPipeline + params = frozenset(["prompt", "height", "width", "guidance_scale", "prompt_embeds"]) + batch_params = frozenset(["prompt"]) + + # there is no xformers processor for Flux + test_xformers_attention = False + test_layerwise_casting = True + test_group_offloading = True + + def get_dummy_components(self, num_layers: int = 1, num_single_layers: int = 1): + torch.manual_seed(0) + transformer = ChromaTransformer2DModel( + patch_size=1, + in_channels=4, + num_layers=num_layers, + num_single_layers=num_single_layers, + attention_head_dim=16, + num_attention_heads=2, + joint_attention_dim=32, + axes_dims_rope=[4, 4, 8], + approximator_hidden_dim=32, + approximator_layers=1, + approximator_num_channels=16, + ) + + torch.manual_seed(0) + text_encoder = T5EncoderModel.from_pretrained("hf-internal-testing/tiny-random-t5") + + tokenizer = AutoTokenizer.from_pretrained("hf-internal-testing/tiny-random-t5") + + torch.manual_seed(0) + vae = AutoencoderKL( + sample_size=32, + in_channels=3, + out_channels=3, + block_out_channels=(4,), + layers_per_block=1, + latent_channels=1, + norm_num_groups=1, + use_quant_conv=False, + use_post_quant_conv=False, + shift_factor=0.0609, + scaling_factor=1.5035, + ) + + scheduler = FlowMatchEulerDiscreteScheduler() + + return { + "scheduler": scheduler, + "text_encoder": text_encoder, + "tokenizer": tokenizer, + "transformer": transformer, + "vae": vae, + "image_encoder": None, + "feature_extractor": None, + } + + def get_dummy_inputs(self, device, seed=0): + image = floats_tensor((1, 3, 32, 32), rng=random.Random(seed)).to(device) + if str(device).startswith("mps"): + generator = torch.manual_seed(seed) + else: + generator = torch.Generator(device="cpu").manual_seed(seed) + + inputs = { + "prompt": "A painting of a squirrel eating a burger", + "image": image, + "generator": generator, + "num_inference_steps": 2, + "guidance_scale": 5.0, + "height": 8, + "width": 8, + "max_sequence_length": 48, + "strength": 0.8, + "output_type": "np", + } + return inputs + + def test_chroma_different_prompts(self): + pipe = self.pipeline_class(**self.get_dummy_components()).to(torch_device) + + inputs = self.get_dummy_inputs(torch_device) + output_same_prompt = pipe(**inputs).images[0] + + inputs = self.get_dummy_inputs(torch_device) + inputs["prompt"] = "a different prompt" + output_different_prompts = pipe(**inputs).images[0] + + max_diff = np.abs(output_same_prompt - output_different_prompts).max() + + # Outputs should be different here + # For some reasons, they don't show large differences + assert max_diff > 1e-6 + + def test_fused_qkv_projections(self): + device = "cpu" # ensure determinism for the device-dependent torch.Generator + components = self.get_dummy_components() + pipe = self.pipeline_class(**components) + pipe = pipe.to(device) + pipe.set_progress_bar_config(disable=None) + + inputs = self.get_dummy_inputs(device) + image = pipe(**inputs).images + original_image_slice = image[0, -3:, -3:, -1] + + # TODO (sayakpaul): will refactor this once `fuse_qkv_projections()` has been added + # to the pipeline level. + pipe.transformer.fuse_qkv_projections() + assert check_qkv_fusion_processors_exist(pipe.transformer), ( + "Something wrong with the fused attention processors. Expected all the attention processors to be fused." + ) + assert check_qkv_fusion_matches_attn_procs_length( + pipe.transformer, pipe.transformer.original_attn_processors + ), "Something wrong with the attention processors concerning the fused QKV projections." + + inputs = self.get_dummy_inputs(device) + image = pipe(**inputs).images + image_slice_fused = image[0, -3:, -3:, -1] + + pipe.transformer.unfuse_qkv_projections() + inputs = self.get_dummy_inputs(device) + image = pipe(**inputs).images + image_slice_disabled = image[0, -3:, -3:, -1] + + assert np.allclose(original_image_slice, image_slice_fused, atol=1e-3, rtol=1e-3), ( + "Fusion of QKV projections shouldn't affect the outputs." + ) + assert np.allclose(image_slice_fused, image_slice_disabled, atol=1e-3, rtol=1e-3), ( + "Outputs, with QKV projection fusion enabled, shouldn't change when fused QKV projections are disabled." + ) + assert np.allclose(original_image_slice, image_slice_disabled, atol=1e-2, rtol=1e-2), ( + "Original outputs should match when fused QKV projections are disabled." + ) + + def test_chroma_image_output_shape(self): + pipe = self.pipeline_class(**self.get_dummy_components()).to(torch_device) + inputs = self.get_dummy_inputs(torch_device) + + height_width_pairs = [(32, 32), (72, 57)] + for height, width in height_width_pairs: + expected_height = height - height % (pipe.vae_scale_factor * 2) + expected_width = width - width % (pipe.vae_scale_factor * 2) + + inputs.update({"height": height, "width": width}) + image = pipe(**inputs).images[0] + output_height, output_width, _ = image.shape + assert (output_height, output_width) == (expected_height, expected_width) From 48eae6f4204dbdca26e6c1f0c8dc64caa0e48f08 Mon Sep 17 00:00:00 2001 From: Sayak Paul Date: Thu, 19 Jun 2025 07:45:06 +0530 Subject: [PATCH 3/6] [Quantizers] add `is_compileable` property to quantizers. (#11736) add is_compileable property to quantizers. --- src/diffusers/quantizers/base.py | 5 +++++ src/diffusers/quantizers/bitsandbytes/bnb_quantizer.py | 4 ++++ src/diffusers/quantizers/gguf/gguf_quantizer.py | 4 ++++ src/diffusers/quantizers/quanto/quanto_quantizer.py | 4 ++++ src/diffusers/quantizers/torchao/torchao_quantizer.py | 4 ++++ 5 files changed, 21 insertions(+) diff --git a/src/diffusers/quantizers/base.py b/src/diffusers/quantizers/base.py index ffa654c98c..357d920d29 100644 --- a/src/diffusers/quantizers/base.py +++ b/src/diffusers/quantizers/base.py @@ -227,3 +227,8 @@ class DiffusersQuantizer(ABC): @property @abstractmethod def is_trainable(self): ... + + @property + def is_compileable(self) -> bool: + """Flag indicating whether the quantized model can be compiled""" + return False diff --git a/src/diffusers/quantizers/bitsandbytes/bnb_quantizer.py b/src/diffusers/quantizers/bitsandbytes/bnb_quantizer.py index 689d8e4256..0dfdff019b 100644 --- a/src/diffusers/quantizers/bitsandbytes/bnb_quantizer.py +++ b/src/diffusers/quantizers/bitsandbytes/bnb_quantizer.py @@ -564,6 +564,10 @@ class BnB8BitDiffusersQuantizer(DiffusersQuantizer): # Because we're mandating `bitsandbytes` 0.43.3. return True + @property + def is_compileable(self) -> bool: + return True + def _dequantize(self, model): from .utils import dequantize_and_replace diff --git a/src/diffusers/quantizers/gguf/gguf_quantizer.py b/src/diffusers/quantizers/gguf/gguf_quantizer.py index b3e10b1c32..aa5ebf5711 100644 --- a/src/diffusers/quantizers/gguf/gguf_quantizer.py +++ b/src/diffusers/quantizers/gguf/gguf_quantizer.py @@ -146,6 +146,10 @@ class GGUFQuantizer(DiffusersQuantizer): def is_trainable(self) -> bool: return False + @property + def is_compileable(self) -> bool: + return True + def _dequantize(self, model): is_model_on_cpu = model.device.type == "cpu" if is_model_on_cpu: diff --git a/src/diffusers/quantizers/quanto/quanto_quantizer.py b/src/diffusers/quantizers/quanto/quanto_quantizer.py index 0120163804..c5f71f816f 100644 --- a/src/diffusers/quantizers/quanto/quanto_quantizer.py +++ b/src/diffusers/quantizers/quanto/quanto_quantizer.py @@ -175,3 +175,7 @@ class QuantoQuantizer(DiffusersQuantizer): @property def is_serializable(self): return True + + @property + def is_compileable(self) -> bool: + return True diff --git a/src/diffusers/quantizers/torchao/torchao_quantizer.py b/src/diffusers/quantizers/torchao/torchao_quantizer.py index def7ee33e3..c12513f061 100644 --- a/src/diffusers/quantizers/torchao/torchao_quantizer.py +++ b/src/diffusers/quantizers/torchao/torchao_quantizer.py @@ -335,3 +335,7 @@ class TorchAoHfQuantizer(DiffusersQuantizer): @property def is_trainable(self): return self.quantization_config.quant_type.startswith("int8") + + @property + def is_compileable(self) -> bool: + return True From a4df8dbc40e170ff828f8d8f79c2c861c9f1748d Mon Sep 17 00:00:00 2001 From: Aryan Date: Thu, 19 Jun 2025 07:46:01 +0530 Subject: [PATCH 4/6] Update more licenses to 2025 (#11746) update --- CONTRIBUTING.md | 2 +- PHILOSOPHY.md | 2 +- docs/TRANSLATING.md | 2 +- docs/source/en/advanced_inference/outpaint.md | 2 +- docs/source/en/api/activations.md | 2 +- docs/source/en/api/attnprocessor.md | 2 +- docs/source/en/api/cache.md | 2 +- docs/source/en/api/configuration.md | 2 +- docs/source/en/api/image_processor.md | 2 +- docs/source/en/api/internal_classes_overview.md | 2 +- docs/source/en/api/loaders/ip_adapter.md | 2 +- docs/source/en/api/loaders/lora.md | 2 +- docs/source/en/api/loaders/peft.md | 2 +- docs/source/en/api/loaders/single_file.md | 2 +- docs/source/en/api/loaders/textual_inversion.md | 2 +- docs/source/en/api/loaders/transformer_sd3.md | 2 +- docs/source/en/api/loaders/unet.md | 2 +- docs/source/en/api/logging.md | 2 +- docs/source/en/api/models/allegro_transformer3d.md | 2 +- docs/source/en/api/models/asymmetricautoencoderkl.md | 2 +- docs/source/en/api/models/aura_flow_transformer2d.md | 2 +- docs/source/en/api/models/auto_model.md | 2 +- docs/source/en/api/models/autoencoder_dc.md | 2 +- docs/source/en/api/models/autoencoder_kl_hunyuan_video.md | 2 +- docs/source/en/api/models/autoencoder_kl_wan.md | 2 +- docs/source/en/api/models/autoencoder_oobleck.md | 2 +- docs/source/en/api/models/autoencoder_tiny.md | 2 +- docs/source/en/api/models/autoencoderkl.md | 2 +- docs/source/en/api/models/autoencoderkl_allegro.md | 2 +- docs/source/en/api/models/autoencoderkl_cogvideox.md | 2 +- docs/source/en/api/models/autoencoderkl_cosmos.md | 2 +- docs/source/en/api/models/autoencoderkl_ltx_video.md | 2 +- docs/source/en/api/models/autoencoderkl_mochi.md | 2 +- docs/source/en/api/models/cogvideox_transformer3d.md | 2 +- docs/source/en/api/models/cogview3plus_transformer2d.md | 2 +- docs/source/en/api/models/cogview4_transformer2d.md | 2 +- docs/source/en/api/models/consisid_transformer3d.md | 2 +- docs/source/en/api/models/consistency_decoder_vae.md | 2 +- docs/source/en/api/models/controlnet.md | 2 +- docs/source/en/api/models/controlnet_flux.md | 2 +- docs/source/en/api/models/controlnet_hunyuandit.md | 2 +- docs/source/en/api/models/controlnet_sana.md | 2 +- docs/source/en/api/models/controlnet_sd3.md | 2 +- docs/source/en/api/models/controlnet_sparsectrl.md | 2 +- docs/source/en/api/models/controlnet_union.md | 2 +- docs/source/en/api/models/cosmos_transformer3d.md | 2 +- docs/source/en/api/models/dit_transformer2d.md | 2 +- docs/source/en/api/models/flux_transformer.md | 2 +- docs/source/en/api/models/hidream_image_transformer.md | 2 +- docs/source/en/api/models/hunyuan_transformer2d.md | 2 +- docs/source/en/api/models/hunyuan_video_transformer_3d.md | 2 +- docs/source/en/api/models/latte_transformer3d.md | 2 +- docs/source/en/api/models/ltx_video_transformer3d.md | 2 +- docs/source/en/api/models/lumina2_transformer2d.md | 2 +- docs/source/en/api/models/lumina_nextdit2d.md | 2 +- docs/source/en/api/models/mochi_transformer3d.md | 2 +- docs/source/en/api/models/omnigen_transformer.md | 2 +- docs/source/en/api/models/overview.md | 2 +- docs/source/en/api/models/pixart_transformer2d.md | 2 +- docs/source/en/api/models/prior_transformer.md | 2 +- docs/source/en/api/models/sana_transformer2d.md | 2 +- docs/source/en/api/models/sd3_transformer2d.md | 2 +- docs/source/en/api/models/stable_audio_transformer.md | 2 +- docs/source/en/api/models/stable_cascade_unet.md | 2 +- docs/source/en/api/models/transformer2d.md | 2 +- docs/source/en/api/models/transformer_temporal.md | 2 +- docs/source/en/api/models/unet-motion.md | 2 +- docs/source/en/api/models/unet.md | 2 +- docs/source/en/api/models/unet2d-cond.md | 2 +- docs/source/en/api/models/unet2d.md | 2 +- docs/source/en/api/models/unet3d-cond.md | 2 +- docs/source/en/api/models/uvit2d.md | 2 +- docs/source/en/api/models/vq.md | 2 +- docs/source/en/api/models/wan_transformer_3d.md | 2 +- docs/source/en/api/normalization.md | 2 +- docs/source/en/api/outputs.md | 2 +- docs/source/en/api/pipelines/allegro.md | 2 +- docs/source/en/api/pipelines/amused.md | 2 +- docs/source/en/api/pipelines/animatediff.md | 2 +- docs/source/en/api/pipelines/attend_and_excite.md | 2 +- docs/source/en/api/pipelines/audioldm.md | 2 +- docs/source/en/api/pipelines/audioldm2.md | 2 +- docs/source/en/api/pipelines/aura_flow.md | 2 +- docs/source/en/api/pipelines/auto_pipeline.md | 2 +- docs/source/en/api/pipelines/blip_diffusion.md | 2 +- docs/source/en/api/pipelines/cogvideox.md | 2 +- docs/source/en/api/pipelines/cogview3.md | 2 +- docs/source/en/api/pipelines/cogview4.md | 2 +- docs/source/en/api/pipelines/consisid.md | 2 +- docs/source/en/api/pipelines/consistency_models.md | 2 +- docs/source/en/api/pipelines/control_flux_inpaint.md | 2 +- docs/source/en/api/pipelines/controlnet.md | 2 +- docs/source/en/api/pipelines/controlnet_flux.md | 2 +- docs/source/en/api/pipelines/controlnet_hunyuandit.md | 2 +- docs/source/en/api/pipelines/controlnet_sana.md | 2 +- docs/source/en/api/pipelines/controlnet_sd3.md | 2 +- docs/source/en/api/pipelines/controlnet_sdxl.md | 2 +- docs/source/en/api/pipelines/controlnet_union.md | 2 +- docs/source/en/api/pipelines/cosmos.md | 2 +- docs/source/en/api/pipelines/dance_diffusion.md | 2 +- docs/source/en/api/pipelines/ddim.md | 2 +- docs/source/en/api/pipelines/ddpm.md | 2 +- docs/source/en/api/pipelines/deepfloyd_if.md | 2 +- docs/source/en/api/pipelines/diffedit.md | 2 +- docs/source/en/api/pipelines/dit.md | 2 +- docs/source/en/api/pipelines/flux.md | 2 +- docs/source/en/api/pipelines/hidream.md | 2 +- docs/source/en/api/pipelines/hunyuan_video.md | 2 +- docs/source/en/api/pipelines/hunyuandit.md | 2 +- docs/source/en/api/pipelines/i2vgenxl.md | 2 +- docs/source/en/api/pipelines/kandinsky.md | 2 +- docs/source/en/api/pipelines/kandinsky3.md | 2 +- docs/source/en/api/pipelines/kandinsky_v22.md | 2 +- docs/source/en/api/pipelines/kolors.md | 2 +- docs/source/en/api/pipelines/latent_consistency_models.md | 2 +- docs/source/en/api/pipelines/latent_diffusion.md | 2 +- docs/source/en/api/pipelines/latte.md | 2 +- docs/source/en/api/pipelines/ltx_video.md | 2 +- docs/source/en/api/pipelines/lumina.md | 2 +- docs/source/en/api/pipelines/lumina2.md | 2 +- docs/source/en/api/pipelines/mochi.md | 2 +- docs/source/en/api/pipelines/musicldm.md | 2 +- docs/source/en/api/pipelines/omnigen.md | 2 +- docs/source/en/api/pipelines/overview.md | 2 +- docs/source/en/api/pipelines/pag.md | 2 +- docs/source/en/api/pipelines/paint_by_example.md | 2 +- docs/source/en/api/pipelines/panorama.md | 2 +- docs/source/en/api/pipelines/pia.md | 2 +- docs/source/en/api/pipelines/pix2pix.md | 2 +- docs/source/en/api/pipelines/pixart.md | 2 +- docs/source/en/api/pipelines/pixart_sigma.md | 2 +- docs/source/en/api/pipelines/sana.md | 2 +- docs/source/en/api/pipelines/sana_sprint.md | 2 +- docs/source/en/api/pipelines/self_attention_guidance.md | 2 +- docs/source/en/api/pipelines/semantic_stable_diffusion.md | 2 +- docs/source/en/api/pipelines/shap_e.md | 2 +- docs/source/en/api/pipelines/stable_audio.md | 2 +- docs/source/en/api/pipelines/stable_cascade.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/adapter.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/depth2img.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/gligen.md | 2 +- .../en/api/pipelines/stable_diffusion/image_variation.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/img2img.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/inpaint.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/k_diffusion.md | 2 +- .../en/api/pipelines/stable_diffusion/latent_upscale.md | 2 +- .../en/api/pipelines/stable_diffusion/ldm3d_diffusion.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/overview.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/sdxl_turbo.md | 2 +- .../en/api/pipelines/stable_diffusion/stable_diffusion_2.md | 2 +- .../en/api/pipelines/stable_diffusion/stable_diffusion_3.md | 2 +- .../api/pipelines/stable_diffusion/stable_diffusion_safe.md | 2 +- .../en/api/pipelines/stable_diffusion/stable_diffusion_xl.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/svd.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/text2img.md | 2 +- docs/source/en/api/pipelines/stable_diffusion/upscale.md | 2 +- docs/source/en/api/pipelines/stable_unclip.md | 2 +- docs/source/en/api/pipelines/text_to_video.md | 2 +- docs/source/en/api/pipelines/text_to_video_zero.md | 2 +- docs/source/en/api/pipelines/unclip.md | 2 +- docs/source/en/api/pipelines/unidiffuser.md | 2 +- docs/source/en/api/pipelines/value_guided_sampling.md | 2 +- docs/source/en/api/pipelines/wan.md | 2 +- docs/source/en/api/pipelines/wuerstchen.md | 2 +- docs/source/en/api/quantization.md | 2 +- docs/source/en/api/schedulers/cm_stochastic_iterative.md | 2 +- docs/source/en/api/schedulers/consistency_decoder.md | 2 +- docs/source/en/api/schedulers/cosine_dpm.md | 2 +- docs/source/en/api/schedulers/ddim.md | 2 +- docs/source/en/api/schedulers/ddim_cogvideox.md | 2 +- docs/source/en/api/schedulers/ddim_inverse.md | 2 +- docs/source/en/api/schedulers/ddpm.md | 2 +- docs/source/en/api/schedulers/deis.md | 2 +- docs/source/en/api/schedulers/dpm_discrete.md | 2 +- docs/source/en/api/schedulers/dpm_discrete_ancestral.md | 2 +- docs/source/en/api/schedulers/dpm_sde.md | 2 +- docs/source/en/api/schedulers/edm_euler.md | 2 +- docs/source/en/api/schedulers/edm_multistep_dpm_solver.md | 2 +- docs/source/en/api/schedulers/euler.md | 2 +- docs/source/en/api/schedulers/euler_ancestral.md | 2 +- docs/source/en/api/schedulers/flow_match_euler_discrete.md | 2 +- docs/source/en/api/schedulers/flow_match_heun_discrete.md | 2 +- docs/source/en/api/schedulers/heun.md | 2 +- docs/source/en/api/schedulers/ipndm.md | 2 +- docs/source/en/api/schedulers/lcm.md | 2 +- docs/source/en/api/schedulers/lms_discrete.md | 2 +- docs/source/en/api/schedulers/multistep_dpm_solver.md | 2 +- .../en/api/schedulers/multistep_dpm_solver_cogvideox.md | 2 +- docs/source/en/api/schedulers/multistep_dpm_solver_inverse.md | 2 +- docs/source/en/api/schedulers/overview.md | 2 +- docs/source/en/api/schedulers/pndm.md | 2 +- docs/source/en/api/schedulers/repaint.md | 2 +- docs/source/en/api/schedulers/score_sde_ve.md | 2 +- docs/source/en/api/schedulers/score_sde_vp.md | 2 +- docs/source/en/api/schedulers/singlestep_dpm_solver.md | 2 +- docs/source/en/api/schedulers/stochastic_karras_ve.md | 2 +- docs/source/en/api/schedulers/tcd.md | 2 +- docs/source/en/api/schedulers/unipc.md | 2 +- docs/source/en/api/schedulers/vq_diffusion.md | 2 +- docs/source/en/api/utilities.md | 2 +- docs/source/en/api/video_processor.md | 2 +- docs/source/en/community_projects.md | 2 +- docs/source/en/conceptual/contribution.md | 2 +- docs/source/en/conceptual/ethical_guidelines.md | 2 +- docs/source/en/conceptual/evaluation.md | 2 +- docs/source/en/conceptual/philosophy.md | 2 +- docs/source/en/hybrid_inference/overview.md | 2 +- docs/source/en/index.md | 2 +- docs/source/en/installation.md | 2 +- docs/source/en/optimization/cache.md | 2 +- docs/source/en/optimization/coreml.md | 2 +- docs/source/en/optimization/deepcache.md | 2 +- docs/source/en/optimization/fp16.md | 2 +- docs/source/en/optimization/habana.md | 2 +- docs/source/en/optimization/memory.md | 2 +- docs/source/en/optimization/mps.md | 2 +- docs/source/en/optimization/neuron.md | 2 +- docs/source/en/optimization/onnx.md | 2 +- docs/source/en/optimization/open_vino.md | 2 +- docs/source/en/optimization/tome.md | 2 +- docs/source/en/optimization/xformers.md | 2 +- docs/source/en/quantization/bitsandbytes.md | 2 +- docs/source/en/quantization/gguf.md | 2 +- docs/source/en/quantization/overview.md | 2 +- docs/source/en/quantization/torchao.md | 2 +- docs/source/en/quicktour.md | 2 +- docs/source/en/stable_diffusion.md | 2 +- docs/source/en/training/cogvideox.md | 2 +- docs/source/en/training/controlnet.md | 2 +- docs/source/en/training/custom_diffusion.md | 2 +- docs/source/en/training/ddpo.md | 2 +- docs/source/en/training/distributed_inference.md | 2 +- docs/source/en/training/dreambooth.md | 2 +- docs/source/en/training/instructpix2pix.md | 2 +- docs/source/en/training/kandinsky.md | 2 +- docs/source/en/training/lcm_distill.md | 2 +- docs/source/en/training/lora.md | 2 +- docs/source/en/training/overview.md | 2 +- docs/source/en/training/sdxl.md | 2 +- docs/source/en/training/t2i_adapters.md | 2 +- docs/source/en/training/text2image.md | 2 +- docs/source/en/training/text_inversion.md | 2 +- docs/source/en/training/unconditional_training.md | 2 +- docs/source/en/training/wuerstchen.md | 2 +- docs/source/en/tutorials/autopipeline.md | 2 +- docs/source/en/tutorials/basic_training.md | 2 +- docs/source/en/tutorials/tutorial_overview.md | 2 +- docs/source/en/tutorials/using_peft_for_inference.md | 2 +- docs/source/en/using-diffusers/callback.md | 2 +- .../source/en/using-diffusers/conditional_image_generation.md | 2 +- docs/source/en/using-diffusers/consisid.md | 2 +- docs/source/en/using-diffusers/controlling_generation.md | 2 +- docs/source/en/using-diffusers/controlnet.md | 2 +- docs/source/en/using-diffusers/custom_pipeline_overview.md | 2 +- docs/source/en/using-diffusers/depth2img.md | 2 +- docs/source/en/using-diffusers/diffedit.md | 2 +- docs/source/en/using-diffusers/image_quality.md | 2 +- docs/source/en/using-diffusers/img2img.md | 2 +- docs/source/en/using-diffusers/inference_with_lcm.md | 2 +- docs/source/en/using-diffusers/inference_with_tcd_lora.md | 2 +- docs/source/en/using-diffusers/inpaint.md | 2 +- docs/source/en/using-diffusers/ip_adapter.md | 2 +- docs/source/en/using-diffusers/kandinsky.md | 2 +- docs/source/en/using-diffusers/loading.md | 2 +- docs/source/en/using-diffusers/omnigen.md | 2 +- docs/source/en/using-diffusers/other-formats.md | 2 +- docs/source/en/using-diffusers/overview_techniques.md | 2 +- docs/source/en/using-diffusers/pag.md | 2 +- docs/source/en/using-diffusers/push_to_hub.md | 2 +- docs/source/en/using-diffusers/reusing_seeds.md | 2 +- docs/source/en/using-diffusers/scheduler_features.md | 2 +- docs/source/en/using-diffusers/schedulers.md | 2 +- docs/source/en/using-diffusers/sdxl.md | 2 +- docs/source/en/using-diffusers/sdxl_turbo.md | 2 +- docs/source/en/using-diffusers/shap-e.md | 2 +- docs/source/en/using-diffusers/stable_diffusion_jax_how_to.md | 2 +- docs/source/en/using-diffusers/svd.md | 2 +- docs/source/en/using-diffusers/t2i_adapter.md | 2 +- docs/source/en/using-diffusers/text-img2vid.md | 2 +- docs/source/en/using-diffusers/textual_inversion_inference.md | 2 +- .../en/using-diffusers/unconditional_image_generation.md | 2 +- docs/source/en/using-diffusers/weighted_prompts.md | 2 +- docs/source/en/using-diffusers/write_own_pipeline.md | 2 +- docs/source/ja/index.md | 2 +- docs/source/ja/installation.md | 2 +- docs/source/ja/quicktour.md | 2 +- docs/source/ja/stable_diffusion.md | 2 +- docs/source/ja/tutorials/autopipeline.md | 2 +- docs/source/ja/tutorials/tutorial_overview.md | 2 +- .../ko/api/pipelines/stable_diffusion/stable_diffusion_xl.md | 2 +- docs/source/ko/conceptual/contribution.md | 2 +- docs/source/ko/conceptual/ethical_guidelines.md | 2 +- docs/source/ko/conceptual/evaluation.md | 2 +- docs/source/ko/conceptual/philosophy.md | 2 +- docs/source/ko/in_translation.md | 2 +- docs/source/ko/index.md | 2 +- docs/source/ko/installation.md | 2 +- docs/source/ko/optimization/coreml.md | 2 +- docs/source/ko/optimization/fp16.md | 2 +- docs/source/ko/optimization/habana.md | 2 +- docs/source/ko/optimization/mps.md | 2 +- docs/source/ko/optimization/onnx.md | 2 +- docs/source/ko/optimization/open_vino.md | 2 +- docs/source/ko/optimization/tome.md | 2 +- docs/source/ko/optimization/torch2.0.md | 2 +- docs/source/ko/optimization/xformers.md | 2 +- docs/source/ko/quicktour.md | 2 +- docs/source/ko/stable_diffusion.md | 2 +- docs/source/ko/training/adapt_a_model.md | 2 +- docs/source/ko/training/controlnet.md | 2 +- docs/source/ko/training/custom_diffusion.md | 2 +- docs/source/ko/training/dreambooth.md | 2 +- docs/source/ko/training/instructpix2pix.md | 2 +- docs/source/ko/training/lora.md | 2 +- docs/source/ko/training/overview.md | 2 +- docs/source/ko/training/text2image.md | 2 +- docs/source/ko/training/text_inversion.md | 2 +- docs/source/ko/training/unconditional_training.md | 2 +- docs/source/ko/tutorials/basic_training.md | 2 +- docs/source/ko/tutorials/tutorial_overview.md | 2 +- .../source/ko/using-diffusers/conditional_image_generation.md | 2 +- docs/source/ko/using-diffusers/controlling_generation.md | 2 +- docs/source/ko/using-diffusers/custom_pipeline_overview.md | 2 +- docs/source/ko/using-diffusers/depth2img.md | 2 +- docs/source/ko/using-diffusers/img2img.md | 2 +- docs/source/ko/using-diffusers/inpaint.md | 2 +- docs/source/ko/using-diffusers/loading.md | 2 +- docs/source/ko/using-diffusers/loading_adapters.md | 2 +- docs/source/ko/using-diffusers/other-formats.md | 2 +- docs/source/ko/using-diffusers/push_to_hub.md | 2 +- docs/source/ko/using-diffusers/schedulers.md | 2 +- docs/source/ko/using-diffusers/stable_diffusion_jax_how_to.md | 2 +- .../ko/using-diffusers/unconditional_image_generation.md | 2 +- docs/source/ko/using-diffusers/weighted_prompts.md | 2 +- docs/source/ko/using-diffusers/write_own_pipeline.md | 2 +- docs/source/pt/index.md | 2 +- docs/source/pt/installation.md | 2 +- docs/source/pt/quicktour.md | 2 +- docs/source/zh/consisid.md | 2 +- docs/source/zh/index.md | 2 +- docs/source/zh/installation.md | 2 +- docs/source/zh/quicktour.md | 2 +- docs/source/zh/stable_diffusion.md | 2 +- examples/README.md | 2 +- examples/cogvideo/train_cogvideox_image_to_video_lora.py | 2 +- examples/cogvideo/train_cogvideox_lora.py | 2 +- examples/community/composable_stable_diffusion.py | 2 +- examples/community/dps_pipeline.py | 2 +- examples/community/fresco_v2v.py | 2 +- examples/community/instaflow_one_step.py | 2 +- examples/community/ip_adapter_face_id.py | 2 +- examples/community/kohya_hires_fix.py | 2 +- examples/community/latent_consistency_img2img.py | 2 +- examples/community/latent_consistency_txt2img.py | 2 +- examples/community/llm_grounded_diffusion.py | 2 +- examples/community/marigold_depth_estimation.py | 2 +- examples/community/matryoshka.py | 2 +- examples/community/pipeline_animatediff_controlnet.py | 2 +- examples/community/pipeline_animatediff_img2video.py | 2 +- examples/community/pipeline_animatediff_ipex.py | 2 +- examples/community/pipeline_controlnet_xl_kolors.py | 2 +- examples/community/pipeline_controlnet_xl_kolors_img2img.py | 2 +- examples/community/pipeline_controlnet_xl_kolors_inpaint.py | 2 +- examples/community/pipeline_fabric.py | 2 +- examples/community/pipeline_flux_differential_img2img.py | 2 +- examples/community/pipeline_flux_rf_inversion.py | 2 +- examples/community/pipeline_flux_semantic_guidance.py | 2 +- examples/community/pipeline_flux_with_cfg.py | 2 +- .../community/pipeline_hunyuandit_differential_img2img.py | 2 +- examples/community/pipeline_kolors_differential_img2img.py | 2 +- examples/community/pipeline_kolors_inpainting.py | 2 +- examples/community/pipeline_prompt2prompt.py | 2 +- examples/community/pipeline_sdxl_style_aligned.py | 2 +- .../pipeline_stable_diffusion_3_differential_img2img.py | 2 +- .../community/pipeline_stable_diffusion_3_instruct_pix2pix.py | 2 +- examples/community/pipeline_stable_diffusion_boxdiff.py | 2 +- examples/community/pipeline_stable_diffusion_upscale_ldm3d.py | 2 +- .../pipeline_stable_diffusion_xl_attentive_eraser.py | 2 +- .../pipeline_stable_diffusion_xl_controlnet_adapter.py | 2 +- ...pipeline_stable_diffusion_xl_controlnet_adapter_inpaint.py | 2 +- .../pipeline_stable_diffusion_xl_differential_img2img.py | 2 +- .../pipeline_stable_diffusion_xl_instandid_img2img.py | 2 +- examples/community/pipeline_stable_diffusion_xl_instantid.py | 2 +- examples/community/pipeline_stg_cogvideox.py | 2 +- examples/community/pipeline_stg_hunyuan_video.py | 2 +- examples/community/pipeline_stg_ltx.py | 2 +- examples/community/pipeline_stg_ltx_image2video.py | 2 +- examples/community/pipeline_stg_mochi.py | 2 +- examples/community/rerender_a_video.py | 2 +- examples/community/scheduling_ufogen.py | 2 +- examples/community/sd_text2img_k_diffusion.py | 2 +- examples/community/stable_diffusion_ipex.py | 2 +- examples/community/stable_diffusion_repaint.py | 2 +- examples/community/tiled_upscaling.py | 2 +- examples/conftest.py | 2 +- .../consistency_distillation/train_lcm_distill_lora_sdxl.py | 2 +- examples/custom_diffusion/retrieve.py | 2 +- examples/custom_diffusion/train_custom_diffusion.py | 2 +- examples/instruct_pix2pix/train_instruct_pix2pix_sdxl.py | 2 +- examples/research_projects/anytext/anytext.py | 2 +- .../research_projects/diffusion_dpo/train_diffusion_dpo.py | 2 +- .../diffusion_dpo/train_diffusion_dpo_sdxl.py | 2 +- .../pixart/pipeline_pixart_alpha_controlnet.py | 2 +- scripts/convert_stable_diffusion_checkpoint_to_onnx.py | 2 +- setup.py | 2 +- src/diffusers/commands/__init__.py | 2 +- src/diffusers/commands/diffusers_cli.py | 2 +- src/diffusers/commands/env.py | 2 +- src/diffusers/commands/fp16_safetensors.py | 2 +- src/diffusers/dependency_versions_check.py | 2 +- src/diffusers/experimental/rl/value_guided_sampling.py | 2 +- src/diffusers/hooks/faster_cache.py | 2 +- src/diffusers/hooks/group_offloading.py | 2 +- src/diffusers/hooks/hooks.py | 2 +- src/diffusers/hooks/layerwise_casting.py | 2 +- src/diffusers/hooks/pyramid_attention_broadcast.py | 2 +- src/diffusers/image_processor.py | 2 +- src/diffusers/loaders/ip_adapter.py | 2 +- src/diffusers/loaders/lora_base.py | 2 +- src/diffusers/loaders/lora_conversion_utils.py | 2 +- src/diffusers/loaders/lora_pipeline.py | 2 +- src/diffusers/loaders/single_file.py | 2 +- src/diffusers/loaders/single_file_model.py | 2 +- src/diffusers/loaders/textual_inversion.py | 2 +- src/diffusers/loaders/transformer_flux.py | 2 +- src/diffusers/loaders/transformer_sd3.py | 2 +- src/diffusers/loaders/unet.py | 2 +- src/diffusers/loaders/unet_loader_utils.py | 2 +- src/diffusers/loaders/utils.py | 2 +- src/diffusers/models/__init__.py | 2 +- src/diffusers/models/attention.py | 2 +- src/diffusers/models/attention_flax.py | 2 +- src/diffusers/models/attention_processor.py | 2 +- src/diffusers/models/autoencoders/autoencoder_asym_kl.py | 2 +- src/diffusers/models/autoencoders/autoencoder_dc.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl_allegro.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl_cogvideox.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl_cosmos.py | 2 +- .../models/autoencoders/autoencoder_kl_hunyuan_video.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl_ltx.py | 2 +- src/diffusers/models/autoencoders/autoencoder_kl_mochi.py | 2 +- .../models/autoencoders/autoencoder_kl_temporal_decoder.py | 2 +- src/diffusers/models/autoencoders/autoencoder_oobleck.py | 2 +- src/diffusers/models/autoencoders/autoencoder_tiny.py | 2 +- src/diffusers/models/autoencoders/consistency_decoder_vae.py | 2 +- src/diffusers/models/autoencoders/vae.py | 2 +- src/diffusers/models/autoencoders/vq_model.py | 2 +- src/diffusers/models/cache_utils.py | 2 +- src/diffusers/models/controlnet.py | 2 +- src/diffusers/models/controlnet_flux.py | 2 +- src/diffusers/models/controlnet_sd3.py | 2 +- src/diffusers/models/controlnet_sparsectrl.py | 2 +- src/diffusers/models/controlnets/controlnet.py | 2 +- src/diffusers/models/controlnets/controlnet_flax.py | 2 +- src/diffusers/models/controlnets/controlnet_flux.py | 2 +- src/diffusers/models/controlnets/controlnet_hunyuan.py | 2 +- src/diffusers/models/controlnets/controlnet_sana.py | 2 +- src/diffusers/models/controlnets/controlnet_sd3.py | 2 +- src/diffusers/models/controlnets/controlnet_sparsectrl.py | 2 +- src/diffusers/models/controlnets/controlnet_union.py | 2 +- src/diffusers/models/controlnets/controlnet_xs.py | 2 +- src/diffusers/models/downsampling.py | 2 +- src/diffusers/models/embeddings.py | 2 +- src/diffusers/models/embeddings_flax.py | 2 +- src/diffusers/models/lora.py | 2 +- src/diffusers/models/resnet.py | 4 ++-- src/diffusers/models/resnet_flax.py | 2 +- src/diffusers/models/transformers/auraflow_transformer_2d.py | 2 +- src/diffusers/models/transformers/cogvideox_transformer_3d.py | 2 +- src/diffusers/models/transformers/consisid_transformer_3d.py | 2 +- src/diffusers/models/transformers/dit_transformer_2d.py | 2 +- src/diffusers/models/transformers/dual_transformer_2d.py | 2 +- src/diffusers/models/transformers/hunyuan_transformer_2d.py | 2 +- src/diffusers/models/transformers/latte_transformer_3d.py | 2 +- src/diffusers/models/transformers/lumina_nextdit2d.py | 2 +- src/diffusers/models/transformers/pixart_transformer_2d.py | 2 +- src/diffusers/models/transformers/sana_transformer.py | 2 +- src/diffusers/models/transformers/stable_audio_transformer.py | 2 +- src/diffusers/models/transformers/t5_film_transformer.py | 2 +- src/diffusers/models/transformers/transformer_2d.py | 2 +- src/diffusers/models/transformers/transformer_allegro.py | 2 +- src/diffusers/models/transformers/transformer_cogview3plus.py | 2 +- src/diffusers/models/transformers/transformer_cogview4.py | 2 +- src/diffusers/models/transformers/transformer_cosmos.py | 2 +- src/diffusers/models/transformers/transformer_flux.py | 2 +- .../models/transformers/transformer_hunyuan_video.py | 2 +- src/diffusers/models/transformers/transformer_ltx.py | 2 +- src/diffusers/models/transformers/transformer_lumina2.py | 2 +- src/diffusers/models/transformers/transformer_mochi.py | 2 +- src/diffusers/models/transformers/transformer_omnigen.py | 2 +- src/diffusers/models/transformers/transformer_sd3.py | 2 +- src/diffusers/models/transformers/transformer_temporal.py | 2 +- src/diffusers/models/unets/unet_1d.py | 2 +- src/diffusers/models/unets/unet_1d_blocks.py | 2 +- src/diffusers/models/unets/unet_2d.py | 2 +- src/diffusers/models/unets/unet_2d_blocks.py | 2 +- src/diffusers/models/unets/unet_2d_blocks_flax.py | 2 +- src/diffusers/models/unets/unet_2d_condition.py | 2 +- src/diffusers/models/unets/unet_2d_condition_flax.py | 2 +- src/diffusers/models/unets/unet_3d_blocks.py | 2 +- src/diffusers/models/unets/unet_3d_condition.py | 4 ++-- src/diffusers/models/unets/unet_i2vgen_xl.py | 2 +- src/diffusers/models/unets/unet_kandinsky3.py | 2 +- src/diffusers/models/unets/unet_motion_model.py | 2 +- src/diffusers/models/unets/unet_stable_cascade.py | 2 +- src/diffusers/models/upsampling.py | 2 +- src/diffusers/models/vae_flax.py | 2 +- src/diffusers/models/vq_model.py | 2 +- src/diffusers/pipelines/allegro/pipeline_allegro.py | 2 +- src/diffusers/pipelines/amused/pipeline_amused.py | 2 +- src/diffusers/pipelines/amused/pipeline_amused_img2img.py | 2 +- src/diffusers/pipelines/amused/pipeline_amused_inpaint.py | 2 +- src/diffusers/pipelines/animatediff/pipeline_animatediff.py | 2 +- .../pipelines/animatediff/pipeline_animatediff_controlnet.py | 2 +- .../pipelines/animatediff/pipeline_animatediff_sdxl.py | 2 +- .../pipelines/animatediff/pipeline_animatediff_sparsectrl.py | 2 +- .../pipelines/animatediff/pipeline_animatediff_video2video.py | 2 +- .../pipeline_animatediff_video2video_controlnet.py | 2 +- src/diffusers/pipelines/audioldm/pipeline_audioldm.py | 2 +- src/diffusers/pipelines/audioldm2/modeling_audioldm2.py | 2 +- src/diffusers/pipelines/audioldm2/pipeline_audioldm2.py | 2 +- src/diffusers/pipelines/aura_flow/pipeline_aura_flow.py | 2 +- src/diffusers/pipelines/blip_diffusion/modeling_blip2.py | 2 +- src/diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py | 4 ++-- .../pipelines/blip_diffusion/pipeline_blip_diffusion.py | 4 ++-- src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py | 2 +- .../pipelines/cogvideo/pipeline_cogvideox_fun_control.py | 2 +- .../pipelines/cogvideo/pipeline_cogvideox_image2video.py | 2 +- .../pipelines/cogvideo/pipeline_cogvideox_video2video.py | 2 +- src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py | 2 +- src/diffusers/pipelines/cogview4/pipeline_cogview4.py | 2 +- src/diffusers/pipelines/cogview4/pipeline_cogview4_control.py | 2 +- src/diffusers/pipelines/consisid/pipeline_consisid.py | 2 +- .../consistency_models/pipeline_consistency_models.py | 2 +- src/diffusers/pipelines/controlnet/pipeline_controlnet.py | 2 +- .../controlnet/pipeline_controlnet_blip_diffusion.py | 4 ++-- .../pipelines/controlnet/pipeline_controlnet_img2img.py | 2 +- .../pipelines/controlnet/pipeline_controlnet_inpaint.py | 2 +- .../pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py | 2 +- .../pipelines/controlnet/pipeline_controlnet_sd_xl.py | 2 +- .../pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py | 2 +- .../controlnet/pipeline_controlnet_union_inpaint_sd_xl.py | 2 +- .../pipelines/controlnet/pipeline_controlnet_union_sd_xl.py | 2 +- .../controlnet/pipeline_controlnet_union_sd_xl_img2img.py | 2 +- .../pipelines/controlnet/pipeline_flax_controlnet.py | 2 +- .../controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py | 2 +- .../controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py | 2 +- .../pipeline_stable_diffusion_3_controlnet_inpainting.py | 2 +- .../pipelines/controlnet_xs/pipeline_controlnet_xs.py | 2 +- .../pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py | 2 +- src/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py | 2 +- src/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py | 2 +- .../pipelines/dance_diffusion/pipeline_dance_diffusion.py | 2 +- src/diffusers/pipelines/ddim/pipeline_ddim.py | 2 +- src/diffusers/pipelines/ddpm/pipeline_ddpm.py | 2 +- .../deprecated/alt_diffusion/pipeline_alt_diffusion.py | 2 +- .../alt_diffusion/pipeline_alt_diffusion_img2img.py | 2 +- src/diffusers/pipelines/deprecated/audio_diffusion/mel.py | 2 +- .../deprecated/audio_diffusion/pipeline_audio_diffusion.py | 2 +- .../pipeline_latent_diffusion_uncond.py | 2 +- src/diffusers/pipelines/deprecated/pndm/pipeline_pndm.py | 2 +- .../pipelines/deprecated/repaint/pipeline_repaint.py | 2 +- .../deprecated/score_sde_ve/pipeline_score_sde_ve.py | 2 +- .../deprecated/spectrogram_diffusion/continuous_encoder.py | 2 +- .../pipelines/deprecated/spectrogram_diffusion/midi_utils.py | 2 +- .../deprecated/spectrogram_diffusion/notes_encoder.py | 2 +- .../spectrogram_diffusion/pipeline_spectrogram_diffusion.py | 2 +- .../stable_diffusion_variants/pipeline_cycle_diffusion.py | 2 +- .../pipeline_stable_diffusion_inpaint_legacy.py | 2 +- .../pipeline_stable_diffusion_model_editing.py | 2 +- .../pipeline_stable_diffusion_paradigms.py | 2 +- .../pipeline_stable_diffusion_pix2pix_zero.py | 2 +- .../stochastic_karras_ve/pipeline_stochastic_karras_ve.py | 2 +- .../pipeline_versatile_diffusion_dual_guided.py | 2 +- .../pipeline_versatile_diffusion_image_variation.py | 2 +- .../pipeline_versatile_diffusion_text_to_image.py | 2 +- .../deprecated/vq_diffusion/pipeline_vq_diffusion.py | 2 +- src/diffusers/pipelines/dit/pipeline_dit.py | 2 +- src/diffusers/pipelines/flux/modeling_flux.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_control.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_controlnet.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_fill.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_inpaint.py | 2 +- src/diffusers/pipelines/flux/pipeline_flux_prior_redux.py | 2 +- src/diffusers/pipelines/free_init_utils.py | 2 +- src/diffusers/pipelines/free_noise_utils.py | 2 +- .../hunyuan_video/pipeline_hunyuan_skyreels_image2video.py | 2 +- .../pipelines/hunyuan_video/pipeline_hunyuan_video.py | 2 +- .../hunyuan_video/pipeline_hunyuan_video_image2video.py | 2 +- src/diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py | 2 +- src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py | 2 +- src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py | 2 +- .../pipelines/kandinsky/pipeline_kandinsky_combined.py | 2 +- .../pipelines/kandinsky/pipeline_kandinsky_img2img.py | 2 +- .../pipelines/kandinsky/pipeline_kandinsky_inpaint.py | 2 +- src/diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py | 2 +- src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py | 2 +- .../pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py | 2 +- .../kandinsky2_2/pipeline_kandinsky2_2_controlnet.py | 2 +- .../kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py | 2 +- .../pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py | 2 +- .../kandinsky2_2/pipeline_kandinsky2_2_inpainting.py | 2 +- src/diffusers/pipelines/kolors/pipeline_kolors.py | 2 +- src/diffusers/pipelines/kolors/pipeline_kolors_img2img.py | 2 +- src/diffusers/pipelines/kolors/text_encoder.py | 2 +- src/diffusers/pipelines/kolors/tokenizer.py | 2 +- .../pipeline_latent_consistency_img2img.py | 2 +- .../pipeline_latent_consistency_text2img.py | 2 +- .../pipelines/latent_diffusion/pipeline_latent_diffusion.py | 2 +- src/diffusers/pipelines/latte/pipeline_latte.py | 2 +- src/diffusers/pipelines/ltx/pipeline_ltx.py | 2 +- src/diffusers/pipelines/ltx/pipeline_ltx_condition.py | 2 +- src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py | 2 +- src/diffusers/pipelines/lumina/pipeline_lumina.py | 2 +- src/diffusers/pipelines/lumina2/pipeline_lumina2.py | 2 +- src/diffusers/pipelines/mochi/pipeline_mochi.py | 2 +- src/diffusers/pipelines/musicldm/pipeline_musicldm.py | 2 +- src/diffusers/pipelines/omnigen/pipeline_omnigen.py | 2 +- src/diffusers/pipelines/omnigen/processor_omnigen.py | 2 +- src/diffusers/pipelines/pag/pag_utils.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py | 2 +- .../pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py | 2 +- .../pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_hunyuandit.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_kolors.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sana.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_3.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_img2img.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_xl.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py | 2 +- src/diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py | 2 +- src/diffusers/pipelines/paint_by_example/image_encoder.py | 2 +- .../pipelines/paint_by_example/pipeline_paint_by_example.py | 2 +- src/diffusers/pipelines/pia/pipeline_pia.py | 2 +- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py | 2 +- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py | 2 +- src/diffusers/pipelines/sana/pipeline_sana.py | 2 +- src/diffusers/pipelines/sana/pipeline_sana_controlnet.py | 2 +- src/diffusers/pipelines/sana/pipeline_sana_sprint.py | 2 +- src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py | 2 +- src/diffusers/pipelines/shap_e/camera.py | 2 +- src/diffusers/pipelines/shap_e/pipeline_shap_e.py | 2 +- src/diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py | 2 +- src/diffusers/pipelines/shap_e/renderer.py | 2 +- src/diffusers/pipelines/stable_audio/modeling_stable_audio.py | 2 +- src/diffusers/pipelines/stable_audio/pipeline_stable_audio.py | 2 +- .../pipelines/stable_cascade/pipeline_stable_cascade.py | 2 +- .../stable_cascade/pipeline_stable_cascade_combined.py | 2 +- .../pipelines/stable_cascade/pipeline_stable_cascade_prior.py | 2 +- .../pipelines/stable_diffusion/clip_image_project_model.py | 2 +- .../stable_diffusion/pipeline_flax_stable_diffusion.py | 2 +- .../pipeline_flax_stable_diffusion_img2img.py | 2 +- .../pipeline_flax_stable_diffusion_inpaint.py | 2 +- .../stable_diffusion/pipeline_onnx_stable_diffusion.py | 2 +- .../pipeline_onnx_stable_diffusion_img2img.py | 2 +- .../pipeline_onnx_stable_diffusion_inpaint.py | 2 +- .../pipeline_onnx_stable_diffusion_upscale.py | 2 +- .../pipelines/stable_diffusion/pipeline_stable_diffusion.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_depth2img.py | 2 +- .../pipeline_stable_diffusion_image_variation.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_img2img.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_inpaint.py | 2 +- .../pipeline_stable_diffusion_instruct_pix2pix.py | 2 +- .../pipeline_stable_diffusion_latent_upscale.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_upscale.py | 2 +- .../pipelines/stable_diffusion/pipeline_stable_unclip.py | 2 +- .../stable_diffusion/pipeline_stable_unclip_img2img.py | 2 +- src/diffusers/pipelines/stable_diffusion/safety_checker.py | 2 +- .../pipelines/stable_diffusion/safety_checker_flax.py | 2 +- .../stable_diffusion/stable_unclip_image_normalizer.py | 2 +- .../stable_diffusion_3/pipeline_stable_diffusion_3.py | 2 +- .../stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py | 2 +- .../stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py | 2 +- .../pipeline_stable_diffusion_attend_and_excite.py | 2 +- .../pipeline_stable_diffusion_diffedit.py | 2 +- .../pipeline_stable_diffusion_gligen.py | 2 +- .../pipeline_stable_diffusion_gligen_text_image.py | 2 +- .../pipeline_stable_diffusion_k_diffusion.py | 2 +- .../pipeline_stable_diffusion_xl_k_diffusion.py | 2 +- .../stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py | 2 +- .../pipeline_stable_diffusion_panorama.py | 2 +- .../pipelines/stable_diffusion_safe/safety_checker.py | 2 +- .../stable_diffusion_sag/pipeline_stable_diffusion_sag.py | 2 +- .../stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py | 2 +- .../stable_diffusion_xl/pipeline_stable_diffusion_xl.py | 2 +- .../pipeline_stable_diffusion_xl_img2img.py | 2 +- .../pipeline_stable_diffusion_xl_inpaint.py | 2 +- .../pipeline_stable_diffusion_xl_instruct_pix2pix.py | 2 +- .../stable_video_diffusion/pipeline_stable_video_diffusion.py | 2 +- .../t2i_adapter/pipeline_stable_diffusion_adapter.py | 2 +- .../t2i_adapter/pipeline_stable_diffusion_xl_adapter.py | 2 +- .../text_to_video_synthesis/pipeline_text_to_video_synth.py | 2 +- .../pipeline_text_to_video_synth_img2img.py | 2 +- src/diffusers/pipelines/unclip/pipeline_unclip.py | 2 +- .../pipelines/unclip/pipeline_unclip_image_variation.py | 2 +- src/diffusers/pipelines/unclip/text_proj.py | 2 +- .../pipelines/wuerstchen/modeling_paella_vq_model.py | 2 +- .../pipelines/wuerstchen/modeling_wuerstchen_diffnext.py | 2 +- .../pipelines/wuerstchen/modeling_wuerstchen_prior.py | 2 +- src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py | 2 +- .../pipelines/wuerstchen/pipeline_wuerstchen_combined.py | 2 +- .../pipelines/wuerstchen/pipeline_wuerstchen_prior.py | 2 +- src/diffusers/quantizers/__init__.py | 2 +- src/diffusers/quantizers/gguf/utils.py | 2 +- src/diffusers/schedulers/__init__.py | 2 +- src/diffusers/schedulers/deprecated/scheduling_karras_ve.py | 2 +- src/diffusers/schedulers/deprecated/scheduling_sde_vp.py | 2 +- src/diffusers/schedulers/scheduling_consistency_models.py | 2 +- .../schedulers/scheduling_cosine_dpmsolver_multistep.py | 2 +- src/diffusers/schedulers/scheduling_ddim.py | 2 +- src/diffusers/schedulers/scheduling_ddim_cogvideox.py | 2 +- src/diffusers/schedulers/scheduling_ddim_flax.py | 2 +- src/diffusers/schedulers/scheduling_ddim_inverse.py | 2 +- src/diffusers/schedulers/scheduling_ddim_parallel.py | 2 +- src/diffusers/schedulers/scheduling_ddpm.py | 2 +- src/diffusers/schedulers/scheduling_ddpm_flax.py | 2 +- src/diffusers/schedulers/scheduling_ddpm_parallel.py | 2 +- src/diffusers/schedulers/scheduling_ddpm_wuerstchen.py | 2 +- src/diffusers/schedulers/scheduling_deis_multistep.py | 2 +- src/diffusers/schedulers/scheduling_dpm_cogvideox.py | 2 +- src/diffusers/schedulers/scheduling_dpmsolver_multistep.py | 2 +- .../schedulers/scheduling_dpmsolver_multistep_flax.py | 2 +- .../schedulers/scheduling_dpmsolver_multistep_inverse.py | 2 +- src/diffusers/schedulers/scheduling_dpmsolver_sde.py | 2 +- src/diffusers/schedulers/scheduling_dpmsolver_singlestep.py | 2 +- .../schedulers/scheduling_edm_dpmsolver_multistep.py | 2 +- src/diffusers/schedulers/scheduling_edm_euler.py | 2 +- .../schedulers/scheduling_euler_ancestral_discrete.py | 2 +- src/diffusers/schedulers/scheduling_euler_discrete.py | 2 +- src/diffusers/schedulers/scheduling_euler_discrete_flax.py | 2 +- .../schedulers/scheduling_flow_match_euler_discrete.py | 2 +- .../schedulers/scheduling_flow_match_heun_discrete.py | 2 +- src/diffusers/schedulers/scheduling_flow_match_lcm.py | 2 +- src/diffusers/schedulers/scheduling_heun_discrete.py | 2 +- src/diffusers/schedulers/scheduling_ipndm.py | 2 +- .../schedulers/scheduling_k_dpm_2_ancestral_discrete.py | 2 +- src/diffusers/schedulers/scheduling_k_dpm_2_discrete.py | 2 +- src/diffusers/schedulers/scheduling_karras_ve_flax.py | 2 +- src/diffusers/schedulers/scheduling_lcm.py | 2 +- src/diffusers/schedulers/scheduling_lms_discrete.py | 2 +- src/diffusers/schedulers/scheduling_lms_discrete_flax.py | 2 +- src/diffusers/schedulers/scheduling_pndm.py | 2 +- src/diffusers/schedulers/scheduling_pndm_flax.py | 2 +- src/diffusers/schedulers/scheduling_repaint.py | 2 +- src/diffusers/schedulers/scheduling_sasolver.py | 2 +- src/diffusers/schedulers/scheduling_scm.py | 2 +- src/diffusers/schedulers/scheduling_sde_ve.py | 2 +- src/diffusers/schedulers/scheduling_sde_ve_flax.py | 2 +- src/diffusers/schedulers/scheduling_tcd.py | 2 +- src/diffusers/schedulers/scheduling_unclip.py | 2 +- src/diffusers/schedulers/scheduling_unipc_multistep.py | 2 +- src/diffusers/schedulers/scheduling_utils.py | 2 +- src/diffusers/schedulers/scheduling_utils_flax.py | 2 +- src/diffusers/schedulers/scheduling_vq_diffusion.py | 2 +- src/diffusers/utils/accelerate_utils.py | 2 +- src/diffusers/utils/doc_utils.py | 2 +- src/diffusers/utils/import_utils.py | 2 +- src/diffusers/utils/logging.py | 2 +- src/diffusers/utils/outputs.py | 2 +- src/diffusers/utils/peft_utils.py | 2 +- src/diffusers/utils/state_dict_utils.py | 2 +- src/diffusers/utils/torch_utils.py | 2 +- src/diffusers/video_processor.py | 2 +- tests/conftest.py | 2 +- tests/fixtures/custom_pipeline/pipeline.py | 2 +- tests/fixtures/custom_pipeline/what_ever.py | 2 +- tests/others/test_check_copies.py | 2 +- tests/others/test_check_dummies.py | 2 +- tests/others/test_dependencies.py | 2 +- tests/pipelines/allegro/test_allegro.py | 2 +- tests/pipelines/cogvideo/test_cogvideox.py | 2 +- tests/pipelines/cogvideo/test_cogvideox_fun_control.py | 2 +- tests/pipelines/cogvideo/test_cogvideox_image2video.py | 2 +- tests/pipelines/cogvideo/test_cogvideox_video2video.py | 2 +- tests/pipelines/cogview3/test_cogview3plus.py | 2 +- tests/pipelines/cogview4/test_cogview4.py | 2 +- tests/pipelines/consisid/test_consisid.py | 2 +- tests/pipelines/controlnet/test_controlnet_inpaint_sdxl.py | 2 +- tests/pipelines/controlnet_flux/test_controlnet_flux.py | 2 +- .../controlnet_hunyuandit/test_controlnet_hunyuandit.py | 2 +- tests/pipelines/controlnet_sd3/test_controlnet_sd3.py | 2 +- tests/pipelines/cosmos/cosmos_guardrail.py | 2 +- tests/pipelines/cosmos/test_cosmos.py | 2 +- tests/pipelines/cosmos/test_cosmos2_text2image.py | 2 +- tests/pipelines/cosmos/test_cosmos2_video2world.py | 2 +- tests/pipelines/cosmos/test_cosmos_video2world.py | 2 +- tests/pipelines/hunyuan_video/test_hunyuan_image2video.py | 2 +- .../hunyuan_video/test_hunyuan_skyreels_image2video.py | 2 +- tests/pipelines/hunyuan_video/test_hunyuan_video.py | 2 +- tests/pipelines/latte/test_latte.py | 2 +- tests/pipelines/ltx/test_ltx.py | 2 +- tests/pipelines/ltx/test_ltx_condition.py | 2 +- tests/pipelines/ltx/test_ltx_image2video.py | 2 +- tests/pipelines/mochi/test_mochi.py | 2 +- tests/pipelines/pag/test_pag_sana.py | 2 +- tests/pipelines/sana/test_sana.py | 2 +- tests/pipelines/sana/test_sana_controlnet.py | 2 +- tests/pipelines/sana/test_sana_sprint.py | 2 +- tests/pipelines/sana/test_sana_sprint_img2img.py | 2 +- .../test_stable_diffusion_xl_instruction_pix2pix.py | 2 +- tests/pipelines/wan/test_wan.py | 2 +- tests/pipelines/wan/test_wan_image_to_video.py | 2 +- tests/quantization/bnb/test_4bit.py | 2 +- tests/quantization/bnb/test_mixed_int8.py | 2 +- tests/quantization/test_pipeline_level_quantization.py | 2 +- tests/quantization/test_torch_compile_utils.py | 2 +- tests/quantization/torchao/test_torchao.py | 2 +- tests/schedulers/test_scheduler_ddim_parallel.py | 2 +- tests/schedulers/test_scheduler_ddpm_parallel.py | 2 +- utils/check_support_list.py | 2 +- utils/fetch_latest_release_branch.py | 2 +- utils/notify_benchmarking_status.py | 2 +- utils/notify_community_pipelines_mirror.py | 2 +- utils/notify_slack_about_release.py | 2 +- utils/stale.py | 2 +- 826 files changed, 831 insertions(+), 831 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 049d317599..ec18df8826 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -