diffsynth-engine 0.6.1.dev39__tar.gz → 0.6.1.dev41__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.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/PKG-INFO +1 -1
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/pipeline.py +1 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/attention.py +31 -1
- diffsynth_engine-0.6.1.dev41/diffsynth_engine/utils/flag.py +62 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/PKG-INFO +1 -1
- diffsynth_engine-0.6.1.dev39/diffsynth_engine/utils/flag.py +0 -81
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/.gitattributes +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/.gitignore +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/.pre-commit-config.yaml +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/LICENSE +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/MANIFEST.in +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/README.md +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/assets/dingtalk.png +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/assets/showcase.jpeg +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/assets/tongyi.svg +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/components/vae.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.1_flf2v_14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.1_i2v_14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_1.3b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.2_i2v_a14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.2_s2v_14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.2_t2v_a14b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan2.2_ti2v_5b.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/dit/wan_dit_keymap.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/vae/wan2.1_vae.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/vae/wan2.2_vae.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/wan/vae/wan_vae_keymap.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/models/z_image/qwen3_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/controlnet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/kernels/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/base.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/lora.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/lora_nunchaku.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/timestep.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/unet_helper.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/video_sparse_attention.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_redux.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/flux/flux_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/moe.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/surface_extractor.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/hunyuan3d/volume_decoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/qwen_image_dit_nunchaku.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_unet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sdxl/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/text_encoder/clip.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/text_encoder/t5.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/vae/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/vae/vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_audio_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_s2v_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_vae.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/z_image/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/z_image/qwen3.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/z_image/z_image_dit.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/base.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/flux_image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/hunyuan3d_shape.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/qwen_image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/sd_image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/utils.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/wan_dmd.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/wan_s2v.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/wan_video.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/z_image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/processor/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/processor/canny_processor.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/processor/depth_processor.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/base.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/clip.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/qwen2.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/qwen2_vl_processor.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/t5.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/wan.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/cache.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/constants.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/download.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/env.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/fp8_linear.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/gguf.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/image.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/loader.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/lock.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/logging.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/memory/__init__.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/memory/linear_regression.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/memory/memory_predcit_model.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/offload.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/onnx.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/parallel.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/platform.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/process_group.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/prompt.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/video.py +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/requires.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/top_level.txt +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/docs/tutorial.md +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/docs/tutorial_zh.md +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/pyproject.toml +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/setup.cfg +0 -0
- {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/setup.py +0 -0
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/pipeline.py
RENAMED
|
@@ -26,6 +26,7 @@ class AttnImpl(Enum):
|
|
|
26
26
|
FA2 = "fa2" # Flash Attention 2
|
|
27
27
|
FA3 = "fa3" # Flash Attention 3
|
|
28
28
|
FA3_FP8 = "fa3_fp8" # Flash Attention 3 with FP8
|
|
29
|
+
FA4 = "fa4" # Flash Attention 4
|
|
29
30
|
AITER = "aiter" # Aiter Flash Attention
|
|
30
31
|
AITER_FP8 = "aiter_fp8" # Aiter Flash Attention with FP8
|
|
31
32
|
XFORMERS = "xformers" # XFormers
|
|
@@ -6,6 +6,7 @@ from typing import Optional
|
|
|
6
6
|
|
|
7
7
|
from diffsynth_engine.utils import logging
|
|
8
8
|
from diffsynth_engine.utils.flag import (
|
|
9
|
+
FLASH_ATTN_4_AVAILABLE,
|
|
9
10
|
FLASH_ATTN_3_AVAILABLE,
|
|
10
11
|
FLASH_ATTN_2_AVAILABLE,
|
|
11
12
|
XFORMERS_AVAILABLE,
|
|
@@ -21,7 +22,8 @@ FA3_MAX_HEADDIM = 256
|
|
|
21
22
|
|
|
22
23
|
logger = logging.get_logger(__name__)
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
if FLASH_ATTN_4_AVAILABLE:
|
|
26
|
+
from flash_attn.cute.interface import flash_attn_func as flash_attn4
|
|
25
27
|
if FLASH_ATTN_3_AVAILABLE:
|
|
26
28
|
from flash_attn_interface import flash_attn_func as flash_attn3
|
|
27
29
|
if FLASH_ATTN_2_AVAILABLE:
|
|
@@ -142,6 +144,7 @@ def attention(
|
|
|
142
144
|
"fa2",
|
|
143
145
|
"fa3",
|
|
144
146
|
"fa3_fp8",
|
|
147
|
+
"fa4",
|
|
145
148
|
"aiter",
|
|
146
149
|
"aiter_fp8",
|
|
147
150
|
"xformers",
|
|
@@ -152,6 +155,22 @@ def attention(
|
|
|
152
155
|
]
|
|
153
156
|
flash_attn3_compatible = q.shape[-1] <= FA3_MAX_HEADDIM
|
|
154
157
|
if attn_impl is None or attn_impl == "auto":
|
|
158
|
+
if FLASH_ATTN_4_AVAILABLE:
|
|
159
|
+
# FA4 also has the same max-head-256 limitation as FA3
|
|
160
|
+
if flash_attn3_compatible and attn_mask is None:
|
|
161
|
+
attn_out = flash_attn4(q, k, v, softmax_scale=scale)
|
|
162
|
+
if isinstance(attn_out, tuple):
|
|
163
|
+
attn_out = attn_out[0]
|
|
164
|
+
return attn_out
|
|
165
|
+
else:
|
|
166
|
+
if not flash_attn3_compatible:
|
|
167
|
+
logger.warning(
|
|
168
|
+
f"head_dim={q.shape[-1]}, but flash_attn_4 only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
|
|
169
|
+
)
|
|
170
|
+
else:
|
|
171
|
+
logger.debug(
|
|
172
|
+
"flash_attn_4 does not support attention mask, will use fallback attention implementation"
|
|
173
|
+
)
|
|
155
174
|
if FLASH_ATTN_3_AVAILABLE:
|
|
156
175
|
if flash_attn3_compatible and attn_mask is None:
|
|
157
176
|
return flash_attn3(q, k, v, softmax_scale=scale)
|
|
@@ -213,6 +232,17 @@ def attention(
|
|
|
213
232
|
v = v.to(dtype=DTYPE_FP8)
|
|
214
233
|
out = aiter_flash_attn_fp8(q, k, v, softmax_scale=scale)
|
|
215
234
|
return out.to(dtype=origin_dtype)
|
|
235
|
+
if attn_impl == "fa4":
|
|
236
|
+
if not flash_attn3_compatible:
|
|
237
|
+
raise RuntimeError(
|
|
238
|
+
f"head_dim={q.shape[-1]}, but flash_attn_4 only supports head dimension at most {FA3_MAX_HEADDIM}"
|
|
239
|
+
)
|
|
240
|
+
if attn_mask is not None:
|
|
241
|
+
raise RuntimeError("flash_attn_4 does not support attention mask")
|
|
242
|
+
attn_out = flash_attn4(q, k, v, softmax_scale=scale)
|
|
243
|
+
if isinstance(attn_out, tuple):
|
|
244
|
+
attn_out = attn_out[0]
|
|
245
|
+
return attn_out
|
|
216
246
|
if attn_impl == "fa2":
|
|
217
247
|
return flash_attn2(q, k, v, softmax_scale=scale)
|
|
218
248
|
if attn_impl == "xformers":
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import importlib
|
|
2
|
+
import torch
|
|
3
|
+
|
|
4
|
+
from diffsynth_engine.utils import logging
|
|
5
|
+
|
|
6
|
+
logger = logging.get_logger(__name__)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def check_module_available(module_path: str, module_name: str = None) -> bool:
|
|
10
|
+
try:
|
|
11
|
+
available = importlib.util.find_spec(module_path) is not None
|
|
12
|
+
except (ModuleNotFoundError, AttributeError, ValueError):
|
|
13
|
+
available = False
|
|
14
|
+
|
|
15
|
+
if module_name:
|
|
16
|
+
if available:
|
|
17
|
+
logger.info(f"{module_name} is available")
|
|
18
|
+
else:
|
|
19
|
+
logger.info(f"{module_name} is not available")
|
|
20
|
+
|
|
21
|
+
return available
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# 无损
|
|
25
|
+
FLASH_ATTN_4_AVAILABLE = check_module_available("flash_attn.cute.interface", "Flash attention 4")
|
|
26
|
+
FLASH_ATTN_3_AVAILABLE = check_module_available("flash_attn_interface", "Flash attention 3")
|
|
27
|
+
FLASH_ATTN_2_AVAILABLE = check_module_available("flash_attn", "Flash attention 2")
|
|
28
|
+
XFORMERS_AVAILABLE = check_module_available("xformers", "XFormers")
|
|
29
|
+
AITER_AVAILABLE = check_module_available("aiter", "Aiter")
|
|
30
|
+
|
|
31
|
+
SDPA_AVAILABLE = hasattr(torch.nn.functional, "scaled_dot_product_attention")
|
|
32
|
+
if SDPA_AVAILABLE:
|
|
33
|
+
logger.info("Torch SDPA is available")
|
|
34
|
+
else:
|
|
35
|
+
logger.info("Torch SDPA is not available")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# 有损
|
|
39
|
+
SAGE_ATTN_AVAILABLE = check_module_available("sageattention", "Sage attention")
|
|
40
|
+
SPARGE_ATTN_AVAILABLE = check_module_available("spas_sage_attn", "Sparge attention")
|
|
41
|
+
VIDEO_SPARSE_ATTN_AVAILABLE = check_module_available("vsa", "Video sparse attention")
|
|
42
|
+
|
|
43
|
+
NUNCHAKU_AVAILABLE = check_module_available("nunchaku", "Nunchaku")
|
|
44
|
+
NUNCHAKU_IMPORT_ERROR = None
|
|
45
|
+
if not NUNCHAKU_AVAILABLE:
|
|
46
|
+
import sys
|
|
47
|
+
torch_version = getattr(torch, "__version__", "unknown")
|
|
48
|
+
python_version = f"{sys.version_info.major}.{sys.version_info.minor}"
|
|
49
|
+
NUNCHAKU_IMPORT_ERROR = (
|
|
50
|
+
"\n\n"
|
|
51
|
+
"ERROR: This model requires the 'nunchaku' library for quantized inference, but it is not installed.\n"
|
|
52
|
+
"'nunchaku' is not available on PyPI and must be installed manually.\n\n"
|
|
53
|
+
"Please follow these steps:\n"
|
|
54
|
+
"1. Visit the nunchaku releases page: https://github.com/nunchaku-tech/nunchaku/releases\n"
|
|
55
|
+
"2. Find the wheel (.whl) file that matches your environment:\n"
|
|
56
|
+
f" - PyTorch version: {torch_version}\n"
|
|
57
|
+
f" - Python version: {python_version}\n"
|
|
58
|
+
f" - Operating System: {sys.platform}\n"
|
|
59
|
+
"3. Copy the URL of the correct wheel file.\n"
|
|
60
|
+
"4. Install it using pip, for example:\n"
|
|
61
|
+
" pip install nunchaku @ https://.../your_specific_nunchaku_file.whl\n"
|
|
62
|
+
)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import importlib
|
|
2
|
-
import torch
|
|
3
|
-
|
|
4
|
-
from diffsynth_engine.utils import logging
|
|
5
|
-
|
|
6
|
-
logger = logging.get_logger(__name__)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# 无损
|
|
10
|
-
FLASH_ATTN_3_AVAILABLE = importlib.util.find_spec("flash_attn_interface") is not None
|
|
11
|
-
if FLASH_ATTN_3_AVAILABLE:
|
|
12
|
-
logger.info("Flash attention 3 is available")
|
|
13
|
-
else:
|
|
14
|
-
logger.info("Flash attention 3 is not available")
|
|
15
|
-
|
|
16
|
-
FLASH_ATTN_2_AVAILABLE = importlib.util.find_spec("flash_attn") is not None
|
|
17
|
-
if FLASH_ATTN_2_AVAILABLE:
|
|
18
|
-
logger.info("Flash attention 2 is available")
|
|
19
|
-
else:
|
|
20
|
-
logger.info("Flash attention 2 is not available")
|
|
21
|
-
|
|
22
|
-
XFORMERS_AVAILABLE = importlib.util.find_spec("xformers") is not None
|
|
23
|
-
if XFORMERS_AVAILABLE:
|
|
24
|
-
logger.info("XFormers is available")
|
|
25
|
-
else:
|
|
26
|
-
logger.info("XFormers is not available")
|
|
27
|
-
|
|
28
|
-
SDPA_AVAILABLE = hasattr(torch.nn.functional, "scaled_dot_product_attention")
|
|
29
|
-
if SDPA_AVAILABLE:
|
|
30
|
-
logger.info("Torch SDPA is available")
|
|
31
|
-
else:
|
|
32
|
-
logger.info("Torch SDPA is not available")
|
|
33
|
-
|
|
34
|
-
AITER_AVAILABLE = importlib.util.find_spec("aiter") is not None
|
|
35
|
-
if AITER_AVAILABLE:
|
|
36
|
-
logger.info("Aiter is available")
|
|
37
|
-
else:
|
|
38
|
-
logger.info("Aiter is not available")
|
|
39
|
-
|
|
40
|
-
# 有损
|
|
41
|
-
SAGE_ATTN_AVAILABLE = importlib.util.find_spec("sageattention") is not None
|
|
42
|
-
if SAGE_ATTN_AVAILABLE:
|
|
43
|
-
logger.info("Sage attention is available")
|
|
44
|
-
else:
|
|
45
|
-
logger.info("Sage attention is not available")
|
|
46
|
-
|
|
47
|
-
SPARGE_ATTN_AVAILABLE = importlib.util.find_spec("spas_sage_attn") is not None
|
|
48
|
-
if SPARGE_ATTN_AVAILABLE:
|
|
49
|
-
logger.info("Sparge attention is available")
|
|
50
|
-
else:
|
|
51
|
-
logger.info("Sparge attention is not available")
|
|
52
|
-
|
|
53
|
-
VIDEO_SPARSE_ATTN_AVAILABLE = importlib.util.find_spec("vsa") is not None
|
|
54
|
-
if VIDEO_SPARSE_ATTN_AVAILABLE:
|
|
55
|
-
logger.info("Video sparse attention is available")
|
|
56
|
-
else:
|
|
57
|
-
logger.info("Video sparse attention is not available")
|
|
58
|
-
|
|
59
|
-
NUNCHAKU_AVAILABLE = importlib.util.find_spec("nunchaku") is not None
|
|
60
|
-
NUNCHAKU_IMPORT_ERROR = None
|
|
61
|
-
if NUNCHAKU_AVAILABLE:
|
|
62
|
-
logger.info("Nunchaku is available")
|
|
63
|
-
else:
|
|
64
|
-
logger.info("Nunchaku is not available")
|
|
65
|
-
import sys
|
|
66
|
-
torch_version = getattr(torch, "__version__", "unknown")
|
|
67
|
-
python_version = f"{sys.version_info.major}.{sys.version_info.minor}"
|
|
68
|
-
NUNCHAKU_IMPORT_ERROR = (
|
|
69
|
-
"\n\n"
|
|
70
|
-
"ERROR: This model requires the 'nunchaku' library for quantized inference, but it is not installed.\n"
|
|
71
|
-
"'nunchaku' is not available on PyPI and must be installed manually.\n\n"
|
|
72
|
-
"Please follow these steps:\n"
|
|
73
|
-
"1. Visit the nunchaku releases page: https://github.com/nunchaku-tech/nunchaku/releases\n"
|
|
74
|
-
"2. Find the wheel (.whl) file that matches your environment:\n"
|
|
75
|
-
f" - PyTorch version: {torch_version}\n"
|
|
76
|
-
f" - Python version: {python_version}\n"
|
|
77
|
-
f" - Operating System: {sys.platform}\n"
|
|
78
|
-
"3. Copy the URL of the correct wheel file.\n"
|
|
79
|
-
"4. Install it using pip, for example:\n"
|
|
80
|
-
" pip install nunchaku @ https://.../your_specific_nunchaku_file.whl\n"
|
|
81
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/algorithm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/configs/controlnet.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/kernels/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/basic/lora.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_unet.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd/sd_vae.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/sd3_dit.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/sd3/sd3_vae.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/vae/vae.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_dit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/models/wan/wan_vae.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/sd_image.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/utils.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/wan_dmd.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/wan_s2v.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/pipelines/z_image.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/base.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/clip.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/qwen2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/t5.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tokenizers/wan.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/cache.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/constants.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/download.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/fp8_linear.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/gguf.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/image.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/loader.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/lock.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/logging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/offload.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/onnx.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/parallel.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/platform.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/prompt.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine/utils/video.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev41}/diffsynth_engine.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|