diffusers 0.33.1__py3-none-any.whl → 0.35.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.
- diffusers/__init__.py +145 -1
- diffusers/callbacks.py +35 -0
- diffusers/commands/__init__.py +1 -1
- diffusers/commands/custom_blocks.py +134 -0
- diffusers/commands/diffusers_cli.py +3 -1
- diffusers/commands/env.py +1 -1
- diffusers/commands/fp16_safetensors.py +2 -2
- diffusers/configuration_utils.py +11 -2
- diffusers/dependency_versions_check.py +1 -1
- diffusers/dependency_versions_table.py +3 -3
- diffusers/experimental/rl/value_guided_sampling.py +1 -1
- diffusers/guiders/__init__.py +41 -0
- diffusers/guiders/adaptive_projected_guidance.py +188 -0
- diffusers/guiders/auto_guidance.py +190 -0
- diffusers/guiders/classifier_free_guidance.py +141 -0
- diffusers/guiders/classifier_free_zero_star_guidance.py +152 -0
- diffusers/guiders/frequency_decoupled_guidance.py +327 -0
- diffusers/guiders/guider_utils.py +309 -0
- diffusers/guiders/perturbed_attention_guidance.py +271 -0
- diffusers/guiders/skip_layer_guidance.py +262 -0
- diffusers/guiders/smoothed_energy_guidance.py +251 -0
- diffusers/guiders/tangential_classifier_free_guidance.py +143 -0
- diffusers/hooks/__init__.py +17 -0
- diffusers/hooks/_common.py +56 -0
- diffusers/hooks/_helpers.py +293 -0
- diffusers/hooks/faster_cache.py +9 -8
- diffusers/hooks/first_block_cache.py +259 -0
- diffusers/hooks/group_offloading.py +332 -227
- diffusers/hooks/hooks.py +58 -3
- diffusers/hooks/layer_skip.py +263 -0
- diffusers/hooks/layerwise_casting.py +5 -10
- diffusers/hooks/pyramid_attention_broadcast.py +15 -12
- diffusers/hooks/smoothed_energy_guidance_utils.py +167 -0
- diffusers/hooks/utils.py +43 -0
- diffusers/image_processor.py +7 -2
- diffusers/loaders/__init__.py +10 -0
- diffusers/loaders/ip_adapter.py +260 -18
- diffusers/loaders/lora_base.py +261 -127
- diffusers/loaders/lora_conversion_utils.py +657 -35
- diffusers/loaders/lora_pipeline.py +2778 -1246
- diffusers/loaders/peft.py +78 -112
- diffusers/loaders/single_file.py +2 -2
- diffusers/loaders/single_file_model.py +64 -15
- diffusers/loaders/single_file_utils.py +395 -7
- diffusers/loaders/textual_inversion.py +3 -2
- diffusers/loaders/transformer_flux.py +10 -11
- diffusers/loaders/transformer_sd3.py +8 -3
- diffusers/loaders/unet.py +24 -21
- diffusers/loaders/unet_loader_utils.py +6 -3
- diffusers/loaders/utils.py +1 -1
- diffusers/models/__init__.py +23 -1
- diffusers/models/activations.py +5 -5
- diffusers/models/adapter.py +2 -3
- diffusers/models/attention.py +488 -7
- diffusers/models/attention_dispatch.py +1218 -0
- diffusers/models/attention_flax.py +10 -10
- diffusers/models/attention_processor.py +113 -667
- diffusers/models/auto_model.py +49 -12
- diffusers/models/autoencoders/__init__.py +2 -0
- diffusers/models/autoencoders/autoencoder_asym_kl.py +4 -4
- diffusers/models/autoencoders/autoencoder_dc.py +17 -4
- diffusers/models/autoencoders/autoencoder_kl.py +5 -5
- diffusers/models/autoencoders/autoencoder_kl_allegro.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +6 -6
- diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1110 -0
- diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +2 -2
- diffusers/models/autoencoders/autoencoder_kl_ltx.py +3 -3
- diffusers/models/autoencoders/autoencoder_kl_magvit.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_mochi.py +3 -3
- diffusers/models/autoencoders/autoencoder_kl_qwenimage.py +1070 -0
- diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_wan.py +626 -62
- diffusers/models/autoencoders/autoencoder_oobleck.py +1 -1
- diffusers/models/autoencoders/autoencoder_tiny.py +3 -3
- diffusers/models/autoencoders/consistency_decoder_vae.py +1 -1
- diffusers/models/autoencoders/vae.py +13 -2
- diffusers/models/autoencoders/vq_model.py +2 -2
- diffusers/models/cache_utils.py +32 -10
- diffusers/models/controlnet.py +1 -1
- diffusers/models/controlnet_flux.py +1 -1
- diffusers/models/controlnet_sd3.py +1 -1
- diffusers/models/controlnet_sparsectrl.py +1 -1
- diffusers/models/controlnets/__init__.py +1 -0
- diffusers/models/controlnets/controlnet.py +3 -3
- diffusers/models/controlnets/controlnet_flax.py +1 -1
- diffusers/models/controlnets/controlnet_flux.py +21 -20
- diffusers/models/controlnets/controlnet_hunyuan.py +2 -2
- diffusers/models/controlnets/controlnet_sana.py +290 -0
- diffusers/models/controlnets/controlnet_sd3.py +1 -1
- diffusers/models/controlnets/controlnet_sparsectrl.py +2 -2
- diffusers/models/controlnets/controlnet_union.py +5 -5
- diffusers/models/controlnets/controlnet_xs.py +7 -7
- diffusers/models/controlnets/multicontrolnet.py +4 -5
- diffusers/models/controlnets/multicontrolnet_union.py +5 -6
- diffusers/models/downsampling.py +2 -2
- diffusers/models/embeddings.py +36 -46
- diffusers/models/embeddings_flax.py +2 -2
- diffusers/models/lora.py +3 -3
- diffusers/models/model_loading_utils.py +233 -1
- diffusers/models/modeling_flax_utils.py +1 -2
- diffusers/models/modeling_utils.py +203 -108
- diffusers/models/normalization.py +4 -4
- diffusers/models/resnet.py +2 -2
- diffusers/models/resnet_flax.py +1 -1
- diffusers/models/transformers/__init__.py +7 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +70 -24
- diffusers/models/transformers/cogvideox_transformer_3d.py +1 -1
- diffusers/models/transformers/consisid_transformer_3d.py +1 -1
- diffusers/models/transformers/dit_transformer_2d.py +2 -2
- diffusers/models/transformers/dual_transformer_2d.py +1 -1
- diffusers/models/transformers/hunyuan_transformer_2d.py +2 -2
- diffusers/models/transformers/latte_transformer_3d.py +4 -5
- diffusers/models/transformers/lumina_nextdit2d.py +2 -2
- diffusers/models/transformers/pixart_transformer_2d.py +3 -3
- diffusers/models/transformers/prior_transformer.py +1 -1
- diffusers/models/transformers/sana_transformer.py +8 -3
- diffusers/models/transformers/stable_audio_transformer.py +5 -9
- diffusers/models/transformers/t5_film_transformer.py +3 -3
- diffusers/models/transformers/transformer_2d.py +1 -1
- diffusers/models/transformers/transformer_allegro.py +1 -1
- diffusers/models/transformers/transformer_chroma.py +641 -0
- diffusers/models/transformers/transformer_cogview3plus.py +5 -10
- diffusers/models/transformers/transformer_cogview4.py +353 -27
- diffusers/models/transformers/transformer_cosmos.py +586 -0
- diffusers/models/transformers/transformer_flux.py +376 -138
- diffusers/models/transformers/transformer_hidream_image.py +942 -0
- diffusers/models/transformers/transformer_hunyuan_video.py +12 -8
- diffusers/models/transformers/transformer_hunyuan_video_framepack.py +416 -0
- diffusers/models/transformers/transformer_ltx.py +105 -24
- diffusers/models/transformers/transformer_lumina2.py +1 -1
- diffusers/models/transformers/transformer_mochi.py +1 -1
- diffusers/models/transformers/transformer_omnigen.py +2 -2
- diffusers/models/transformers/transformer_qwenimage.py +645 -0
- diffusers/models/transformers/transformer_sd3.py +7 -7
- diffusers/models/transformers/transformer_skyreels_v2.py +607 -0
- diffusers/models/transformers/transformer_temporal.py +1 -1
- diffusers/models/transformers/transformer_wan.py +316 -87
- diffusers/models/transformers/transformer_wan_vace.py +387 -0
- diffusers/models/unets/unet_1d.py +1 -1
- diffusers/models/unets/unet_1d_blocks.py +1 -1
- diffusers/models/unets/unet_2d.py +1 -1
- diffusers/models/unets/unet_2d_blocks.py +1 -1
- diffusers/models/unets/unet_2d_blocks_flax.py +8 -7
- diffusers/models/unets/unet_2d_condition.py +4 -3
- diffusers/models/unets/unet_2d_condition_flax.py +2 -2
- diffusers/models/unets/unet_3d_blocks.py +1 -1
- diffusers/models/unets/unet_3d_condition.py +3 -3
- diffusers/models/unets/unet_i2vgen_xl.py +3 -3
- diffusers/models/unets/unet_kandinsky3.py +1 -1
- diffusers/models/unets/unet_motion_model.py +2 -2
- diffusers/models/unets/unet_stable_cascade.py +1 -1
- diffusers/models/upsampling.py +2 -2
- diffusers/models/vae_flax.py +2 -2
- diffusers/models/vq_model.py +1 -1
- diffusers/modular_pipelines/__init__.py +83 -0
- diffusers/modular_pipelines/components_manager.py +1068 -0
- diffusers/modular_pipelines/flux/__init__.py +66 -0
- diffusers/modular_pipelines/flux/before_denoise.py +689 -0
- diffusers/modular_pipelines/flux/decoders.py +109 -0
- diffusers/modular_pipelines/flux/denoise.py +227 -0
- diffusers/modular_pipelines/flux/encoders.py +412 -0
- diffusers/modular_pipelines/flux/modular_blocks.py +181 -0
- diffusers/modular_pipelines/flux/modular_pipeline.py +59 -0
- diffusers/modular_pipelines/modular_pipeline.py +2446 -0
- diffusers/modular_pipelines/modular_pipeline_utils.py +672 -0
- diffusers/modular_pipelines/node_utils.py +665 -0
- diffusers/modular_pipelines/stable_diffusion_xl/__init__.py +77 -0
- diffusers/modular_pipelines/stable_diffusion_xl/before_denoise.py +1874 -0
- diffusers/modular_pipelines/stable_diffusion_xl/decoders.py +208 -0
- diffusers/modular_pipelines/stable_diffusion_xl/denoise.py +771 -0
- diffusers/modular_pipelines/stable_diffusion_xl/encoders.py +887 -0
- diffusers/modular_pipelines/stable_diffusion_xl/modular_blocks.py +380 -0
- diffusers/modular_pipelines/stable_diffusion_xl/modular_pipeline.py +365 -0
- diffusers/modular_pipelines/wan/__init__.py +66 -0
- diffusers/modular_pipelines/wan/before_denoise.py +365 -0
- diffusers/modular_pipelines/wan/decoders.py +105 -0
- diffusers/modular_pipelines/wan/denoise.py +261 -0
- diffusers/modular_pipelines/wan/encoders.py +242 -0
- diffusers/modular_pipelines/wan/modular_blocks.py +144 -0
- diffusers/modular_pipelines/wan/modular_pipeline.py +90 -0
- diffusers/pipelines/__init__.py +68 -6
- diffusers/pipelines/allegro/pipeline_allegro.py +11 -11
- diffusers/pipelines/amused/pipeline_amused.py +7 -6
- diffusers/pipelines/amused/pipeline_amused_img2img.py +6 -5
- diffusers/pipelines/amused/pipeline_amused_inpaint.py +6 -5
- diffusers/pipelines/animatediff/pipeline_animatediff.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +16 -15
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +5 -5
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +5 -5
- diffusers/pipelines/audioldm/pipeline_audioldm.py +8 -7
- diffusers/pipelines/audioldm2/modeling_audioldm2.py +1 -1
- diffusers/pipelines/audioldm2/pipeline_audioldm2.py +22 -13
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +48 -11
- diffusers/pipelines/auto_pipeline.py +23 -20
- diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
- diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +2 -2
- diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +11 -10
- diffusers/pipelines/chroma/__init__.py +49 -0
- diffusers/pipelines/chroma/pipeline_chroma.py +949 -0
- diffusers/pipelines/chroma/pipeline_chroma_img2img.py +1034 -0
- diffusers/pipelines/chroma/pipeline_output.py +21 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +17 -16
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +17 -16
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +18 -17
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +17 -16
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +9 -9
- diffusers/pipelines/cogview4/pipeline_cogview4.py +23 -22
- diffusers/pipelines/cogview4/pipeline_cogview4_control.py +7 -7
- diffusers/pipelines/consisid/consisid_utils.py +2 -2
- diffusers/pipelines/consisid/pipeline_consisid.py +8 -8
- diffusers/pipelines/consistency_models/pipeline_consistency_models.py +1 -1
- diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +11 -10
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +14 -14
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +10 -6
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +13 -13
- diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +226 -107
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +12 -8
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +207 -105
- diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +1 -1
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +8 -8
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +7 -7
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +7 -7
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -10
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +9 -7
- diffusers/pipelines/cosmos/__init__.py +54 -0
- diffusers/pipelines/cosmos/pipeline_cosmos2_text2image.py +673 -0
- diffusers/pipelines/cosmos/pipeline_cosmos2_video2world.py +792 -0
- diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +664 -0
- diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +826 -0
- diffusers/pipelines/cosmos/pipeline_output.py +40 -0
- diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +5 -4
- diffusers/pipelines/ddim/pipeline_ddim.py +4 -4
- diffusers/pipelines/ddpm/pipeline_ddpm.py +1 -1
- diffusers/pipelines/deepfloyd_if/pipeline_if.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +10 -10
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +8 -8
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +5 -5
- diffusers/pipelines/deprecated/audio_diffusion/mel.py +1 -1
- diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +3 -3
- diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +1 -1
- diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +2 -2
- diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +4 -3
- diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +1 -1
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +8 -8
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +9 -9
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +10 -10
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +10 -8
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +5 -5
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +18 -18
- diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +2 -2
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +6 -6
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +5 -5
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +5 -5
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +5 -5
- diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +1 -1
- diffusers/pipelines/dit/pipeline_dit.py +4 -2
- diffusers/pipelines/easyanimate/pipeline_easyanimate.py +4 -4
- diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +4 -4
- diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +7 -6
- diffusers/pipelines/flux/__init__.py +4 -0
- diffusers/pipelines/flux/modeling_flux.py +1 -1
- diffusers/pipelines/flux/pipeline_flux.py +37 -36
- diffusers/pipelines/flux/pipeline_flux_control.py +9 -9
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +31 -23
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +3 -2
- diffusers/pipelines/flux/pipeline_flux_fill.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_img2img.py +40 -7
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +12 -7
- diffusers/pipelines/flux/pipeline_flux_kontext.py +1134 -0
- diffusers/pipelines/flux/pipeline_flux_kontext_inpaint.py +1460 -0
- diffusers/pipelines/flux/pipeline_flux_prior_redux.py +2 -2
- diffusers/pipelines/flux/pipeline_output.py +6 -4
- diffusers/pipelines/free_init_utils.py +2 -2
- diffusers/pipelines/free_noise_utils.py +3 -3
- diffusers/pipelines/hidream_image/__init__.py +47 -0
- diffusers/pipelines/hidream_image/pipeline_hidream_image.py +1026 -0
- diffusers/pipelines/hidream_image/pipeline_output.py +35 -0
- diffusers/pipelines/hunyuan_video/__init__.py +2 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +8 -8
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +26 -25
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_framepack.py +1114 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +71 -15
- diffusers/pipelines/hunyuan_video/pipeline_output.py +19 -0
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +8 -8
- diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +10 -8
- diffusers/pipelines/kandinsky/pipeline_kandinsky.py +6 -6
- diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +34 -34
- diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +19 -26
- diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +7 -7
- diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +11 -11
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +35 -35
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +6 -6
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +17 -39
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +17 -45
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +7 -7
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +10 -10
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +10 -10
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +7 -7
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +17 -38
- diffusers/pipelines/kolors/pipeline_kolors.py +10 -10
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +12 -12
- diffusers/pipelines/kolors/text_encoder.py +3 -3
- diffusers/pipelines/kolors/tokenizer.py +1 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +2 -2
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +2 -2
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +3 -3
- diffusers/pipelines/latte/pipeline_latte.py +12 -12
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +13 -13
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +17 -16
- diffusers/pipelines/ltx/__init__.py +4 -0
- diffusers/pipelines/ltx/modeling_latent_upsampler.py +188 -0
- diffusers/pipelines/ltx/pipeline_ltx.py +64 -18
- diffusers/pipelines/ltx/pipeline_ltx_condition.py +117 -38
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +63 -18
- diffusers/pipelines/ltx/pipeline_ltx_latent_upsample.py +277 -0
- diffusers/pipelines/lumina/pipeline_lumina.py +13 -13
- diffusers/pipelines/lumina2/pipeline_lumina2.py +10 -10
- diffusers/pipelines/marigold/marigold_image_processing.py +2 -2
- diffusers/pipelines/mochi/pipeline_mochi.py +15 -14
- diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -13
- diffusers/pipelines/omnigen/pipeline_omnigen.py +13 -11
- diffusers/pipelines/omnigen/processor_omnigen.py +8 -3
- diffusers/pipelines/onnx_utils.py +15 -2
- diffusers/pipelines/pag/pag_utils.py +2 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -8
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +10 -6
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +14 -14
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_kolors.py +10 -10
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +11 -11
- diffusers/pipelines/pag/pipeline_pag_sana.py +18 -12
- diffusers/pipelines/pag/pipeline_pag_sd.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +6 -6
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +5 -5
- diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +16 -15
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +18 -17
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +12 -12
- diffusers/pipelines/paint_by_example/image_encoder.py +1 -1
- diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +8 -7
- diffusers/pipelines/pia/pipeline_pia.py +8 -6
- diffusers/pipelines/pipeline_flax_utils.py +5 -6
- diffusers/pipelines/pipeline_loading_utils.py +113 -15
- diffusers/pipelines/pipeline_utils.py +127 -48
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +14 -12
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +31 -11
- diffusers/pipelines/qwenimage/__init__.py +55 -0
- diffusers/pipelines/qwenimage/pipeline_output.py +21 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage.py +726 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_edit.py +882 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_img2img.py +829 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_inpaint.py +1015 -0
- diffusers/pipelines/sana/__init__.py +4 -0
- diffusers/pipelines/sana/pipeline_sana.py +23 -21
- diffusers/pipelines/sana/pipeline_sana_controlnet.py +1106 -0
- diffusers/pipelines/sana/pipeline_sana_sprint.py +23 -19
- diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +981 -0
- diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +7 -6
- diffusers/pipelines/shap_e/camera.py +1 -1
- diffusers/pipelines/shap_e/pipeline_shap_e.py +1 -1
- diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +1 -1
- diffusers/pipelines/shap_e/renderer.py +3 -3
- diffusers/pipelines/skyreels_v2/__init__.py +59 -0
- diffusers/pipelines/skyreels_v2/pipeline_output.py +20 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py +610 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py +978 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py +1059 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py +1063 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py +745 -0
- diffusers/pipelines/stable_audio/modeling_stable_audio.py +1 -1
- diffusers/pipelines/stable_audio/pipeline_stable_audio.py +5 -5
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +8 -8
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +13 -13
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +9 -9
- diffusers/pipelines/stable_diffusion/__init__.py +0 -7
- diffusers/pipelines/stable_diffusion/clip_image_project_model.py +1 -1
- diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +11 -4
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +12 -11
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +11 -11
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +10 -9
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +4 -4
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +7 -7
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +5 -5
- diffusers/pipelines/stable_diffusion/safety_checker.py +1 -1
- diffusers/pipelines/stable_diffusion/safety_checker_flax.py +1 -1
- diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +1 -1
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +13 -12
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -7
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -7
- diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +12 -8
- diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +15 -9
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +11 -9
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -9
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +18 -12
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +11 -8
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +11 -8
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -12
- diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +8 -6
- diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
- diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +15 -11
- diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -15
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +18 -17
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +12 -12
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +16 -15
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +3 -3
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +12 -12
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +18 -17
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +12 -7
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +12 -7
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +15 -13
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +24 -21
- diffusers/pipelines/unclip/pipeline_unclip.py +4 -3
- diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +4 -3
- diffusers/pipelines/unclip/text_proj.py +2 -2
- diffusers/pipelines/unidiffuser/modeling_text_decoder.py +2 -2
- diffusers/pipelines/unidiffuser/modeling_uvit.py +1 -1
- diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +8 -7
- diffusers/pipelines/visualcloze/__init__.py +52 -0
- diffusers/pipelines/visualcloze/pipeline_visualcloze_combined.py +444 -0
- diffusers/pipelines/visualcloze/pipeline_visualcloze_generation.py +952 -0
- diffusers/pipelines/visualcloze/visualcloze_utils.py +251 -0
- diffusers/pipelines/wan/__init__.py +2 -0
- diffusers/pipelines/wan/pipeline_wan.py +91 -30
- diffusers/pipelines/wan/pipeline_wan_i2v.py +145 -45
- diffusers/pipelines/wan/pipeline_wan_vace.py +975 -0
- diffusers/pipelines/wan/pipeline_wan_video2video.py +14 -16
- diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +1 -1
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +1 -1
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +8 -8
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +16 -15
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +6 -6
- diffusers/quantizers/__init__.py +3 -1
- diffusers/quantizers/base.py +17 -1
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +4 -0
- diffusers/quantizers/bitsandbytes/utils.py +10 -7
- diffusers/quantizers/gguf/gguf_quantizer.py +13 -4
- diffusers/quantizers/gguf/utils.py +108 -16
- diffusers/quantizers/pipe_quant_config.py +202 -0
- diffusers/quantizers/quantization_config.py +18 -16
- diffusers/quantizers/quanto/quanto_quantizer.py +4 -0
- diffusers/quantizers/torchao/torchao_quantizer.py +31 -1
- diffusers/schedulers/__init__.py +3 -1
- diffusers/schedulers/deprecated/scheduling_karras_ve.py +4 -3
- diffusers/schedulers/deprecated/scheduling_sde_vp.py +1 -1
- diffusers/schedulers/scheduling_consistency_models.py +1 -1
- diffusers/schedulers/scheduling_cosine_dpmsolver_multistep.py +10 -5
- diffusers/schedulers/scheduling_ddim.py +8 -8
- diffusers/schedulers/scheduling_ddim_cogvideox.py +5 -5
- diffusers/schedulers/scheduling_ddim_flax.py +6 -6
- diffusers/schedulers/scheduling_ddim_inverse.py +6 -6
- diffusers/schedulers/scheduling_ddim_parallel.py +22 -22
- diffusers/schedulers/scheduling_ddpm.py +9 -9
- diffusers/schedulers/scheduling_ddpm_flax.py +7 -7
- diffusers/schedulers/scheduling_ddpm_parallel.py +18 -18
- diffusers/schedulers/scheduling_ddpm_wuerstchen.py +2 -2
- diffusers/schedulers/scheduling_deis_multistep.py +16 -9
- diffusers/schedulers/scheduling_dpm_cogvideox.py +5 -5
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +18 -12
- diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +22 -20
- diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +11 -11
- diffusers/schedulers/scheduling_dpmsolver_sde.py +2 -2
- diffusers/schedulers/scheduling_dpmsolver_singlestep.py +19 -13
- diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +13 -8
- diffusers/schedulers/scheduling_edm_euler.py +20 -11
- diffusers/schedulers/scheduling_euler_ancestral_discrete.py +3 -3
- diffusers/schedulers/scheduling_euler_discrete.py +3 -3
- diffusers/schedulers/scheduling_euler_discrete_flax.py +3 -3
- diffusers/schedulers/scheduling_flow_match_euler_discrete.py +20 -5
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +1 -1
- diffusers/schedulers/scheduling_flow_match_lcm.py +561 -0
- diffusers/schedulers/scheduling_heun_discrete.py +2 -2
- diffusers/schedulers/scheduling_ipndm.py +2 -2
- diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +2 -2
- diffusers/schedulers/scheduling_k_dpm_2_discrete.py +2 -2
- diffusers/schedulers/scheduling_karras_ve_flax.py +5 -5
- diffusers/schedulers/scheduling_lcm.py +3 -3
- diffusers/schedulers/scheduling_lms_discrete.py +2 -2
- diffusers/schedulers/scheduling_lms_discrete_flax.py +1 -1
- diffusers/schedulers/scheduling_pndm.py +4 -4
- diffusers/schedulers/scheduling_pndm_flax.py +4 -4
- diffusers/schedulers/scheduling_repaint.py +9 -9
- diffusers/schedulers/scheduling_sasolver.py +15 -15
- diffusers/schedulers/scheduling_scm.py +1 -2
- diffusers/schedulers/scheduling_sde_ve.py +1 -1
- diffusers/schedulers/scheduling_sde_ve_flax.py +2 -2
- diffusers/schedulers/scheduling_tcd.py +3 -3
- diffusers/schedulers/scheduling_unclip.py +5 -5
- diffusers/schedulers/scheduling_unipc_multistep.py +21 -12
- diffusers/schedulers/scheduling_utils.py +3 -3
- diffusers/schedulers/scheduling_utils_flax.py +2 -2
- diffusers/schedulers/scheduling_vq_diffusion.py +1 -1
- diffusers/training_utils.py +91 -5
- diffusers/utils/__init__.py +15 -0
- diffusers/utils/accelerate_utils.py +1 -1
- diffusers/utils/constants.py +4 -0
- diffusers/utils/doc_utils.py +1 -1
- diffusers/utils/dummy_pt_objects.py +432 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +480 -0
- diffusers/utils/dynamic_modules_utils.py +85 -8
- diffusers/utils/export_utils.py +1 -1
- diffusers/utils/hub_utils.py +33 -17
- diffusers/utils/import_utils.py +151 -18
- diffusers/utils/logging.py +1 -1
- diffusers/utils/outputs.py +2 -1
- diffusers/utils/peft_utils.py +96 -10
- diffusers/utils/state_dict_utils.py +20 -3
- diffusers/utils/testing_utils.py +195 -17
- diffusers/utils/torch_utils.py +43 -5
- diffusers/video_processor.py +2 -2
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/METADATA +72 -57
- diffusers-0.35.0.dist-info/RECORD +703 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/WHEEL +1 -1
- diffusers-0.33.1.dist-info/RECORD +0 -608
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/LICENSE +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/entry_points.txt +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,96 @@
|
|
2
2
|
from ..utils import DummyObject, requires_backends
|
3
3
|
|
4
4
|
|
5
|
+
class FluxAutoBlocks(metaclass=DummyObject):
|
6
|
+
_backends = ["torch", "transformers"]
|
7
|
+
|
8
|
+
def __init__(self, *args, **kwargs):
|
9
|
+
requires_backends(self, ["torch", "transformers"])
|
10
|
+
|
11
|
+
@classmethod
|
12
|
+
def from_config(cls, *args, **kwargs):
|
13
|
+
requires_backends(cls, ["torch", "transformers"])
|
14
|
+
|
15
|
+
@classmethod
|
16
|
+
def from_pretrained(cls, *args, **kwargs):
|
17
|
+
requires_backends(cls, ["torch", "transformers"])
|
18
|
+
|
19
|
+
|
20
|
+
class FluxModularPipeline(metaclass=DummyObject):
|
21
|
+
_backends = ["torch", "transformers"]
|
22
|
+
|
23
|
+
def __init__(self, *args, **kwargs):
|
24
|
+
requires_backends(self, ["torch", "transformers"])
|
25
|
+
|
26
|
+
@classmethod
|
27
|
+
def from_config(cls, *args, **kwargs):
|
28
|
+
requires_backends(cls, ["torch", "transformers"])
|
29
|
+
|
30
|
+
@classmethod
|
31
|
+
def from_pretrained(cls, *args, **kwargs):
|
32
|
+
requires_backends(cls, ["torch", "transformers"])
|
33
|
+
|
34
|
+
|
35
|
+
class StableDiffusionXLAutoBlocks(metaclass=DummyObject):
|
36
|
+
_backends = ["torch", "transformers"]
|
37
|
+
|
38
|
+
def __init__(self, *args, **kwargs):
|
39
|
+
requires_backends(self, ["torch", "transformers"])
|
40
|
+
|
41
|
+
@classmethod
|
42
|
+
def from_config(cls, *args, **kwargs):
|
43
|
+
requires_backends(cls, ["torch", "transformers"])
|
44
|
+
|
45
|
+
@classmethod
|
46
|
+
def from_pretrained(cls, *args, **kwargs):
|
47
|
+
requires_backends(cls, ["torch", "transformers"])
|
48
|
+
|
49
|
+
|
50
|
+
class StableDiffusionXLModularPipeline(metaclass=DummyObject):
|
51
|
+
_backends = ["torch", "transformers"]
|
52
|
+
|
53
|
+
def __init__(self, *args, **kwargs):
|
54
|
+
requires_backends(self, ["torch", "transformers"])
|
55
|
+
|
56
|
+
@classmethod
|
57
|
+
def from_config(cls, *args, **kwargs):
|
58
|
+
requires_backends(cls, ["torch", "transformers"])
|
59
|
+
|
60
|
+
@classmethod
|
61
|
+
def from_pretrained(cls, *args, **kwargs):
|
62
|
+
requires_backends(cls, ["torch", "transformers"])
|
63
|
+
|
64
|
+
|
65
|
+
class WanAutoBlocks(metaclass=DummyObject):
|
66
|
+
_backends = ["torch", "transformers"]
|
67
|
+
|
68
|
+
def __init__(self, *args, **kwargs):
|
69
|
+
requires_backends(self, ["torch", "transformers"])
|
70
|
+
|
71
|
+
@classmethod
|
72
|
+
def from_config(cls, *args, **kwargs):
|
73
|
+
requires_backends(cls, ["torch", "transformers"])
|
74
|
+
|
75
|
+
@classmethod
|
76
|
+
def from_pretrained(cls, *args, **kwargs):
|
77
|
+
requires_backends(cls, ["torch", "transformers"])
|
78
|
+
|
79
|
+
|
80
|
+
class WanModularPipeline(metaclass=DummyObject):
|
81
|
+
_backends = ["torch", "transformers"]
|
82
|
+
|
83
|
+
def __init__(self, *args, **kwargs):
|
84
|
+
requires_backends(self, ["torch", "transformers"])
|
85
|
+
|
86
|
+
@classmethod
|
87
|
+
def from_config(cls, *args, **kwargs):
|
88
|
+
requires_backends(cls, ["torch", "transformers"])
|
89
|
+
|
90
|
+
@classmethod
|
91
|
+
def from_pretrained(cls, *args, **kwargs):
|
92
|
+
requires_backends(cls, ["torch", "transformers"])
|
93
|
+
|
94
|
+
|
5
95
|
class AllegroPipeline(metaclass=DummyObject):
|
6
96
|
_backends = ["torch", "transformers"]
|
7
97
|
|
@@ -272,6 +362,36 @@ class AuraFlowPipeline(metaclass=DummyObject):
|
|
272
362
|
requires_backends(cls, ["torch", "transformers"])
|
273
363
|
|
274
364
|
|
365
|
+
class ChromaImg2ImgPipeline(metaclass=DummyObject):
|
366
|
+
_backends = ["torch", "transformers"]
|
367
|
+
|
368
|
+
def __init__(self, *args, **kwargs):
|
369
|
+
requires_backends(self, ["torch", "transformers"])
|
370
|
+
|
371
|
+
@classmethod
|
372
|
+
def from_config(cls, *args, **kwargs):
|
373
|
+
requires_backends(cls, ["torch", "transformers"])
|
374
|
+
|
375
|
+
@classmethod
|
376
|
+
def from_pretrained(cls, *args, **kwargs):
|
377
|
+
requires_backends(cls, ["torch", "transformers"])
|
378
|
+
|
379
|
+
|
380
|
+
class ChromaPipeline(metaclass=DummyObject):
|
381
|
+
_backends = ["torch", "transformers"]
|
382
|
+
|
383
|
+
def __init__(self, *args, **kwargs):
|
384
|
+
requires_backends(self, ["torch", "transformers"])
|
385
|
+
|
386
|
+
@classmethod
|
387
|
+
def from_config(cls, *args, **kwargs):
|
388
|
+
requires_backends(cls, ["torch", "transformers"])
|
389
|
+
|
390
|
+
@classmethod
|
391
|
+
def from_pretrained(cls, *args, **kwargs):
|
392
|
+
requires_backends(cls, ["torch", "transformers"])
|
393
|
+
|
394
|
+
|
275
395
|
class CLIPImageProjection(metaclass=DummyObject):
|
276
396
|
_backends = ["torch", "transformers"]
|
277
397
|
|
@@ -392,6 +512,81 @@ class CogView4Pipeline(metaclass=DummyObject):
|
|
392
512
|
requires_backends(cls, ["torch", "transformers"])
|
393
513
|
|
394
514
|
|
515
|
+
class ConsisIDPipeline(metaclass=DummyObject):
|
516
|
+
_backends = ["torch", "transformers"]
|
517
|
+
|
518
|
+
def __init__(self, *args, **kwargs):
|
519
|
+
requires_backends(self, ["torch", "transformers"])
|
520
|
+
|
521
|
+
@classmethod
|
522
|
+
def from_config(cls, *args, **kwargs):
|
523
|
+
requires_backends(cls, ["torch", "transformers"])
|
524
|
+
|
525
|
+
@classmethod
|
526
|
+
def from_pretrained(cls, *args, **kwargs):
|
527
|
+
requires_backends(cls, ["torch", "transformers"])
|
528
|
+
|
529
|
+
|
530
|
+
class Cosmos2TextToImagePipeline(metaclass=DummyObject):
|
531
|
+
_backends = ["torch", "transformers"]
|
532
|
+
|
533
|
+
def __init__(self, *args, **kwargs):
|
534
|
+
requires_backends(self, ["torch", "transformers"])
|
535
|
+
|
536
|
+
@classmethod
|
537
|
+
def from_config(cls, *args, **kwargs):
|
538
|
+
requires_backends(cls, ["torch", "transformers"])
|
539
|
+
|
540
|
+
@classmethod
|
541
|
+
def from_pretrained(cls, *args, **kwargs):
|
542
|
+
requires_backends(cls, ["torch", "transformers"])
|
543
|
+
|
544
|
+
|
545
|
+
class Cosmos2VideoToWorldPipeline(metaclass=DummyObject):
|
546
|
+
_backends = ["torch", "transformers"]
|
547
|
+
|
548
|
+
def __init__(self, *args, **kwargs):
|
549
|
+
requires_backends(self, ["torch", "transformers"])
|
550
|
+
|
551
|
+
@classmethod
|
552
|
+
def from_config(cls, *args, **kwargs):
|
553
|
+
requires_backends(cls, ["torch", "transformers"])
|
554
|
+
|
555
|
+
@classmethod
|
556
|
+
def from_pretrained(cls, *args, **kwargs):
|
557
|
+
requires_backends(cls, ["torch", "transformers"])
|
558
|
+
|
559
|
+
|
560
|
+
class CosmosTextToWorldPipeline(metaclass=DummyObject):
|
561
|
+
_backends = ["torch", "transformers"]
|
562
|
+
|
563
|
+
def __init__(self, *args, **kwargs):
|
564
|
+
requires_backends(self, ["torch", "transformers"])
|
565
|
+
|
566
|
+
@classmethod
|
567
|
+
def from_config(cls, *args, **kwargs):
|
568
|
+
requires_backends(cls, ["torch", "transformers"])
|
569
|
+
|
570
|
+
@classmethod
|
571
|
+
def from_pretrained(cls, *args, **kwargs):
|
572
|
+
requires_backends(cls, ["torch", "transformers"])
|
573
|
+
|
574
|
+
|
575
|
+
class CosmosVideoToWorldPipeline(metaclass=DummyObject):
|
576
|
+
_backends = ["torch", "transformers"]
|
577
|
+
|
578
|
+
def __init__(self, *args, **kwargs):
|
579
|
+
requires_backends(self, ["torch", "transformers"])
|
580
|
+
|
581
|
+
@classmethod
|
582
|
+
def from_config(cls, *args, **kwargs):
|
583
|
+
requires_backends(cls, ["torch", "transformers"])
|
584
|
+
|
585
|
+
@classmethod
|
586
|
+
def from_pretrained(cls, *args, **kwargs):
|
587
|
+
requires_backends(cls, ["torch", "transformers"])
|
588
|
+
|
589
|
+
|
395
590
|
class CycleDiffusionPipeline(metaclass=DummyObject):
|
396
591
|
_backends = ["torch", "transformers"]
|
397
592
|
|
@@ -587,6 +782,36 @@ class FluxInpaintPipeline(metaclass=DummyObject):
|
|
587
782
|
requires_backends(cls, ["torch", "transformers"])
|
588
783
|
|
589
784
|
|
785
|
+
class FluxKontextInpaintPipeline(metaclass=DummyObject):
|
786
|
+
_backends = ["torch", "transformers"]
|
787
|
+
|
788
|
+
def __init__(self, *args, **kwargs):
|
789
|
+
requires_backends(self, ["torch", "transformers"])
|
790
|
+
|
791
|
+
@classmethod
|
792
|
+
def from_config(cls, *args, **kwargs):
|
793
|
+
requires_backends(cls, ["torch", "transformers"])
|
794
|
+
|
795
|
+
@classmethod
|
796
|
+
def from_pretrained(cls, *args, **kwargs):
|
797
|
+
requires_backends(cls, ["torch", "transformers"])
|
798
|
+
|
799
|
+
|
800
|
+
class FluxKontextPipeline(metaclass=DummyObject):
|
801
|
+
_backends = ["torch", "transformers"]
|
802
|
+
|
803
|
+
def __init__(self, *args, **kwargs):
|
804
|
+
requires_backends(self, ["torch", "transformers"])
|
805
|
+
|
806
|
+
@classmethod
|
807
|
+
def from_config(cls, *args, **kwargs):
|
808
|
+
requires_backends(cls, ["torch", "transformers"])
|
809
|
+
|
810
|
+
@classmethod
|
811
|
+
def from_pretrained(cls, *args, **kwargs):
|
812
|
+
requires_backends(cls, ["torch", "transformers"])
|
813
|
+
|
814
|
+
|
590
815
|
class FluxPipeline(metaclass=DummyObject):
|
591
816
|
_backends = ["torch", "transformers"]
|
592
817
|
|
@@ -617,6 +842,21 @@ class FluxPriorReduxPipeline(metaclass=DummyObject):
|
|
617
842
|
requires_backends(cls, ["torch", "transformers"])
|
618
843
|
|
619
844
|
|
845
|
+
class HiDreamImagePipeline(metaclass=DummyObject):
|
846
|
+
_backends = ["torch", "transformers"]
|
847
|
+
|
848
|
+
def __init__(self, *args, **kwargs):
|
849
|
+
requires_backends(self, ["torch", "transformers"])
|
850
|
+
|
851
|
+
@classmethod
|
852
|
+
def from_config(cls, *args, **kwargs):
|
853
|
+
requires_backends(cls, ["torch", "transformers"])
|
854
|
+
|
855
|
+
@classmethod
|
856
|
+
def from_pretrained(cls, *args, **kwargs):
|
857
|
+
requires_backends(cls, ["torch", "transformers"])
|
858
|
+
|
859
|
+
|
620
860
|
class HunyuanDiTControlNetPipeline(metaclass=DummyObject):
|
621
861
|
_backends = ["torch", "transformers"]
|
622
862
|
|
@@ -677,6 +917,21 @@ class HunyuanSkyreelsImageToVideoPipeline(metaclass=DummyObject):
|
|
677
917
|
requires_backends(cls, ["torch", "transformers"])
|
678
918
|
|
679
919
|
|
920
|
+
class HunyuanVideoFramepackPipeline(metaclass=DummyObject):
|
921
|
+
_backends = ["torch", "transformers"]
|
922
|
+
|
923
|
+
def __init__(self, *args, **kwargs):
|
924
|
+
requires_backends(self, ["torch", "transformers"])
|
925
|
+
|
926
|
+
@classmethod
|
927
|
+
def from_config(cls, *args, **kwargs):
|
928
|
+
requires_backends(cls, ["torch", "transformers"])
|
929
|
+
|
930
|
+
@classmethod
|
931
|
+
def from_pretrained(cls, *args, **kwargs):
|
932
|
+
requires_backends(cls, ["torch", "transformers"])
|
933
|
+
|
934
|
+
|
680
935
|
class HunyuanVideoImageToVideoPipeline(metaclass=DummyObject):
|
681
936
|
_backends = ["torch", "transformers"]
|
682
937
|
|
@@ -1232,6 +1487,21 @@ class LTXImageToVideoPipeline(metaclass=DummyObject):
|
|
1232
1487
|
requires_backends(cls, ["torch", "transformers"])
|
1233
1488
|
|
1234
1489
|
|
1490
|
+
class LTXLatentUpsamplePipeline(metaclass=DummyObject):
|
1491
|
+
_backends = ["torch", "transformers"]
|
1492
|
+
|
1493
|
+
def __init__(self, *args, **kwargs):
|
1494
|
+
requires_backends(self, ["torch", "transformers"])
|
1495
|
+
|
1496
|
+
@classmethod
|
1497
|
+
def from_config(cls, *args, **kwargs):
|
1498
|
+
requires_backends(cls, ["torch", "transformers"])
|
1499
|
+
|
1500
|
+
@classmethod
|
1501
|
+
def from_pretrained(cls, *args, **kwargs):
|
1502
|
+
requires_backends(cls, ["torch", "transformers"])
|
1503
|
+
|
1504
|
+
|
1235
1505
|
class LTXPipeline(metaclass=DummyObject):
|
1236
1506
|
_backends = ["torch", "transformers"]
|
1237
1507
|
|
@@ -1472,6 +1742,66 @@ class PixArtSigmaPipeline(metaclass=DummyObject):
|
|
1472
1742
|
requires_backends(cls, ["torch", "transformers"])
|
1473
1743
|
|
1474
1744
|
|
1745
|
+
class QwenImageEditPipeline(metaclass=DummyObject):
|
1746
|
+
_backends = ["torch", "transformers"]
|
1747
|
+
|
1748
|
+
def __init__(self, *args, **kwargs):
|
1749
|
+
requires_backends(self, ["torch", "transformers"])
|
1750
|
+
|
1751
|
+
@classmethod
|
1752
|
+
def from_config(cls, *args, **kwargs):
|
1753
|
+
requires_backends(cls, ["torch", "transformers"])
|
1754
|
+
|
1755
|
+
@classmethod
|
1756
|
+
def from_pretrained(cls, *args, **kwargs):
|
1757
|
+
requires_backends(cls, ["torch", "transformers"])
|
1758
|
+
|
1759
|
+
|
1760
|
+
class QwenImageImg2ImgPipeline(metaclass=DummyObject):
|
1761
|
+
_backends = ["torch", "transformers"]
|
1762
|
+
|
1763
|
+
def __init__(self, *args, **kwargs):
|
1764
|
+
requires_backends(self, ["torch", "transformers"])
|
1765
|
+
|
1766
|
+
@classmethod
|
1767
|
+
def from_config(cls, *args, **kwargs):
|
1768
|
+
requires_backends(cls, ["torch", "transformers"])
|
1769
|
+
|
1770
|
+
@classmethod
|
1771
|
+
def from_pretrained(cls, *args, **kwargs):
|
1772
|
+
requires_backends(cls, ["torch", "transformers"])
|
1773
|
+
|
1774
|
+
|
1775
|
+
class QwenImageInpaintPipeline(metaclass=DummyObject):
|
1776
|
+
_backends = ["torch", "transformers"]
|
1777
|
+
|
1778
|
+
def __init__(self, *args, **kwargs):
|
1779
|
+
requires_backends(self, ["torch", "transformers"])
|
1780
|
+
|
1781
|
+
@classmethod
|
1782
|
+
def from_config(cls, *args, **kwargs):
|
1783
|
+
requires_backends(cls, ["torch", "transformers"])
|
1784
|
+
|
1785
|
+
@classmethod
|
1786
|
+
def from_pretrained(cls, *args, **kwargs):
|
1787
|
+
requires_backends(cls, ["torch", "transformers"])
|
1788
|
+
|
1789
|
+
|
1790
|
+
class QwenImagePipeline(metaclass=DummyObject):
|
1791
|
+
_backends = ["torch", "transformers"]
|
1792
|
+
|
1793
|
+
def __init__(self, *args, **kwargs):
|
1794
|
+
requires_backends(self, ["torch", "transformers"])
|
1795
|
+
|
1796
|
+
@classmethod
|
1797
|
+
def from_config(cls, *args, **kwargs):
|
1798
|
+
requires_backends(cls, ["torch", "transformers"])
|
1799
|
+
|
1800
|
+
@classmethod
|
1801
|
+
def from_pretrained(cls, *args, **kwargs):
|
1802
|
+
requires_backends(cls, ["torch", "transformers"])
|
1803
|
+
|
1804
|
+
|
1475
1805
|
class ReduxImageEncoder(metaclass=DummyObject):
|
1476
1806
|
_backends = ["torch", "transformers"]
|
1477
1807
|
|
@@ -1487,6 +1817,21 @@ class ReduxImageEncoder(metaclass=DummyObject):
|
|
1487
1817
|
requires_backends(cls, ["torch", "transformers"])
|
1488
1818
|
|
1489
1819
|
|
1820
|
+
class SanaControlNetPipeline(metaclass=DummyObject):
|
1821
|
+
_backends = ["torch", "transformers"]
|
1822
|
+
|
1823
|
+
def __init__(self, *args, **kwargs):
|
1824
|
+
requires_backends(self, ["torch", "transformers"])
|
1825
|
+
|
1826
|
+
@classmethod
|
1827
|
+
def from_config(cls, *args, **kwargs):
|
1828
|
+
requires_backends(cls, ["torch", "transformers"])
|
1829
|
+
|
1830
|
+
@classmethod
|
1831
|
+
def from_pretrained(cls, *args, **kwargs):
|
1832
|
+
requires_backends(cls, ["torch", "transformers"])
|
1833
|
+
|
1834
|
+
|
1490
1835
|
class SanaPAGPipeline(metaclass=DummyObject):
|
1491
1836
|
_backends = ["torch", "transformers"]
|
1492
1837
|
|
@@ -1517,6 +1862,21 @@ class SanaPipeline(metaclass=DummyObject):
|
|
1517
1862
|
requires_backends(cls, ["torch", "transformers"])
|
1518
1863
|
|
1519
1864
|
|
1865
|
+
class SanaSprintImg2ImgPipeline(metaclass=DummyObject):
|
1866
|
+
_backends = ["torch", "transformers"]
|
1867
|
+
|
1868
|
+
def __init__(self, *args, **kwargs):
|
1869
|
+
requires_backends(self, ["torch", "transformers"])
|
1870
|
+
|
1871
|
+
@classmethod
|
1872
|
+
def from_config(cls, *args, **kwargs):
|
1873
|
+
requires_backends(cls, ["torch", "transformers"])
|
1874
|
+
|
1875
|
+
@classmethod
|
1876
|
+
def from_pretrained(cls, *args, **kwargs):
|
1877
|
+
requires_backends(cls, ["torch", "transformers"])
|
1878
|
+
|
1879
|
+
|
1520
1880
|
class SanaSprintPipeline(metaclass=DummyObject):
|
1521
1881
|
_backends = ["torch", "transformers"]
|
1522
1882
|
|
@@ -1577,6 +1937,81 @@ class ShapEPipeline(metaclass=DummyObject):
|
|
1577
1937
|
requires_backends(cls, ["torch", "transformers"])
|
1578
1938
|
|
1579
1939
|
|
1940
|
+
class SkyReelsV2DiffusionForcingImageToVideoPipeline(metaclass=DummyObject):
|
1941
|
+
_backends = ["torch", "transformers"]
|
1942
|
+
|
1943
|
+
def __init__(self, *args, **kwargs):
|
1944
|
+
requires_backends(self, ["torch", "transformers"])
|
1945
|
+
|
1946
|
+
@classmethod
|
1947
|
+
def from_config(cls, *args, **kwargs):
|
1948
|
+
requires_backends(cls, ["torch", "transformers"])
|
1949
|
+
|
1950
|
+
@classmethod
|
1951
|
+
def from_pretrained(cls, *args, **kwargs):
|
1952
|
+
requires_backends(cls, ["torch", "transformers"])
|
1953
|
+
|
1954
|
+
|
1955
|
+
class SkyReelsV2DiffusionForcingPipeline(metaclass=DummyObject):
|
1956
|
+
_backends = ["torch", "transformers"]
|
1957
|
+
|
1958
|
+
def __init__(self, *args, **kwargs):
|
1959
|
+
requires_backends(self, ["torch", "transformers"])
|
1960
|
+
|
1961
|
+
@classmethod
|
1962
|
+
def from_config(cls, *args, **kwargs):
|
1963
|
+
requires_backends(cls, ["torch", "transformers"])
|
1964
|
+
|
1965
|
+
@classmethod
|
1966
|
+
def from_pretrained(cls, *args, **kwargs):
|
1967
|
+
requires_backends(cls, ["torch", "transformers"])
|
1968
|
+
|
1969
|
+
|
1970
|
+
class SkyReelsV2DiffusionForcingVideoToVideoPipeline(metaclass=DummyObject):
|
1971
|
+
_backends = ["torch", "transformers"]
|
1972
|
+
|
1973
|
+
def __init__(self, *args, **kwargs):
|
1974
|
+
requires_backends(self, ["torch", "transformers"])
|
1975
|
+
|
1976
|
+
@classmethod
|
1977
|
+
def from_config(cls, *args, **kwargs):
|
1978
|
+
requires_backends(cls, ["torch", "transformers"])
|
1979
|
+
|
1980
|
+
@classmethod
|
1981
|
+
def from_pretrained(cls, *args, **kwargs):
|
1982
|
+
requires_backends(cls, ["torch", "transformers"])
|
1983
|
+
|
1984
|
+
|
1985
|
+
class SkyReelsV2ImageToVideoPipeline(metaclass=DummyObject):
|
1986
|
+
_backends = ["torch", "transformers"]
|
1987
|
+
|
1988
|
+
def __init__(self, *args, **kwargs):
|
1989
|
+
requires_backends(self, ["torch", "transformers"])
|
1990
|
+
|
1991
|
+
@classmethod
|
1992
|
+
def from_config(cls, *args, **kwargs):
|
1993
|
+
requires_backends(cls, ["torch", "transformers"])
|
1994
|
+
|
1995
|
+
@classmethod
|
1996
|
+
def from_pretrained(cls, *args, **kwargs):
|
1997
|
+
requires_backends(cls, ["torch", "transformers"])
|
1998
|
+
|
1999
|
+
|
2000
|
+
class SkyReelsV2Pipeline(metaclass=DummyObject):
|
2001
|
+
_backends = ["torch", "transformers"]
|
2002
|
+
|
2003
|
+
def __init__(self, *args, **kwargs):
|
2004
|
+
requires_backends(self, ["torch", "transformers"])
|
2005
|
+
|
2006
|
+
@classmethod
|
2007
|
+
def from_config(cls, *args, **kwargs):
|
2008
|
+
requires_backends(cls, ["torch", "transformers"])
|
2009
|
+
|
2010
|
+
@classmethod
|
2011
|
+
def from_pretrained(cls, *args, **kwargs):
|
2012
|
+
requires_backends(cls, ["torch", "transformers"])
|
2013
|
+
|
2014
|
+
|
1580
2015
|
class StableAudioPipeline(metaclass=DummyObject):
|
1581
2016
|
_backends = ["torch", "transformers"]
|
1582
2017
|
|
@@ -2702,6 +3137,36 @@ class VideoToVideoSDPipeline(metaclass=DummyObject):
|
|
2702
3137
|
requires_backends(cls, ["torch", "transformers"])
|
2703
3138
|
|
2704
3139
|
|
3140
|
+
class VisualClozeGenerationPipeline(metaclass=DummyObject):
|
3141
|
+
_backends = ["torch", "transformers"]
|
3142
|
+
|
3143
|
+
def __init__(self, *args, **kwargs):
|
3144
|
+
requires_backends(self, ["torch", "transformers"])
|
3145
|
+
|
3146
|
+
@classmethod
|
3147
|
+
def from_config(cls, *args, **kwargs):
|
3148
|
+
requires_backends(cls, ["torch", "transformers"])
|
3149
|
+
|
3150
|
+
@classmethod
|
3151
|
+
def from_pretrained(cls, *args, **kwargs):
|
3152
|
+
requires_backends(cls, ["torch", "transformers"])
|
3153
|
+
|
3154
|
+
|
3155
|
+
class VisualClozePipeline(metaclass=DummyObject):
|
3156
|
+
_backends = ["torch", "transformers"]
|
3157
|
+
|
3158
|
+
def __init__(self, *args, **kwargs):
|
3159
|
+
requires_backends(self, ["torch", "transformers"])
|
3160
|
+
|
3161
|
+
@classmethod
|
3162
|
+
def from_config(cls, *args, **kwargs):
|
3163
|
+
requires_backends(cls, ["torch", "transformers"])
|
3164
|
+
|
3165
|
+
@classmethod
|
3166
|
+
def from_pretrained(cls, *args, **kwargs):
|
3167
|
+
requires_backends(cls, ["torch", "transformers"])
|
3168
|
+
|
3169
|
+
|
2705
3170
|
class VQDiffusionPipeline(metaclass=DummyObject):
|
2706
3171
|
_backends = ["torch", "transformers"]
|
2707
3172
|
|
@@ -2747,6 +3212,21 @@ class WanPipeline(metaclass=DummyObject):
|
|
2747
3212
|
requires_backends(cls, ["torch", "transformers"])
|
2748
3213
|
|
2749
3214
|
|
3215
|
+
class WanVACEPipeline(metaclass=DummyObject):
|
3216
|
+
_backends = ["torch", "transformers"]
|
3217
|
+
|
3218
|
+
def __init__(self, *args, **kwargs):
|
3219
|
+
requires_backends(self, ["torch", "transformers"])
|
3220
|
+
|
3221
|
+
@classmethod
|
3222
|
+
def from_config(cls, *args, **kwargs):
|
3223
|
+
requires_backends(cls, ["torch", "transformers"])
|
3224
|
+
|
3225
|
+
@classmethod
|
3226
|
+
def from_pretrained(cls, *args, **kwargs):
|
3227
|
+
requires_backends(cls, ["torch", "transformers"])
|
3228
|
+
|
3229
|
+
|
2750
3230
|
class WanVideoToVideoPipeline(metaclass=DummyObject):
|
2751
3231
|
_backends = ["torch", "transformers"]
|
2752
3232
|
|
@@ -20,8 +20,11 @@ import json
|
|
20
20
|
import os
|
21
21
|
import re
|
22
22
|
import shutil
|
23
|
+
import signal
|
23
24
|
import sys
|
25
|
+
import threading
|
24
26
|
from pathlib import Path
|
27
|
+
from types import ModuleType
|
25
28
|
from typing import Dict, Optional, Union
|
26
29
|
from urllib import request
|
27
30
|
|
@@ -37,6 +40,8 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name
|
|
37
40
|
|
38
41
|
# See https://huggingface.co/datasets/diffusers/community-pipelines-mirror
|
39
42
|
COMMUNITY_PIPELINES_MIRROR_ID = "diffusers/community-pipelines-mirror"
|
43
|
+
TIME_OUT_REMOTE_CODE = int(os.getenv("DIFFUSERS_TIMEOUT_REMOTE_CODE", 15))
|
44
|
+
_HF_REMOTE_CODE_LOCK = threading.Lock()
|
40
45
|
|
41
46
|
|
42
47
|
def get_diffusers_versions():
|
@@ -154,15 +159,87 @@ def check_imports(filename):
|
|
154
159
|
return get_relative_imports(filename)
|
155
160
|
|
156
161
|
|
157
|
-
def
|
162
|
+
def _raise_timeout_error(signum, frame):
|
163
|
+
raise ValueError(
|
164
|
+
"Loading this model requires you to execute custom code contained in the model repository on your local "
|
165
|
+
"machine. Please set the option `trust_remote_code=True` to permit loading of this model."
|
166
|
+
)
|
167
|
+
|
168
|
+
|
169
|
+
def resolve_trust_remote_code(trust_remote_code, model_name, has_remote_code):
|
170
|
+
if trust_remote_code is None:
|
171
|
+
if has_remote_code and TIME_OUT_REMOTE_CODE > 0:
|
172
|
+
prev_sig_handler = None
|
173
|
+
try:
|
174
|
+
prev_sig_handler = signal.signal(signal.SIGALRM, _raise_timeout_error)
|
175
|
+
signal.alarm(TIME_OUT_REMOTE_CODE)
|
176
|
+
while trust_remote_code is None:
|
177
|
+
answer = input(
|
178
|
+
f"The repository for {model_name} contains custom code which must be executed to correctly "
|
179
|
+
f"load the model. You can inspect the repository content at https://hf.co/{model_name}.\n"
|
180
|
+
f"You can avoid this prompt in future by passing the argument `trust_remote_code=True`.\n\n"
|
181
|
+
f"Do you wish to run the custom code? [y/N] "
|
182
|
+
)
|
183
|
+
if answer.lower() in ["yes", "y", "1"]:
|
184
|
+
trust_remote_code = True
|
185
|
+
elif answer.lower() in ["no", "n", "0", ""]:
|
186
|
+
trust_remote_code = False
|
187
|
+
signal.alarm(0)
|
188
|
+
except Exception:
|
189
|
+
# OS which does not support signal.SIGALRM
|
190
|
+
raise ValueError(
|
191
|
+
f"The repository for {model_name} contains custom code which must be executed to correctly "
|
192
|
+
f"load the model. You can inspect the repository content at https://hf.co/{model_name}.\n"
|
193
|
+
f"Please pass the argument `trust_remote_code=True` to allow custom code to be run."
|
194
|
+
)
|
195
|
+
finally:
|
196
|
+
if prev_sig_handler is not None:
|
197
|
+
signal.signal(signal.SIGALRM, prev_sig_handler)
|
198
|
+
signal.alarm(0)
|
199
|
+
elif has_remote_code:
|
200
|
+
# For the CI which puts the timeout at 0
|
201
|
+
_raise_timeout_error(None, None)
|
202
|
+
|
203
|
+
if has_remote_code and not trust_remote_code:
|
204
|
+
raise ValueError(
|
205
|
+
f"Loading {model_name} requires you to execute the configuration file in that"
|
206
|
+
" repo on your local machine. Make sure you have read the code there to avoid malicious use, then"
|
207
|
+
" set the option `trust_remote_code=True` to remove this error."
|
208
|
+
)
|
209
|
+
|
210
|
+
return trust_remote_code
|
211
|
+
|
212
|
+
|
213
|
+
def get_class_in_module(class_name, module_path, force_reload=False):
|
158
214
|
"""
|
159
215
|
Import a module on the cache directory for modules and extract a class from it.
|
160
216
|
"""
|
161
|
-
|
162
|
-
|
217
|
+
name = os.path.normpath(module_path)
|
218
|
+
if name.endswith(".py"):
|
219
|
+
name = name[:-3]
|
220
|
+
name = name.replace(os.path.sep, ".")
|
221
|
+
module_file: Path = Path(HF_MODULES_CACHE) / module_path
|
222
|
+
|
223
|
+
with _HF_REMOTE_CODE_LOCK:
|
224
|
+
if force_reload:
|
225
|
+
sys.modules.pop(name, None)
|
226
|
+
importlib.invalidate_caches()
|
227
|
+
cached_module: Optional[ModuleType] = sys.modules.get(name)
|
228
|
+
module_spec = importlib.util.spec_from_file_location(name, location=module_file)
|
229
|
+
|
230
|
+
module: ModuleType
|
231
|
+
if cached_module is None:
|
232
|
+
module = importlib.util.module_from_spec(module_spec)
|
233
|
+
# insert it into sys.modules before any loading begins
|
234
|
+
sys.modules[name] = module
|
235
|
+
else:
|
236
|
+
module = cached_module
|
237
|
+
|
238
|
+
module_spec.loader.exec_module(module)
|
163
239
|
|
164
240
|
if class_name is None:
|
165
241
|
return find_pipeline_class(module)
|
242
|
+
|
166
243
|
return getattr(module, class_name)
|
167
244
|
|
168
245
|
|
@@ -241,8 +318,8 @@ def get_cached_module_file(
|
|
241
318
|
|
242
319
|
<Tip>
|
243
320
|
|
244
|
-
You may pass a token in `token` if you are not logged in (`
|
245
|
-
|
321
|
+
You may pass a token in `token` if you are not logged in (`hf auth login`) and want to use private or [gated
|
322
|
+
models](https://huggingface.co/docs/hub/models-gated#gated-models).
|
246
323
|
|
247
324
|
</Tip>
|
248
325
|
|
@@ -428,8 +505,8 @@ def get_class_from_dynamic_module(
|
|
428
505
|
|
429
506
|
<Tip>
|
430
507
|
|
431
|
-
You may pass a token in `token` if you are not logged in (`
|
432
|
-
|
508
|
+
You may pass a token in `token` if you are not logged in (`hf auth login`) and want to use private or [gated
|
509
|
+
models](https://huggingface.co/docs/hub/models-gated#gated-models).
|
433
510
|
|
434
511
|
</Tip>
|
435
512
|
|
@@ -454,4 +531,4 @@ def get_class_from_dynamic_module(
|
|
454
531
|
revision=revision,
|
455
532
|
local_files_only=local_files_only,
|
456
533
|
)
|
457
|
-
return get_class_in_module(class_name, final_module
|
534
|
+
return get_class_in_module(class_name, final_module)
|