diffsynth-engine 0.4.2.dev6__tar.gz → 0.4.3__tar.gz
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.
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/.gitignore +2 -1
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/PKG-INFO +4 -3
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/__init__.py +19 -1
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +7 -2
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +1 -6
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +2 -1
- diffsynth_engine-0.4.3/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +29 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/configs/pipeline.py +26 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/attention.py +4 -4
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/__init__.py +9 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +379 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +233 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +360 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/moe.py +87 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/surface_extractor.py +99 -0
- diffsynth_engine-0.4.3/diffsynth_engine/models/hunyuan3d/volume_decoder.py +64 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +41 -57
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +47 -30
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/__init__.py +2 -1
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/base.py +34 -4
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/flux_image.py +1 -1
- diffsynth_engine-0.4.3/diffsynth_engine/pipelines/hunyuan3d_shape.py +200 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/qwen_image.py +154 -14
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/sd_image.py +26 -21
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/sdxl_image.py +36 -26
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/wan_video.py +15 -2
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/__init__.py +4 -0
- diffsynth_engine-0.4.3/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +157 -0
- diffsynth_engine-0.4.3/diffsynth_engine/tokenizers/qwen2_vl_processor.py +100 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tools/flux_inpainting_tool.py +41 -4
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tools/flux_outpainting_tool.py +43 -6
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tools/flux_reference_tool.py +36 -5
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tools/flux_replace_tool.py +44 -7
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/constants.py +6 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/download.py +30 -0
- diffsynth_engine-0.4.3/diffsynth_engine/utils/image.py +238 -0
- diffsynth_engine-0.4.3/diffsynth_engine/utils/memory/__init__.py +0 -0
- diffsynth_engine-0.4.3/diffsynth_engine/utils/memory/linear_regression.py +133 -0
- diffsynth_engine-0.4.3/diffsynth_engine/utils/memory/memory_predcit_model.py +106 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/offload.py +9 -5
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/parallel.py +3 -8
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine.egg-info/PKG-INFO +4 -3
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine.egg-info/SOURCES.txt +14 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine.egg-info/requires.txt +3 -2
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/docs/tutorial.md +1 -2
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/docs/tutorial_zh.md +9 -8
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/pyproject.toml +4 -3
- diffsynth_engine-0.4.2.dev6/diffsynth_engine/utils/image.py +0 -25
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/.pre-commit-config.yaml +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/LICENSE +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/MANIFEST.in +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/README.md +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/assets/dingtalk.png +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/assets/showcase.jpeg +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/components/vae.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.1-flf2v-14b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.1-i2v-14b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-1.3b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-14b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.2-i2v-a14b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.2-t2v-a14b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/dit/wan2.2-ti2v-5b.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/vae/wan-vae-keymap.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/vae/wan2.1-vae.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/models/wan/vae/wan2.2-vae.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/configs/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/configs/controlnet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/kernels/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/base.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/lora.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/timestep.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/unet_helper.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_dit.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_redux.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/flux/flux_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd/sd_unet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd/sd_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd3/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sdxl/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/text_encoder/clip.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/text_encoder/t5.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/utils.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/vae/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/vae/vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/wan/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/wan/wan_dit.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/wan/wan_vae.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/pipelines/utils.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/processor/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/processor/canny_processor.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/processor/depth_processor.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/base.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/clip.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/qwen2.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/t5.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tokenizers/wan.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/tools/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/__init__.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/cache.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/env.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/flag.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/fp8_linear.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/gguf.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/loader.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/lock.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/logging.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/onnx.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/platform.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/prompt.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/utils/video.py +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine.egg-info/top_level.txt +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/setup.cfg +0 -0
- {diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffsynth_engine
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Author: MuseAI x ModelScope
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: Operating System :: OS Independent
|
|
@@ -25,13 +25,14 @@ Requires-Dist: imageio[ffmpeg]
|
|
|
25
25
|
Requires-Dist: yunchang; sys_platform == "linux"
|
|
26
26
|
Requires-Dist: onnxruntime
|
|
27
27
|
Requires-Dist: opencv-python
|
|
28
|
+
Requires-Dist: scikit-image
|
|
29
|
+
Requires-Dist: trimesh
|
|
28
30
|
Provides-Extra: dev
|
|
29
31
|
Requires-Dist: diffusers==0.31.0; extra == "dev"
|
|
30
|
-
Requires-Dist: transformers==4.
|
|
32
|
+
Requires-Dist: transformers==4.52.4; extra == "dev"
|
|
31
33
|
Requires-Dist: accelerate; extra == "dev"
|
|
32
34
|
Requires-Dist: build; extra == "dev"
|
|
33
35
|
Requires-Dist: ruff; extra == "dev"
|
|
34
|
-
Requires-Dist: scikit-image; extra == "dev"
|
|
35
36
|
Requires-Dist: pytest; extra == "dev"
|
|
36
37
|
Requires-Dist: pre-commit; extra == "dev"
|
|
37
38
|
Dynamic: license-file
|
|
@@ -4,6 +4,10 @@ from .configs import (
|
|
|
4
4
|
FluxPipelineConfig,
|
|
5
5
|
WanPipelineConfig,
|
|
6
6
|
QwenImagePipelineConfig,
|
|
7
|
+
SDStateDicts,
|
|
8
|
+
SDXLStateDicts,
|
|
9
|
+
FluxStateDicts,
|
|
10
|
+
QwenImageStateDicts,
|
|
7
11
|
ControlNetParams,
|
|
8
12
|
ControlType,
|
|
9
13
|
)
|
|
@@ -13,11 +17,18 @@ from .pipelines import (
|
|
|
13
17
|
SDImagePipeline,
|
|
14
18
|
WanVideoPipeline,
|
|
15
19
|
QwenImagePipeline,
|
|
20
|
+
Hunyuan3DShapePipeline,
|
|
16
21
|
)
|
|
17
22
|
from .models.flux import FluxControlNet, FluxIPAdapter, FluxRedux
|
|
18
23
|
from .models.sd import SDControlNet
|
|
19
24
|
from .models.sdxl import SDXLControlNetUnion
|
|
20
|
-
from .utils.download import
|
|
25
|
+
from .utils.download import (
|
|
26
|
+
fetch_model,
|
|
27
|
+
fetch_modelscope_model,
|
|
28
|
+
fetch_civitai_model,
|
|
29
|
+
register_fetch_modelscope_model,
|
|
30
|
+
reset_fetch_modelscope_model,
|
|
31
|
+
)
|
|
21
32
|
from .utils.video import load_video, save_video
|
|
22
33
|
from .tools import (
|
|
23
34
|
FluxInpaintingTool,
|
|
@@ -32,6 +43,10 @@ __all__ = [
|
|
|
32
43
|
"SDXLPipelineConfig",
|
|
33
44
|
"FluxPipelineConfig",
|
|
34
45
|
"WanPipelineConfig",
|
|
46
|
+
"SDStateDicts",
|
|
47
|
+
"SDXLStateDicts",
|
|
48
|
+
"FluxStateDicts",
|
|
49
|
+
"QwenImageStateDicts",
|
|
35
50
|
"FluxImagePipeline",
|
|
36
51
|
"QwenImagePipelineConfig",
|
|
37
52
|
"FluxControlNet",
|
|
@@ -43,6 +58,7 @@ __all__ = [
|
|
|
43
58
|
"SDImagePipeline",
|
|
44
59
|
"WanVideoPipeline",
|
|
45
60
|
"QwenImagePipeline",
|
|
61
|
+
"Hunyuan3DShapePipeline",
|
|
46
62
|
"FluxInpaintingTool",
|
|
47
63
|
"FluxOutpaintingTool",
|
|
48
64
|
"FluxIPAdapterRefTool",
|
|
@@ -52,6 +68,8 @@ __all__ = [
|
|
|
52
68
|
"ControlType",
|
|
53
69
|
"fetch_model",
|
|
54
70
|
"fetch_modelscope_model",
|
|
71
|
+
"register_fetch_modelscope_model",
|
|
72
|
+
"reset_fetch_modelscope_model",
|
|
55
73
|
"fetch_civitai_model",
|
|
56
74
|
"load_video",
|
|
57
75
|
"save_video",
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import torch
|
|
2
2
|
import math
|
|
3
3
|
|
|
4
|
-
from diffsynth_engine.algorithm.noise_scheduler.base_scheduler import
|
|
4
|
+
from diffsynth_engine.algorithm.noise_scheduler.base_scheduler import BaseScheduler
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def append(x, value):
|
|
8
|
+
return torch.cat([x, x.new_ones([1]) * value])
|
|
5
9
|
|
|
6
10
|
|
|
7
11
|
class RecifitedFlowScheduler(BaseScheduler):
|
|
@@ -37,6 +41,7 @@ class RecifitedFlowScheduler(BaseScheduler):
|
|
|
37
41
|
mu: float | None = None,
|
|
38
42
|
sigma_min: float | None = None,
|
|
39
43
|
sigma_max: float | None = None,
|
|
44
|
+
append_value: float = 0,
|
|
40
45
|
):
|
|
41
46
|
sigma_min = self.sigma_min if sigma_min is None else sigma_min
|
|
42
47
|
sigma_max = self.sigma_max if sigma_max is None else sigma_max
|
|
@@ -46,5 +51,5 @@ class RecifitedFlowScheduler(BaseScheduler):
|
|
|
46
51
|
else:
|
|
47
52
|
sigmas = self._shift_sigma(sigmas, self.shift)
|
|
48
53
|
timesteps = sigmas * self.num_train_timesteps
|
|
49
|
-
sigmas =
|
|
54
|
+
sigmas = append(sigmas, append_value)
|
|
50
55
|
return sigmas, timesteps
|
|
@@ -2,19 +2,14 @@ import torch
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class FlowMatchEulerSampler:
|
|
5
|
-
def initialize(self,
|
|
6
|
-
self.init_latents = init_latents
|
|
7
|
-
self.timesteps = timesteps
|
|
5
|
+
def initialize(self, sigmas):
|
|
8
6
|
self.sigmas = sigmas
|
|
9
|
-
self.mask = mask
|
|
10
7
|
|
|
11
8
|
def step(self, latents, model_outputs, i):
|
|
12
9
|
dt = self.sigmas[i + 1] - self.sigmas[i]
|
|
13
10
|
latents = latents.to(dtype=torch.float32)
|
|
14
11
|
latents = latents + model_outputs * dt
|
|
15
12
|
latents = latents.to(dtype=model_outputs.dtype)
|
|
16
|
-
if self.mask is not None:
|
|
17
|
-
latents = latents * self.mask + self.init_latents * (1 - self.mask)
|
|
18
13
|
return latents
|
|
19
14
|
|
|
20
15
|
def add_noise(self, latents, noise, sigma):
|
diffsynth_engine-0.4.3/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"do_convert_rgb": true,
|
|
3
|
+
"do_normalize": true,
|
|
4
|
+
"do_rescale": true,
|
|
5
|
+
"do_resize": true,
|
|
6
|
+
"image_mean": [
|
|
7
|
+
0.48145466,
|
|
8
|
+
0.4578275,
|
|
9
|
+
0.40821073
|
|
10
|
+
],
|
|
11
|
+
"image_processor_type": "Qwen2VLImageProcessor",
|
|
12
|
+
"image_std": [
|
|
13
|
+
0.26862954,
|
|
14
|
+
0.26130258,
|
|
15
|
+
0.27577711
|
|
16
|
+
],
|
|
17
|
+
"max_pixels": 12845056,
|
|
18
|
+
"merge_size": 2,
|
|
19
|
+
"min_pixels": 3136,
|
|
20
|
+
"patch_size": 14,
|
|
21
|
+
"processor_class": "Qwen2_5_VLProcessor",
|
|
22
|
+
"resample": 3,
|
|
23
|
+
"rescale_factor": 0.00392156862745098,
|
|
24
|
+
"size": {
|
|
25
|
+
"longest_edge": 12845056,
|
|
26
|
+
"shortest_edge": 3136
|
|
27
|
+
},
|
|
28
|
+
"temporal_patch_size": 2
|
|
29
|
+
}
|
|
@@ -16,6 +16,7 @@ class BaseConfig:
|
|
|
16
16
|
vae_tile_stride: int | Tuple[int, int] = 256
|
|
17
17
|
device: str = "cuda"
|
|
18
18
|
offload_mode: Optional[str] = None
|
|
19
|
+
offload_to_disk: bool = False
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
@dataclass
|
|
@@ -62,11 +63,13 @@ class SDPipelineConfig(BaseConfig):
|
|
|
62
63
|
model_path: str | os.PathLike | List[str | os.PathLike],
|
|
63
64
|
device: str = "cuda",
|
|
64
65
|
offload_mode: Optional[str] = None,
|
|
66
|
+
offload_to_disk: bool = False,
|
|
65
67
|
) -> "SDPipelineConfig":
|
|
66
68
|
return cls(
|
|
67
69
|
model_path=model_path,
|
|
68
70
|
device=device,
|
|
69
71
|
offload_mode=offload_mode,
|
|
72
|
+
offload_to_disk=offload_to_disk,
|
|
70
73
|
)
|
|
71
74
|
|
|
72
75
|
|
|
@@ -87,11 +90,13 @@ class SDXLPipelineConfig(BaseConfig):
|
|
|
87
90
|
model_path: str | os.PathLike | List[str | os.PathLike],
|
|
88
91
|
device: str = "cuda",
|
|
89
92
|
offload_mode: Optional[str] = None,
|
|
93
|
+
offload_to_disk: bool = False,
|
|
90
94
|
) -> "SDXLPipelineConfig":
|
|
91
95
|
return cls(
|
|
92
96
|
model_path=model_path,
|
|
93
97
|
device=device,
|
|
94
98
|
offload_mode=offload_mode,
|
|
99
|
+
offload_to_disk=offload_to_disk,
|
|
95
100
|
)
|
|
96
101
|
|
|
97
102
|
|
|
@@ -116,6 +121,7 @@ class FluxPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Ba
|
|
|
116
121
|
device: str = "cuda",
|
|
117
122
|
parallelism: int = 1,
|
|
118
123
|
offload_mode: Optional[str] = None,
|
|
124
|
+
offload_to_disk: bool = False,
|
|
119
125
|
) -> "FluxPipelineConfig":
|
|
120
126
|
return cls(
|
|
121
127
|
model_path=model_path,
|
|
@@ -123,6 +129,7 @@ class FluxPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Ba
|
|
|
123
129
|
parallelism=parallelism,
|
|
124
130
|
use_fsdp=True,
|
|
125
131
|
offload_mode=offload_mode,
|
|
132
|
+
offload_to_disk=offload_to_disk,
|
|
126
133
|
)
|
|
127
134
|
|
|
128
135
|
def __post_init__(self):
|
|
@@ -160,6 +167,7 @@ class WanPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Bas
|
|
|
160
167
|
device: str = "cuda",
|
|
161
168
|
parallelism: int = 1,
|
|
162
169
|
offload_mode: Optional[str] = None,
|
|
170
|
+
offload_to_disk: bool = False,
|
|
163
171
|
) -> "WanPipelineConfig":
|
|
164
172
|
return cls(
|
|
165
173
|
model_path=model_path,
|
|
@@ -169,12 +177,23 @@ class WanPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Bas
|
|
|
169
177
|
use_cfg_parallel=True,
|
|
170
178
|
use_fsdp=True,
|
|
171
179
|
offload_mode=offload_mode,
|
|
180
|
+
offload_to_disk=offload_to_disk,
|
|
172
181
|
)
|
|
173
182
|
|
|
174
183
|
def __post_init__(self):
|
|
175
184
|
init_parallel_config(self)
|
|
176
185
|
|
|
177
186
|
|
|
187
|
+
@dataclass
|
|
188
|
+
class HunyuanPipelineConfig(BaseConfig):
|
|
189
|
+
model_path: str | os.PathLike | List[str | os.PathLike]
|
|
190
|
+
model_dtype: torch.dtype = torch.float16
|
|
191
|
+
vae_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
192
|
+
vae_dtype: torch.dtype = torch.float16
|
|
193
|
+
image_encoder_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
194
|
+
image_encoder_dtype: torch.dtype = torch.float16
|
|
195
|
+
|
|
196
|
+
|
|
178
197
|
@dataclass
|
|
179
198
|
class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, BaseConfig):
|
|
180
199
|
model_path: str | os.PathLike | List[str | os.PathLike]
|
|
@@ -187,6 +206,11 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
|
|
|
187
206
|
# override OptimizationConfig
|
|
188
207
|
fbcache_relative_l1_threshold = 0.009
|
|
189
208
|
|
|
209
|
+
# override BaseConfig
|
|
210
|
+
vae_tiled: bool = True
|
|
211
|
+
vae_tile_size: Tuple[int, int] = (34, 34)
|
|
212
|
+
vae_tile_stride: Tuple[int, int] = (18, 16)
|
|
213
|
+
|
|
190
214
|
@classmethod
|
|
191
215
|
def basic_config(
|
|
192
216
|
cls,
|
|
@@ -196,6 +220,7 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
|
|
|
196
220
|
device: str = "cuda",
|
|
197
221
|
parallelism: int = 1,
|
|
198
222
|
offload_mode: Optional[str] = None,
|
|
223
|
+
offload_to_disk: bool = False,
|
|
199
224
|
) -> "QwenImagePipelineConfig":
|
|
200
225
|
return cls(
|
|
201
226
|
model_path=model_path,
|
|
@@ -206,6 +231,7 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
|
|
|
206
231
|
use_cfg_parallel=True,
|
|
207
232
|
use_fsdp=True,
|
|
208
233
|
offload_mode=offload_mode,
|
|
234
|
+
offload_to_disk=offload_to_disk,
|
|
209
235
|
)
|
|
210
236
|
|
|
211
237
|
def __post_init__(self):
|
{diffsynth_engine-0.4.2.dev6 → diffsynth_engine-0.4.3}/diffsynth_engine/models/basic/attention.py
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import torch
|
|
2
2
|
import torch.nn as nn
|
|
3
|
+
import torch.nn.functional as F
|
|
3
4
|
from einops import rearrange, repeat
|
|
4
5
|
from typing import Optional
|
|
5
6
|
|
|
6
|
-
import torch.nn.functional as F
|
|
7
7
|
from diffsynth_engine.utils import logging
|
|
8
8
|
from diffsynth_engine.utils.flag import (
|
|
9
9
|
FLASH_ATTN_3_AVAILABLE,
|
|
@@ -42,11 +42,11 @@ if XFORMERS_AVAILABLE:
|
|
|
42
42
|
|
|
43
43
|
if SDPA_AVAILABLE:
|
|
44
44
|
|
|
45
|
-
def sdpa_attn(q, k, v, attn_mask=None, scale=None):
|
|
45
|
+
def sdpa_attn(q, k, v, attn_mask=None, is_causal=False, scale=None):
|
|
46
46
|
q = q.transpose(1, 2)
|
|
47
47
|
k = k.transpose(1, 2)
|
|
48
48
|
v = v.transpose(1, 2)
|
|
49
|
-
out =
|
|
49
|
+
out = F.scaled_dot_product_attention(q, k, v, attn_mask=attn_mask, is_causal=is_causal, scale=scale)
|
|
50
50
|
return out.transpose(1, 2)
|
|
51
51
|
|
|
52
52
|
|
|
@@ -111,7 +111,7 @@ def attention(
|
|
|
111
111
|
q,
|
|
112
112
|
k,
|
|
113
113
|
v,
|
|
114
|
-
attn_impl: Optional[str] =
|
|
114
|
+
attn_impl: Optional[str] = "auto",
|
|
115
115
|
attn_mask: Optional[torch.Tensor] = None,
|
|
116
116
|
scale: Optional[float] = None,
|
|
117
117
|
**kwargs,
|