diffusers 0.33.1__py3-none-any.whl → 0.34.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. diffusers/__init__.py +48 -1
  2. diffusers/commands/__init__.py +1 -1
  3. diffusers/commands/diffusers_cli.py +1 -1
  4. diffusers/commands/env.py +1 -1
  5. diffusers/commands/fp16_safetensors.py +1 -1
  6. diffusers/dependency_versions_check.py +1 -1
  7. diffusers/dependency_versions_table.py +1 -1
  8. diffusers/experimental/rl/value_guided_sampling.py +1 -1
  9. diffusers/hooks/faster_cache.py +2 -2
  10. diffusers/hooks/group_offloading.py +128 -29
  11. diffusers/hooks/hooks.py +2 -2
  12. diffusers/hooks/layerwise_casting.py +3 -3
  13. diffusers/hooks/pyramid_attention_broadcast.py +1 -1
  14. diffusers/image_processor.py +7 -2
  15. diffusers/loaders/__init__.py +4 -0
  16. diffusers/loaders/ip_adapter.py +5 -14
  17. diffusers/loaders/lora_base.py +212 -111
  18. diffusers/loaders/lora_conversion_utils.py +275 -34
  19. diffusers/loaders/lora_pipeline.py +1554 -819
  20. diffusers/loaders/peft.py +52 -109
  21. diffusers/loaders/single_file.py +2 -2
  22. diffusers/loaders/single_file_model.py +20 -4
  23. diffusers/loaders/single_file_utils.py +225 -5
  24. diffusers/loaders/textual_inversion.py +3 -2
  25. diffusers/loaders/transformer_flux.py +1 -1
  26. diffusers/loaders/transformer_sd3.py +2 -2
  27. diffusers/loaders/unet.py +2 -16
  28. diffusers/loaders/unet_loader_utils.py +1 -1
  29. diffusers/loaders/utils.py +1 -1
  30. diffusers/models/__init__.py +15 -1
  31. diffusers/models/activations.py +5 -5
  32. diffusers/models/adapter.py +2 -3
  33. diffusers/models/attention.py +4 -4
  34. diffusers/models/attention_flax.py +10 -10
  35. diffusers/models/attention_processor.py +14 -10
  36. diffusers/models/auto_model.py +47 -10
  37. diffusers/models/autoencoders/__init__.py +1 -0
  38. diffusers/models/autoencoders/autoencoder_asym_kl.py +4 -4
  39. diffusers/models/autoencoders/autoencoder_dc.py +3 -3
  40. diffusers/models/autoencoders/autoencoder_kl.py +4 -4
  41. diffusers/models/autoencoders/autoencoder_kl_allegro.py +4 -4
  42. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +6 -6
  43. diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1108 -0
  44. diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +2 -2
  45. diffusers/models/autoencoders/autoencoder_kl_ltx.py +3 -3
  46. diffusers/models/autoencoders/autoencoder_kl_magvit.py +4 -4
  47. diffusers/models/autoencoders/autoencoder_kl_mochi.py +3 -3
  48. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +4 -4
  49. diffusers/models/autoencoders/autoencoder_kl_wan.py +256 -22
  50. diffusers/models/autoencoders/autoencoder_oobleck.py +1 -1
  51. diffusers/models/autoencoders/autoencoder_tiny.py +3 -3
  52. diffusers/models/autoencoders/consistency_decoder_vae.py +1 -1
  53. diffusers/models/autoencoders/vae.py +13 -2
  54. diffusers/models/autoencoders/vq_model.py +2 -2
  55. diffusers/models/cache_utils.py +1 -1
  56. diffusers/models/controlnet.py +1 -1
  57. diffusers/models/controlnet_flux.py +1 -1
  58. diffusers/models/controlnet_sd3.py +1 -1
  59. diffusers/models/controlnet_sparsectrl.py +1 -1
  60. diffusers/models/controlnets/__init__.py +1 -0
  61. diffusers/models/controlnets/controlnet.py +3 -3
  62. diffusers/models/controlnets/controlnet_flax.py +1 -1
  63. diffusers/models/controlnets/controlnet_flux.py +16 -15
  64. diffusers/models/controlnets/controlnet_hunyuan.py +2 -2
  65. diffusers/models/controlnets/controlnet_sana.py +290 -0
  66. diffusers/models/controlnets/controlnet_sd3.py +1 -1
  67. diffusers/models/controlnets/controlnet_sparsectrl.py +2 -2
  68. diffusers/models/controlnets/controlnet_union.py +1 -1
  69. diffusers/models/controlnets/controlnet_xs.py +7 -7
  70. diffusers/models/controlnets/multicontrolnet.py +4 -5
  71. diffusers/models/controlnets/multicontrolnet_union.py +5 -6
  72. diffusers/models/downsampling.py +2 -2
  73. diffusers/models/embeddings.py +10 -12
  74. diffusers/models/embeddings_flax.py +2 -2
  75. diffusers/models/lora.py +3 -3
  76. diffusers/models/modeling_utils.py +44 -14
  77. diffusers/models/normalization.py +4 -4
  78. diffusers/models/resnet.py +2 -2
  79. diffusers/models/resnet_flax.py +1 -1
  80. diffusers/models/transformers/__init__.py +5 -0
  81. diffusers/models/transformers/auraflow_transformer_2d.py +70 -24
  82. diffusers/models/transformers/cogvideox_transformer_3d.py +1 -1
  83. diffusers/models/transformers/consisid_transformer_3d.py +1 -1
  84. diffusers/models/transformers/dit_transformer_2d.py +2 -2
  85. diffusers/models/transformers/dual_transformer_2d.py +1 -1
  86. diffusers/models/transformers/hunyuan_transformer_2d.py +2 -2
  87. diffusers/models/transformers/latte_transformer_3d.py +4 -5
  88. diffusers/models/transformers/lumina_nextdit2d.py +2 -2
  89. diffusers/models/transformers/pixart_transformer_2d.py +3 -3
  90. diffusers/models/transformers/prior_transformer.py +1 -1
  91. diffusers/models/transformers/sana_transformer.py +8 -3
  92. diffusers/models/transformers/stable_audio_transformer.py +5 -9
  93. diffusers/models/transformers/t5_film_transformer.py +3 -3
  94. diffusers/models/transformers/transformer_2d.py +1 -1
  95. diffusers/models/transformers/transformer_allegro.py +1 -1
  96. diffusers/models/transformers/transformer_chroma.py +742 -0
  97. diffusers/models/transformers/transformer_cogview3plus.py +5 -10
  98. diffusers/models/transformers/transformer_cogview4.py +317 -25
  99. diffusers/models/transformers/transformer_cosmos.py +579 -0
  100. diffusers/models/transformers/transformer_flux.py +9 -11
  101. diffusers/models/transformers/transformer_hidream_image.py +942 -0
  102. diffusers/models/transformers/transformer_hunyuan_video.py +6 -8
  103. diffusers/models/transformers/transformer_hunyuan_video_framepack.py +416 -0
  104. diffusers/models/transformers/transformer_ltx.py +2 -2
  105. diffusers/models/transformers/transformer_lumina2.py +1 -1
  106. diffusers/models/transformers/transformer_mochi.py +1 -1
  107. diffusers/models/transformers/transformer_omnigen.py +2 -2
  108. diffusers/models/transformers/transformer_sd3.py +7 -7
  109. diffusers/models/transformers/transformer_temporal.py +1 -1
  110. diffusers/models/transformers/transformer_wan.py +24 -8
  111. diffusers/models/transformers/transformer_wan_vace.py +393 -0
  112. diffusers/models/unets/unet_1d.py +1 -1
  113. diffusers/models/unets/unet_1d_blocks.py +1 -1
  114. diffusers/models/unets/unet_2d.py +1 -1
  115. diffusers/models/unets/unet_2d_blocks.py +1 -1
  116. diffusers/models/unets/unet_2d_blocks_flax.py +8 -7
  117. diffusers/models/unets/unet_2d_condition.py +2 -2
  118. diffusers/models/unets/unet_2d_condition_flax.py +2 -2
  119. diffusers/models/unets/unet_3d_blocks.py +1 -1
  120. diffusers/models/unets/unet_3d_condition.py +3 -3
  121. diffusers/models/unets/unet_i2vgen_xl.py +3 -3
  122. diffusers/models/unets/unet_kandinsky3.py +1 -1
  123. diffusers/models/unets/unet_motion_model.py +2 -2
  124. diffusers/models/unets/unet_stable_cascade.py +1 -1
  125. diffusers/models/upsampling.py +2 -2
  126. diffusers/models/vae_flax.py +2 -2
  127. diffusers/models/vq_model.py +1 -1
  128. diffusers/pipelines/__init__.py +37 -6
  129. diffusers/pipelines/allegro/pipeline_allegro.py +11 -11
  130. diffusers/pipelines/amused/pipeline_amused.py +7 -6
  131. diffusers/pipelines/amused/pipeline_amused_img2img.py +6 -5
  132. diffusers/pipelines/amused/pipeline_amused_inpaint.py +6 -5
  133. diffusers/pipelines/animatediff/pipeline_animatediff.py +6 -6
  134. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +6 -6
  135. diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +16 -15
  136. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +6 -6
  137. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +5 -5
  138. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +5 -5
  139. diffusers/pipelines/audioldm/pipeline_audioldm.py +8 -7
  140. diffusers/pipelines/audioldm2/modeling_audioldm2.py +1 -1
  141. diffusers/pipelines/audioldm2/pipeline_audioldm2.py +23 -13
  142. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +48 -11
  143. diffusers/pipelines/auto_pipeline.py +6 -7
  144. diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
  145. diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +2 -2
  146. diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +11 -10
  147. diffusers/pipelines/chroma/__init__.py +49 -0
  148. diffusers/pipelines/chroma/pipeline_chroma.py +949 -0
  149. diffusers/pipelines/chroma/pipeline_chroma_img2img.py +1034 -0
  150. diffusers/pipelines/chroma/pipeline_output.py +21 -0
  151. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +8 -8
  152. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +8 -8
  153. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +8 -8
  154. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +8 -8
  155. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +9 -9
  156. diffusers/pipelines/cogview4/pipeline_cogview4.py +7 -7
  157. diffusers/pipelines/cogview4/pipeline_cogview4_control.py +7 -7
  158. diffusers/pipelines/consisid/consisid_utils.py +2 -2
  159. diffusers/pipelines/consisid/pipeline_consisid.py +8 -8
  160. diffusers/pipelines/consistency_models/pipeline_consistency_models.py +1 -1
  161. diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -7
  162. diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +8 -8
  163. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -7
  164. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +7 -7
  165. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +14 -14
  166. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +10 -6
  167. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +13 -13
  168. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +14 -14
  169. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +5 -5
  170. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +13 -13
  171. diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +1 -1
  172. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +8 -8
  173. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +7 -7
  174. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +7 -7
  175. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -10
  176. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +9 -7
  177. diffusers/pipelines/cosmos/__init__.py +54 -0
  178. diffusers/pipelines/cosmos/pipeline_cosmos2_text2image.py +673 -0
  179. diffusers/pipelines/cosmos/pipeline_cosmos2_video2world.py +792 -0
  180. diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +664 -0
  181. diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +826 -0
  182. diffusers/pipelines/cosmos/pipeline_output.py +40 -0
  183. diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +5 -4
  184. diffusers/pipelines/ddim/pipeline_ddim.py +4 -4
  185. diffusers/pipelines/ddpm/pipeline_ddpm.py +1 -1
  186. diffusers/pipelines/deepfloyd_if/pipeline_if.py +10 -10
  187. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +10 -10
  188. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +10 -10
  189. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +10 -10
  190. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +10 -10
  191. diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +10 -10
  192. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +8 -8
  193. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +5 -5
  194. diffusers/pipelines/deprecated/audio_diffusion/mel.py +1 -1
  195. diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +3 -3
  196. diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +1 -1
  197. diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +2 -2
  198. diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +4 -3
  199. diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +1 -1
  200. diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +1 -1
  201. diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +1 -1
  202. diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +1 -1
  203. diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +1 -1
  204. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +7 -7
  205. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +9 -9
  206. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +10 -10
  207. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +10 -8
  208. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +5 -5
  209. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +18 -18
  210. diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +1 -1
  211. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +2 -2
  212. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +6 -6
  213. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +5 -5
  214. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +5 -5
  215. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +5 -5
  216. diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +1 -1
  217. diffusers/pipelines/dit/pipeline_dit.py +1 -1
  218. diffusers/pipelines/easyanimate/pipeline_easyanimate.py +4 -4
  219. diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +4 -4
  220. diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +7 -6
  221. diffusers/pipelines/flux/modeling_flux.py +1 -1
  222. diffusers/pipelines/flux/pipeline_flux.py +10 -17
  223. diffusers/pipelines/flux/pipeline_flux_control.py +6 -6
  224. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +6 -6
  225. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +6 -6
  226. diffusers/pipelines/flux/pipeline_flux_controlnet.py +6 -6
  227. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +30 -22
  228. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +2 -1
  229. diffusers/pipelines/flux/pipeline_flux_fill.py +6 -6
  230. diffusers/pipelines/flux/pipeline_flux_img2img.py +39 -6
  231. diffusers/pipelines/flux/pipeline_flux_inpaint.py +11 -6
  232. diffusers/pipelines/flux/pipeline_flux_prior_redux.py +1 -1
  233. diffusers/pipelines/free_init_utils.py +2 -2
  234. diffusers/pipelines/free_noise_utils.py +3 -3
  235. diffusers/pipelines/hidream_image/__init__.py +47 -0
  236. diffusers/pipelines/hidream_image/pipeline_hidream_image.py +1026 -0
  237. diffusers/pipelines/hidream_image/pipeline_output.py +35 -0
  238. diffusers/pipelines/hunyuan_video/__init__.py +2 -0
  239. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +8 -8
  240. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +8 -8
  241. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_framepack.py +1114 -0
  242. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +71 -15
  243. diffusers/pipelines/hunyuan_video/pipeline_output.py +19 -0
  244. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +8 -8
  245. diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +10 -8
  246. diffusers/pipelines/kandinsky/pipeline_kandinsky.py +6 -6
  247. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +34 -34
  248. diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +19 -26
  249. diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +7 -7
  250. diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +11 -11
  251. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
  252. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +35 -35
  253. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +6 -6
  254. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +17 -39
  255. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +17 -45
  256. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +7 -7
  257. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +10 -10
  258. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +10 -10
  259. diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +7 -7
  260. diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +17 -38
  261. diffusers/pipelines/kolors/pipeline_kolors.py +10 -10
  262. diffusers/pipelines/kolors/pipeline_kolors_img2img.py +12 -12
  263. diffusers/pipelines/kolors/text_encoder.py +3 -3
  264. diffusers/pipelines/kolors/tokenizer.py +1 -1
  265. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +2 -2
  266. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +2 -2
  267. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
  268. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +3 -3
  269. diffusers/pipelines/latte/pipeline_latte.py +12 -12
  270. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +13 -13
  271. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +17 -16
  272. diffusers/pipelines/ltx/__init__.py +4 -0
  273. diffusers/pipelines/ltx/modeling_latent_upsampler.py +188 -0
  274. diffusers/pipelines/ltx/pipeline_ltx.py +51 -6
  275. diffusers/pipelines/ltx/pipeline_ltx_condition.py +107 -29
  276. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +50 -6
  277. diffusers/pipelines/ltx/pipeline_ltx_latent_upsample.py +277 -0
  278. diffusers/pipelines/lumina/pipeline_lumina.py +13 -13
  279. diffusers/pipelines/lumina2/pipeline_lumina2.py +10 -10
  280. diffusers/pipelines/marigold/marigold_image_processing.py +2 -2
  281. diffusers/pipelines/mochi/pipeline_mochi.py +6 -6
  282. diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -13
  283. diffusers/pipelines/omnigen/pipeline_omnigen.py +13 -11
  284. diffusers/pipelines/omnigen/processor_omnigen.py +8 -3
  285. diffusers/pipelines/onnx_utils.py +15 -2
  286. diffusers/pipelines/pag/pag_utils.py +2 -2
  287. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -8
  288. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +7 -7
  289. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +10 -6
  290. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +14 -14
  291. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +8 -8
  292. diffusers/pipelines/pag/pipeline_pag_kolors.py +10 -10
  293. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +11 -11
  294. diffusers/pipelines/pag/pipeline_pag_sana.py +18 -12
  295. diffusers/pipelines/pag/pipeline_pag_sd.py +8 -8
  296. diffusers/pipelines/pag/pipeline_pag_sd_3.py +7 -7
  297. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +7 -7
  298. diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +6 -6
  299. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +5 -5
  300. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +8 -8
  301. diffusers/pipelines/pag/pipeline_pag_sd_xl.py +16 -15
  302. diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +18 -17
  303. diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +12 -12
  304. diffusers/pipelines/paint_by_example/image_encoder.py +1 -1
  305. diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +8 -7
  306. diffusers/pipelines/pia/pipeline_pia.py +8 -6
  307. diffusers/pipelines/pipeline_flax_utils.py +3 -4
  308. diffusers/pipelines/pipeline_loading_utils.py +89 -13
  309. diffusers/pipelines/pipeline_utils.py +105 -33
  310. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +11 -11
  311. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +11 -11
  312. diffusers/pipelines/sana/__init__.py +4 -0
  313. diffusers/pipelines/sana/pipeline_sana.py +23 -21
  314. diffusers/pipelines/sana/pipeline_sana_controlnet.py +1106 -0
  315. diffusers/pipelines/sana/pipeline_sana_sprint.py +23 -19
  316. diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +981 -0
  317. diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +7 -6
  318. diffusers/pipelines/shap_e/camera.py +1 -1
  319. diffusers/pipelines/shap_e/pipeline_shap_e.py +1 -1
  320. diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +1 -1
  321. diffusers/pipelines/shap_e/renderer.py +3 -3
  322. diffusers/pipelines/stable_audio/modeling_stable_audio.py +1 -1
  323. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +5 -5
  324. diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +8 -8
  325. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +13 -13
  326. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +9 -9
  327. diffusers/pipelines/stable_diffusion/__init__.py +0 -7
  328. diffusers/pipelines/stable_diffusion/clip_image_project_model.py +1 -1
  329. diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +11 -4
  330. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +1 -1
  331. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +1 -1
  332. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +1 -1
  333. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +10 -10
  334. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +10 -10
  335. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +10 -10
  336. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +9 -9
  337. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +8 -8
  338. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +5 -5
  339. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +5 -5
  340. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +5 -5
  341. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +5 -5
  342. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +5 -5
  343. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +4 -4
  344. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +5 -5
  345. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +7 -7
  346. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +5 -5
  347. diffusers/pipelines/stable_diffusion/safety_checker.py +1 -1
  348. diffusers/pipelines/stable_diffusion/safety_checker_flax.py +1 -1
  349. diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +1 -1
  350. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +7 -7
  351. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -7
  352. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -7
  353. diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +12 -8
  354. diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +15 -9
  355. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +11 -9
  356. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -9
  357. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +18 -12
  358. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +11 -8
  359. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +11 -8
  360. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -12
  361. diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +8 -6
  362. diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
  363. diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +15 -11
  364. diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
  365. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -15
  366. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +18 -17
  367. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +12 -12
  368. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +16 -15
  369. diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +3 -3
  370. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +12 -12
  371. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +18 -17
  372. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +12 -7
  373. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +12 -7
  374. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +15 -13
  375. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +24 -21
  376. diffusers/pipelines/unclip/pipeline_unclip.py +4 -3
  377. diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +4 -3
  378. diffusers/pipelines/unclip/text_proj.py +2 -2
  379. diffusers/pipelines/unidiffuser/modeling_text_decoder.py +2 -2
  380. diffusers/pipelines/unidiffuser/modeling_uvit.py +1 -1
  381. diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +8 -7
  382. diffusers/pipelines/visualcloze/__init__.py +52 -0
  383. diffusers/pipelines/visualcloze/pipeline_visualcloze_combined.py +444 -0
  384. diffusers/pipelines/visualcloze/pipeline_visualcloze_generation.py +952 -0
  385. diffusers/pipelines/visualcloze/visualcloze_utils.py +251 -0
  386. diffusers/pipelines/wan/__init__.py +2 -0
  387. diffusers/pipelines/wan/pipeline_wan.py +13 -10
  388. diffusers/pipelines/wan/pipeline_wan_i2v.py +38 -18
  389. diffusers/pipelines/wan/pipeline_wan_vace.py +976 -0
  390. diffusers/pipelines/wan/pipeline_wan_video2video.py +14 -16
  391. diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +1 -1
  392. diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +1 -1
  393. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
  394. diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +8 -8
  395. diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +16 -15
  396. diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +6 -6
  397. diffusers/quantizers/__init__.py +179 -1
  398. diffusers/quantizers/base.py +6 -1
  399. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +4 -0
  400. diffusers/quantizers/bitsandbytes/utils.py +10 -7
  401. diffusers/quantizers/gguf/gguf_quantizer.py +13 -4
  402. diffusers/quantizers/gguf/utils.py +16 -13
  403. diffusers/quantizers/quantization_config.py +18 -16
  404. diffusers/quantizers/quanto/quanto_quantizer.py +4 -0
  405. diffusers/quantizers/torchao/torchao_quantizer.py +5 -1
  406. diffusers/schedulers/__init__.py +3 -1
  407. diffusers/schedulers/deprecated/scheduling_karras_ve.py +4 -3
  408. diffusers/schedulers/deprecated/scheduling_sde_vp.py +1 -1
  409. diffusers/schedulers/scheduling_consistency_models.py +1 -1
  410. diffusers/schedulers/scheduling_cosine_dpmsolver_multistep.py +10 -5
  411. diffusers/schedulers/scheduling_ddim.py +8 -8
  412. diffusers/schedulers/scheduling_ddim_cogvideox.py +5 -5
  413. diffusers/schedulers/scheduling_ddim_flax.py +6 -6
  414. diffusers/schedulers/scheduling_ddim_inverse.py +6 -6
  415. diffusers/schedulers/scheduling_ddim_parallel.py +22 -22
  416. diffusers/schedulers/scheduling_ddpm.py +9 -9
  417. diffusers/schedulers/scheduling_ddpm_flax.py +7 -7
  418. diffusers/schedulers/scheduling_ddpm_parallel.py +18 -18
  419. diffusers/schedulers/scheduling_ddpm_wuerstchen.py +2 -2
  420. diffusers/schedulers/scheduling_deis_multistep.py +8 -8
  421. diffusers/schedulers/scheduling_dpm_cogvideox.py +5 -5
  422. diffusers/schedulers/scheduling_dpmsolver_multistep.py +12 -12
  423. diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +22 -20
  424. diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +11 -11
  425. diffusers/schedulers/scheduling_dpmsolver_sde.py +2 -2
  426. diffusers/schedulers/scheduling_dpmsolver_singlestep.py +13 -13
  427. diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +13 -8
  428. diffusers/schedulers/scheduling_edm_euler.py +20 -11
  429. diffusers/schedulers/scheduling_euler_ancestral_discrete.py +3 -3
  430. diffusers/schedulers/scheduling_euler_discrete.py +3 -3
  431. diffusers/schedulers/scheduling_euler_discrete_flax.py +3 -3
  432. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +20 -5
  433. diffusers/schedulers/scheduling_flow_match_heun_discrete.py +1 -1
  434. diffusers/schedulers/scheduling_flow_match_lcm.py +561 -0
  435. diffusers/schedulers/scheduling_heun_discrete.py +2 -2
  436. diffusers/schedulers/scheduling_ipndm.py +2 -2
  437. diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +2 -2
  438. diffusers/schedulers/scheduling_k_dpm_2_discrete.py +2 -2
  439. diffusers/schedulers/scheduling_karras_ve_flax.py +5 -5
  440. diffusers/schedulers/scheduling_lcm.py +3 -3
  441. diffusers/schedulers/scheduling_lms_discrete.py +2 -2
  442. diffusers/schedulers/scheduling_lms_discrete_flax.py +1 -1
  443. diffusers/schedulers/scheduling_pndm.py +4 -4
  444. diffusers/schedulers/scheduling_pndm_flax.py +4 -4
  445. diffusers/schedulers/scheduling_repaint.py +9 -9
  446. diffusers/schedulers/scheduling_sasolver.py +15 -15
  447. diffusers/schedulers/scheduling_scm.py +1 -1
  448. diffusers/schedulers/scheduling_sde_ve.py +1 -1
  449. diffusers/schedulers/scheduling_sde_ve_flax.py +2 -2
  450. diffusers/schedulers/scheduling_tcd.py +3 -3
  451. diffusers/schedulers/scheduling_unclip.py +5 -5
  452. diffusers/schedulers/scheduling_unipc_multistep.py +11 -11
  453. diffusers/schedulers/scheduling_utils.py +1 -1
  454. diffusers/schedulers/scheduling_utils_flax.py +1 -1
  455. diffusers/schedulers/scheduling_vq_diffusion.py +1 -1
  456. diffusers/training_utils.py +13 -5
  457. diffusers/utils/__init__.py +5 -0
  458. diffusers/utils/accelerate_utils.py +1 -1
  459. diffusers/utils/doc_utils.py +1 -1
  460. diffusers/utils/dummy_pt_objects.py +120 -0
  461. diffusers/utils/dummy_torch_and_transformers_objects.py +225 -0
  462. diffusers/utils/dynamic_modules_utils.py +21 -3
  463. diffusers/utils/export_utils.py +1 -1
  464. diffusers/utils/import_utils.py +81 -18
  465. diffusers/utils/logging.py +1 -1
  466. diffusers/utils/outputs.py +2 -1
  467. diffusers/utils/peft_utils.py +91 -8
  468. diffusers/utils/state_dict_utils.py +20 -3
  469. diffusers/utils/testing_utils.py +59 -7
  470. diffusers/utils/torch_utils.py +25 -5
  471. diffusers/video_processor.py +2 -2
  472. {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/METADATA +70 -55
  473. diffusers-0.34.0.dist-info/RECORD +639 -0
  474. {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/WHEEL +1 -1
  475. diffusers-0.33.1.dist-info/RECORD +0 -608
  476. {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/LICENSE +0 -0
  477. {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/entry_points.txt +0 -0
  478. {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright 2024 Harutatsu Akiyama, Jinbin Bai, and The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 Harutatsu Akiyama, Jinbin Bai, and The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ from ...utils import (
51
51
  scale_lora_layers,
52
52
  unscale_lora_layers,
53
53
  )
54
- from ...utils.torch_utils import is_compiled_module, randn_tensor
54
+ from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
55
55
  from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
56
56
  from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
57
57
 
@@ -149,7 +149,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
149
149
  r"""
150
150
  Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
151
151
  Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
152
- Flawed](https://arxiv.org/pdf/2305.08891.pdf).
152
+ Flawed](https://huggingface.co/papers/2305.08891).
153
153
 
154
154
  Args:
155
155
  noise_cfg (`torch.Tensor`):
@@ -605,7 +605,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
605
605
  def prepare_extra_step_kwargs(self, generator, eta):
606
606
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
607
607
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
608
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
608
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
609
609
  # and should be between [0, 1]
610
610
 
611
611
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -1157,7 +1157,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
1157
1157
  return self._clip_skip
1158
1158
 
1159
1159
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
1160
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
1160
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
1161
1161
  # corresponds to doing no classifier free guidance.
1162
1162
  @property
1163
1163
  def do_classifier_free_guidance(self):
@@ -1283,11 +1283,11 @@ class StableDiffusionXLControlNetInpaintPipeline(
1283
1283
  forms a part of a "Mixture of Denoisers" multi-pipeline setup, as elaborated in [**Refining the Image
1284
1284
  Output**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).
1285
1285
  guidance_scale (`float`, *optional*, defaults to 7.5):
1286
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
1287
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
1288
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
1289
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
1290
- usually at the expense of lower image quality.
1286
+ Guidance scale as defined in [Classifier-Free Diffusion
1287
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
1288
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
1289
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
1290
+ the text `prompt`, usually at the expense of lower image quality.
1291
1291
  negative_prompt (`str` or `List[str]`, *optional*):
1292
1292
  The prompt or prompts not to guide the image generation. If not defined, one has to pass
1293
1293
  `negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
@@ -1318,8 +1318,8 @@ class StableDiffusionXLControlNetInpaintPipeline(
1318
1318
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1319
1319
  The number of images to generate per prompt.
1320
1320
  eta (`float`, *optional*, defaults to 0.0):
1321
- Corresponds to parameter eta (η) in the DDIM paper: https://arxiv.org/abs/2010.02502. Only applies to
1322
- [`schedulers.DDIMScheduler`], will be ignored for others.
1321
+ Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
1322
+ applies to [`schedulers.DDIMScheduler`], will be ignored for others.
1323
1323
  generator (`torch.Generator`, *optional*):
1324
1324
  One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
1325
1325
  to make generation deterministic.
@@ -1806,7 +1806,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
1806
1806
  noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
1807
1807
 
1808
1808
  if self.do_classifier_free_guidance and guidance_rescale > 0.0:
1809
- # Based on 3.4. in https://arxiv.org/pdf/2305.08891.pdf
1809
+ # Based on 3.4. in https://huggingface.co/papers/2305.08891
1810
1810
  noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
1811
1811
 
1812
1812
  # compute the previous noisy sample x_t -> x_t-1
@@ -1858,7 +1858,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
1858
1858
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
1859
1859
  self.unet.to("cpu")
1860
1860
  self.controlnet.to("cpu")
1861
- torch.cuda.empty_cache()
1861
+ empty_device_cache()
1862
1862
 
1863
1863
  if not output_type == "latent":
1864
1864
  image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[0]
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -613,7 +613,7 @@ class StableDiffusionXLControlNetPipeline(
613
613
  def prepare_extra_step_kwargs(self, generator, eta):
614
614
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
615
615
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
616
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
616
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
617
617
  # and should be between [0, 1]
618
618
 
619
619
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -985,7 +985,7 @@ class StableDiffusionXLControlNetPipeline(
985
985
  return self._clip_skip
986
986
 
987
987
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
988
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
988
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
989
989
  # corresponds to doing no classifier free guidance.
990
990
  @property
991
991
  def do_classifier_free_guidance(self):
@@ -1108,8 +1108,8 @@ class StableDiffusionXLControlNetPipeline(
1108
1108
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1109
1109
  The number of images to generate per prompt.
1110
1110
  eta (`float`, *optional*, defaults to 0.0):
1111
- Corresponds to parameter eta (η) from the [DDIM](https://arxiv.org/abs/2010.02502) paper. Only applies
1112
- to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
1111
+ Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
1112
+ applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
1113
1113
  generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
1114
1114
  A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
1115
1115
  generation deterministic.
@@ -1465,7 +1465,11 @@ class StableDiffusionXLControlNetPipeline(
1465
1465
 
1466
1466
  # Relevant thread:
1467
1467
  # https://dev-discuss.pytorch.org/t/cudagraphs-in-pytorch-2-0/1428
1468
- if (is_unet_compiled and is_controlnet_compiled) and is_torch_higher_equal_2_1:
1468
+ if (
1469
+ torch.cuda.is_available()
1470
+ and (is_unet_compiled and is_controlnet_compiled)
1471
+ and is_torch_higher_equal_2_1
1472
+ ):
1469
1473
  torch._inductor.cudagraph_mark_step_begin()
1470
1474
  # expand the latents if we are doing classifier free guidance
1471
1475
  latent_model_input = torch.cat([latents] * 2) if self.do_classifier_free_guidance else latents
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -53,7 +53,7 @@ from ...utils import (
53
53
  scale_lora_layers,
54
54
  unscale_lora_layers,
55
55
  )
56
- from ...utils.torch_utils import is_compiled_module, randn_tensor
56
+ from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
57
57
  from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
58
58
  from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
59
59
 
@@ -607,7 +607,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
607
607
  def prepare_extra_step_kwargs(self, generator, eta):
608
608
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
609
609
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
610
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
610
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
611
611
  # and should be between [0, 1]
612
612
 
613
613
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -921,7 +921,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
921
921
  # Offload text encoder if `enable_model_cpu_offload` was enabled
922
922
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
923
923
  self.text_encoder_2.to("cpu")
924
- torch.cuda.empty_cache()
924
+ empty_device_cache()
925
925
 
926
926
  image = image.to(device=device, dtype=dtype)
927
927
 
@@ -1069,7 +1069,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
1069
1069
  return self._clip_skip
1070
1070
 
1071
1071
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
1072
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
1072
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
1073
1073
  # corresponds to doing no classifier free guidance.
1074
1074
  @property
1075
1075
  def do_classifier_free_guidance(self):
@@ -1174,11 +1174,11 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
1174
1174
  The number of denoising steps. More denoising steps usually lead to a higher quality image at the
1175
1175
  expense of slower inference.
1176
1176
  guidance_scale (`float`, *optional*, defaults to 7.5):
1177
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
1178
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
1179
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
1180
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
1181
- usually at the expense of lower image quality.
1177
+ Guidance scale as defined in [Classifier-Free Diffusion
1178
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
1179
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
1180
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
1181
+ the text `prompt`, usually at the expense of lower image quality.
1182
1182
  negative_prompt (`str` or `List[str]`, *optional*):
1183
1183
  The prompt or prompts not to guide the image generation. If not defined, one has to pass
1184
1184
  `negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
@@ -1189,8 +1189,8 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
1189
1189
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1190
1190
  The number of images to generate per prompt.
1191
1191
  eta (`float`, *optional*, defaults to 0.0):
1192
- Corresponds to parameter eta (η) in the DDIM paper: https://arxiv.org/abs/2010.02502. Only applies to
1193
- [`schedulers.DDIMScheduler`], will be ignored for others.
1192
+ Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
1193
+ applies to [`schedulers.DDIMScheduler`], will be ignored for others.
1194
1194
  generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
1195
1195
  One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
1196
1196
  to make generation deterministic.
@@ -1632,7 +1632,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
1632
1632
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
1633
1633
  self.unet.to("cpu")
1634
1634
  self.controlnet.to("cpu")
1635
- torch.cuda.empty_cache()
1635
+ empty_device_cache()
1636
1636
 
1637
1637
  if not output_type == "latent":
1638
1638
  # make sure the VAE is in float32 mode, as it overflows in float16
@@ -1,4 +1,4 @@
1
- # Copyright 2024 Harutatsu Akiyama, Jinbin Bai, and The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 Harutatsu Akiyama, Jinbin Bai, and The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ from ...utils import (
51
51
  scale_lora_layers,
52
52
  unscale_lora_layers,
53
53
  )
54
- from ...utils.torch_utils import is_compiled_module, randn_tensor
54
+ from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
55
55
  from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
56
56
  from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
57
57
 
@@ -134,7 +134,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
134
134
  r"""
135
135
  Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
136
136
  Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
137
- Flawed](https://arxiv.org/pdf/2305.08891.pdf).
137
+ Flawed](https://huggingface.co/papers/2305.08891).
138
138
 
139
139
  Args:
140
140
  noise_cfg (`torch.Tensor`):
@@ -587,7 +587,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
587
587
  def prepare_extra_step_kwargs(self, generator, eta):
588
588
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
589
589
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
590
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
590
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
591
591
  # and should be between [0, 1]
592
592
 
593
593
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -1091,7 +1091,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
1091
1091
  return self._clip_skip
1092
1092
 
1093
1093
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
1094
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
1094
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
1095
1095
  # corresponds to doing no classifier free guidance.
1096
1096
  @property
1097
1097
  def do_classifier_free_guidance(self):
@@ -1215,11 +1215,11 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
1215
1215
  forms a part of a "Mixture of Denoisers" multi-pipeline setup, as elaborated in [**Refining the Image
1216
1216
  Output**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).
1217
1217
  guidance_scale (`float`, *optional*, defaults to 7.5):
1218
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
1219
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
1220
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
1221
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
1222
- usually at the expense of lower image quality.
1218
+ Guidance scale as defined in [Classifier-Free Diffusion
1219
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
1220
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
1221
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
1222
+ the text `prompt`, usually at the expense of lower image quality.
1223
1223
  negative_prompt (`str` or `List[str]`, *optional*):
1224
1224
  The prompt or prompts not to guide the image generation. If not defined, one has to pass
1225
1225
  `negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
@@ -1250,8 +1250,8 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
1250
1250
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1251
1251
  The number of images to generate per prompt.
1252
1252
  eta (`float`, *optional*, defaults to 0.0):
1253
- Corresponds to parameter eta (η) in the DDIM paper: https://arxiv.org/abs/2010.02502. Only applies to
1254
- [`schedulers.DDIMScheduler`], will be ignored for others.
1253
+ Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
1254
+ applies to [`schedulers.DDIMScheduler`], will be ignored for others.
1255
1255
  generator (`torch.Generator`, *optional*):
1256
1256
  One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
1257
1257
  to make generation deterministic.
@@ -1715,7 +1715,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
1715
1715
  noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
1716
1716
 
1717
1717
  if self.do_classifier_free_guidance and guidance_rescale > 0.0:
1718
- # Based on 3.4. in https://arxiv.org/pdf/2305.08891.pdf
1718
+ # Based on 3.4. in https://huggingface.co/papers/2305.08891
1719
1719
  noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
1720
1720
 
1721
1721
  # compute the previous noisy sample x_t -> x_t-1
@@ -1766,7 +1766,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
1766
1766
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
1767
1767
  self.unet.to("cpu")
1768
1768
  self.controlnet.to("cpu")
1769
- torch.cuda.empty_cache()
1769
+ empty_device_cache()
1770
1770
 
1771
1771
  if not output_type == "latent":
1772
1772
  image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[0]
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -603,7 +603,7 @@ class StableDiffusionXLControlNetUnionPipeline(
603
603
  def prepare_extra_step_kwargs(self, generator, eta):
604
604
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
605
605
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
606
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
606
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
607
607
  # and should be between [0, 1]
608
608
 
609
609
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -960,7 +960,7 @@ class StableDiffusionXLControlNetUnionPipeline(
960
960
  return self._clip_skip
961
961
 
962
962
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
963
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
963
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
964
964
  # corresponds to doing no classifier free guidance.
965
965
  @property
966
966
  def do_classifier_free_guidance(self):
@@ -1082,8 +1082,8 @@ class StableDiffusionXLControlNetUnionPipeline(
1082
1082
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1083
1083
  The number of images to generate per prompt.
1084
1084
  eta (`float`, *optional*, defaults to 0.0):
1085
- Corresponds to parameter eta (η) from the [DDIM](https://arxiv.org/abs/2010.02502) paper. Only applies
1086
- to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
1085
+ Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
1086
+ applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
1087
1087
  generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
1088
1088
  A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
1089
1089
  generation deterministic.
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -53,7 +53,7 @@ from ...utils import (
53
53
  scale_lora_layers,
54
54
  unscale_lora_layers,
55
55
  )
56
- from ...utils.torch_utils import is_compiled_module, randn_tensor
56
+ from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
57
57
  from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
58
58
  from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
59
59
 
@@ -616,7 +616,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
616
616
  def prepare_extra_step_kwargs(self, generator, eta):
617
617
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
618
618
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
619
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
619
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
620
620
  # and should be between [0, 1]
621
621
 
622
622
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -876,7 +876,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
876
876
  # Offload text encoder if `enable_model_cpu_offload` was enabled
877
877
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
878
878
  self.text_encoder_2.to("cpu")
879
- torch.cuda.empty_cache()
879
+ empty_device_cache()
880
880
 
881
881
  image = image.to(device=device, dtype=dtype)
882
882
 
@@ -1024,7 +1024,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
1024
1024
  return self._clip_skip
1025
1025
 
1026
1026
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
1027
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
1027
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
1028
1028
  # corresponds to doing no classifier free guidance.
1029
1029
  @property
1030
1030
  def do_classifier_free_guidance(self):
@@ -1129,11 +1129,11 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
1129
1129
  The number of denoising steps. More denoising steps usually lead to a higher quality image at the
1130
1130
  expense of slower inference.
1131
1131
  guidance_scale (`float`, *optional*, defaults to 7.5):
1132
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
1133
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
1134
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
1135
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
1136
- usually at the expense of lower image quality.
1132
+ Guidance scale as defined in [Classifier-Free Diffusion
1133
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
1134
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
1135
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
1136
+ the text `prompt`, usually at the expense of lower image quality.
1137
1137
  negative_prompt (`str` or `List[str]`, *optional*):
1138
1138
  The prompt or prompts not to guide the image generation. If not defined, one has to pass
1139
1139
  `negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
@@ -1144,8 +1144,8 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
1144
1144
  num_images_per_prompt (`int`, *optional*, defaults to 1):
1145
1145
  The number of images to generate per prompt.
1146
1146
  eta (`float`, *optional*, defaults to 0.0):
1147
- Corresponds to parameter eta (η) in the DDIM paper: https://arxiv.org/abs/2010.02502. Only applies to
1148
- [`schedulers.DDIMScheduler`], will be ignored for others.
1147
+ Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
1148
+ applies to [`schedulers.DDIMScheduler`], will be ignored for others.
1149
1149
  generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
1150
1150
  One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
1151
1151
  to make generation deterministic.
@@ -1574,7 +1574,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
1574
1574
  if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
1575
1575
  self.unet.to("cpu")
1576
1576
  self.controlnet.to("cpu")
1577
- torch.cuda.empty_cache()
1577
+ empty_device_cache()
1578
1578
 
1579
1579
  if not output_type == "latent":
1580
1580
  # make sure the VAE is in float32 mode, as it overflows in float16
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2024 HunyuanDiT Authors and The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 HunyuanDiT Authors and The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -144,7 +144,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
144
144
  r"""
145
145
  Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
146
146
  Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
147
- Flawed](https://arxiv.org/pdf/2305.08891.pdf).
147
+ Flawed](https://huggingface.co/papers/2305.08891).
148
148
 
149
149
  Args:
150
150
  noise_cfg (`torch.Tensor`):
@@ -463,7 +463,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
463
463
  def prepare_extra_step_kwargs(self, generator, eta):
464
464
  # prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
465
465
  # eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
466
- # eta corresponds to η in DDIM paper: https://arxiv.org/abs/2010.02502
466
+ # eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
467
467
  # and should be between [0, 1]
468
468
 
469
469
  accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
@@ -621,7 +621,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
621
621
  return self._guidance_rescale
622
622
 
623
623
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
624
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
624
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
625
625
  # corresponds to doing no classifier free guidance.
626
626
  @property
627
627
  def do_classifier_free_guidance(self):
@@ -709,8 +709,8 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
709
709
  num_images_per_prompt (`int`, *optional*, defaults to 1):
710
710
  The number of images to generate per prompt.
711
711
  eta (`float`, *optional*, defaults to 0.0):
712
- Corresponds to parameter eta (η) from the [DDIM](https://arxiv.org/abs/2010.02502) paper. Only applies
713
- to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
712
+ Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
713
+ applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
714
714
  generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
715
715
  A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
716
716
  generation deterministic.
@@ -746,7 +746,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
746
746
  inputs will be passed.
747
747
  guidance_rescale (`float`, *optional*, defaults to 0.0):
748
748
  Rescale the noise_cfg according to `guidance_rescale`. Based on findings of [Common Diffusion Noise
749
- Schedules and Sample Steps are Flawed](https://arxiv.org/pdf/2305.08891.pdf). See Section 3.4
749
+ Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). See Section 3.4
750
750
  original_size (`Tuple[int, int]`, *optional*, defaults to `(1024, 1024)`):
751
751
  The original size of the image. Used to calculate the time ids.
752
752
  target_size (`Tuple[int, int]`, *optional*):
@@ -1009,7 +1009,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
1009
1009
  noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
1010
1010
 
1011
1011
  if self.do_classifier_free_guidance and guidance_rescale > 0.0:
1012
- # Based on 3.4. in https://arxiv.org/pdf/2305.08891.pdf
1012
+ # Based on 3.4. in https://huggingface.co/papers/2305.08891
1013
1013
  noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
1014
1014
 
1015
1015
  # compute the previous noisy sample x_t -> x_t-1
@@ -1,4 +1,4 @@
1
- # Copyright 2024 Stability AI, The HuggingFace Team and The InstantX Team. All rights reserved.
1
+ # Copyright 2025 Stability AI, The HuggingFace Team and The InstantX Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -719,7 +719,7 @@ class StableDiffusion3ControlNetPipeline(
719
719
  return self._clip_skip
720
720
 
721
721
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
722
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
722
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
723
723
  # corresponds to doing no classifier free guidance.
724
724
  @property
725
725
  def do_classifier_free_guidance(self):
@@ -877,11 +877,11 @@ class StableDiffusion3ControlNetPipeline(
877
877
  their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
878
878
  will be used.
879
879
  guidance_scale (`float`, *optional*, defaults to 5.0):
880
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
881
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
882
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
883
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
884
- usually at the expense of lower image quality.
880
+ Guidance scale as defined in [Classifier-Free Diffusion
881
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
882
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
883
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
884
+ the text `prompt`, usually at the expense of lower image quality.
885
885
  control_guidance_start (`float` or `List[float]`, *optional*, defaults to 0.0):
886
886
  The percentage of total steps at which the ControlNet starts applying.
887
887
  control_guidance_end (`float` or `List[float]`, *optional*, defaults to 1.0):
@@ -1,4 +1,4 @@
1
- # Copyright 2024 Stability AI, The HuggingFace Team and The AlimamaCreative Team. All rights reserved.
1
+ # Copyright 2025 Stability AI, The HuggingFace Team and The AlimamaCreative Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -769,7 +769,7 @@ class StableDiffusion3ControlNetInpaintingPipeline(
769
769
  return self._clip_skip
770
770
 
771
771
  # here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
772
- # of the Imagen paper: https://arxiv.org/pdf/2205.11487.pdf . `guidance_scale = 1`
772
+ # of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
773
773
  # corresponds to doing no classifier free guidance.
774
774
  @property
775
775
  def do_classifier_free_guidance(self):
@@ -928,11 +928,11 @@ class StableDiffusion3ControlNetInpaintingPipeline(
928
928
  their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
929
929
  will be used.
930
930
  guidance_scale (`float`, *optional*, defaults to 5.0):
931
- Guidance scale as defined in [Classifier-Free Diffusion Guidance](https://arxiv.org/abs/2207.12598).
932
- `guidance_scale` is defined as `w` of equation 2. of [Imagen
933
- Paper](https://arxiv.org/pdf/2205.11487.pdf). Guidance scale is enabled by setting `guidance_scale >
934
- 1`. Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
935
- usually at the expense of lower image quality.
931
+ Guidance scale as defined in [Classifier-Free Diffusion
932
+ Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
933
+ of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
934
+ `guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
935
+ the text `prompt`, usually at the expense of lower image quality.
936
936
  control_guidance_start (`float` or `List[float]`, *optional*, defaults to 0.0):
937
937
  The percentage of total steps at which the ControlNet starts applying.
938
938
  control_guidance_end (`float` or `List[float]`, *optional*, defaults to 1.0):