diffsynth-engine 0.6.1.dev25__tar.gz → 0.6.1.dev27__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.
Files changed (209) hide show
  1. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/configs/pipeline.py +2 -0
  3. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/attention.py +52 -0
  4. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/wan_s2v.py +2 -0
  5. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/wan_video.py +13 -1
  6. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/flag.py +5 -0
  7. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  8. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/.gitattributes +0 -0
  9. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/.gitignore +0 -0
  10. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/.pre-commit-config.yaml +0 -0
  11. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/LICENSE +0 -0
  12. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/MANIFEST.in +0 -0
  13. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/README.md +0 -0
  14. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/assets/dingtalk.png +0 -0
  15. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/assets/showcase.jpeg +0 -0
  16. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/assets/tongyi.svg +0 -0
  17. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/__init__.py +0 -0
  18. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/__init__.py +0 -0
  19. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  20. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  21. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  22. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  23. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  24. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  25. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  26. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  27. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  28. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  29. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  30. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  31. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  32. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  33. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  34. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  35. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  36. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  37. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  38. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  39. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  40. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  41. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  42. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  43. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  44. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  45. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/components/vae.json +0 -0
  46. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  47. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  48. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  49. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
  50. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
  51. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
  52. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
  53. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  54. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  55. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  56. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  57. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  58. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  59. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.1_flf2v_14b.json +0 -0
  60. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.1_i2v_14b.json +0 -0
  61. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_1.3b.json +0 -0
  62. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_14b.json +0 -0
  63. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.2_i2v_a14b.json +0 -0
  64. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.2_s2v_14b.json +0 -0
  65. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.2_t2v_a14b.json +0 -0
  66. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan2.2_ti2v_5b.json +0 -0
  67. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/dit/wan_dit_keymap.json +0 -0
  68. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/vae/wan2.1_vae.json +0 -0
  69. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/vae/wan2.2_vae.json +0 -0
  70. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/models/wan/vae/wan_vae_keymap.json +0 -0
  71. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  72. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  73. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  74. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  75. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  76. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  77. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  78. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  79. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +0 -0
  80. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
  81. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
  82. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
  83. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
  84. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
  85. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
  86. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  87. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  88. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  89. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  90. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  91. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  92. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  93. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  94. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  95. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  96. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  97. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  98. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/configs/__init__.py +0 -0
  99. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/configs/controlnet.py +0 -0
  100. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/kernels/__init__.py +0 -0
  101. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/__init__.py +0 -0
  102. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/base.py +0 -0
  103. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/__init__.py +0 -0
  104. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/lora.py +0 -0
  105. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  106. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/timestep.py +0 -0
  107. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  108. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  109. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/basic/video_sparse_attention.py +0 -0
  110. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/__init__.py +0 -0
  111. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  112. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  113. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  114. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  115. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  116. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  117. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  118. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/__init__.py +0 -0
  119. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +0 -0
  120. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +0 -0
  121. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +0 -0
  122. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/moe.py +0 -0
  123. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/surface_extractor.py +0 -0
  124. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/hunyuan3d/volume_decoder.py +0 -0
  125. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
  126. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
  127. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +0 -0
  128. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
  129. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
  130. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd/__init__.py +0 -0
  131. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  132. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  133. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  134. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  135. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd3/__init__.py +0 -0
  136. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  137. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  138. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  139. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  140. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  141. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  142. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  143. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  144. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  145. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  146. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  147. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  148. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/vae/__init__.py +0 -0
  149. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/vae/vae.py +0 -0
  150. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/__init__.py +0 -0
  151. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_audio_encoder.py +0 -0
  152. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  153. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  154. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_s2v_dit.py +0 -0
  155. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  156. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  157. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/__init__.py +0 -0
  158. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/base.py +0 -0
  159. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/flux_image.py +0 -0
  160. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/hunyuan3d_shape.py +0 -0
  161. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/qwen_image.py +0 -0
  162. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/sd_image.py +0 -0
  163. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  164. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/pipelines/utils.py +0 -0
  165. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/processor/__init__.py +0 -0
  166. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/processor/canny_processor.py +0 -0
  167. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/processor/depth_processor.py +0 -0
  168. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/__init__.py +0 -0
  169. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/base.py +0 -0
  170. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/clip.py +0 -0
  171. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/qwen2.py +0 -0
  172. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +0 -0
  173. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/qwen2_vl_processor.py +0 -0
  174. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/t5.py +0 -0
  175. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tokenizers/wan.py +0 -0
  176. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tools/__init__.py +0 -0
  177. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  178. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  179. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  180. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  181. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/__init__.py +0 -0
  182. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/cache.py +0 -0
  183. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/constants.py +0 -0
  184. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/download.py +0 -0
  185. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/env.py +0 -0
  186. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/fp8_linear.py +0 -0
  187. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/gguf.py +0 -0
  188. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/image.py +0 -0
  189. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/loader.py +0 -0
  190. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/lock.py +0 -0
  191. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/logging.py +0 -0
  192. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/memory/__init__.py +0 -0
  193. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/memory/linear_regression.py +0 -0
  194. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/memory/memory_predcit_model.py +0 -0
  195. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/offload.py +0 -0
  196. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/onnx.py +0 -0
  197. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/parallel.py +0 -0
  198. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/platform.py +0 -0
  199. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/prompt.py +0 -0
  200. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine/utils/video.py +0 -0
  201. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
  202. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  203. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine.egg-info/requires.txt +0 -0
  204. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/diffsynth_engine.egg-info/top_level.txt +0 -0
  205. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/docs/tutorial.md +0 -0
  206. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/docs/tutorial_zh.md +0 -0
  207. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/pyproject.toml +0 -0
  208. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/setup.cfg +0 -0
  209. {diffsynth_engine-0.6.1.dev25 → diffsynth_engine-0.6.1.dev27}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev25
3
+ Version: 0.6.1.dev27
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -26,6 +26,8 @@ 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
+ AITER = "aiter" # Aiter Flash Attention
30
+ AITER_FP8 = "aiter_fp8" # Aiter Flash Attention with FP8
29
31
  XFORMERS = "xformers" # XFormers
30
32
  SDPA = "sdpa" # Scaled Dot Product Attention
31
33
  SAGE = "sage" # Sage Attention
@@ -13,6 +13,7 @@ from diffsynth_engine.utils.flag import (
13
13
  SAGE_ATTN_AVAILABLE,
14
14
  SPARGE_ATTN_AVAILABLE,
15
15
  VIDEO_SPARSE_ATTN_AVAILABLE,
16
+ AITER_AVAILABLE,
16
17
  )
17
18
  from diffsynth_engine.utils.platform import DTYPE_FP8
18
19
 
@@ -93,6 +94,9 @@ if SPARGE_ATTN_AVAILABLE:
93
94
  )
94
95
  return out.transpose(1, 2)
95
96
 
97
+ if AITER_AVAILABLE:
98
+ from aiter import flash_attn_func as aiter_flash_attn
99
+ from aiter import flash_attn_fp8_pertensor_func as aiter_flash_attn_fp8
96
100
 
97
101
  if VIDEO_SPARSE_ATTN_AVAILABLE:
98
102
  from diffsynth_engine.models.basic.video_sparse_attention import (
@@ -137,6 +141,8 @@ def attention(
137
141
  "fa2",
138
142
  "fa3",
139
143
  "fa3_fp8",
144
+ "aiter",
145
+ "aiter_fp8",
140
146
  "xformers",
141
147
  "sdpa",
142
148
  "sage",
@@ -157,6 +163,13 @@ def attention(
157
163
  logger.debug(
158
164
  "flash_attn_3 does not support attention mask, will use fallback attention implementation"
159
165
  )
166
+ if AITER_AVAILABLE:
167
+ if flash_attn3_compatible:
168
+ return aiter_flash_attn(q, k, v, softmax_scale=scale)
169
+ else:
170
+ logger.warning(
171
+ f"head_dim={q.shape[-1]}, but aiter_flash_attn only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
172
+ )
160
173
  if XFORMERS_AVAILABLE:
161
174
  return xformers_attn(q, k, v, attn_mask=attn_mask, scale=scale)
162
175
  if SDPA_AVAILABLE:
@@ -183,6 +196,22 @@ def attention(
183
196
  v = v.to(dtype=DTYPE_FP8)
184
197
  out = flash_attn3(q, k, v, softmax_scale=scale)
185
198
  return out.to(dtype=origin_dtype)
199
+ if attn_impl == "aiter" or attn_impl == "aiter_fp8":
200
+ if not flash_attn3_compatible:
201
+ raise RuntimeError(
202
+ f"head_dim={q.shape[-1]}, but aiter_flash_attn only supports head dimension at most {FA3_MAX_HEADDIM}"
203
+ )
204
+ if attn_mask is not None:
205
+ raise RuntimeError("aiter_flash_attn does not support attention mask")
206
+ if attn_impl == "aiter" :
207
+ return aiter_flash_attn(q, k, v, softmax_scale=scale)
208
+ else:
209
+ origin_dtype = q.dtype
210
+ q = q.to(dtype=DTYPE_FP8)
211
+ k = k.to(dtype=DTYPE_FP8)
212
+ v = v.to(dtype=DTYPE_FP8)
213
+ out = aiter_flash_attn_fp8(q, k, v, softmax_scale=scale)
214
+ return out.to(dtype=origin_dtype)
186
215
  if attn_impl == "fa2":
187
216
  return flash_attn2(q, k, v, softmax_scale=scale)
188
217
  if attn_impl == "xformers":
@@ -288,6 +317,8 @@ def long_context_attention(
288
317
  "fa2",
289
318
  "fa3",
290
319
  "fa3_fp8",
320
+ "aiter",
321
+ "aiter_fp8",
291
322
  "sdpa",
292
323
  "sage",
293
324
  "sparge",
@@ -303,6 +334,13 @@ def long_context_attention(
303
334
  logger.warning(
304
335
  f"head_dim={q.shape[-1]}, but flash_attn_3 only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
305
336
  )
337
+ if AITER_AVAILABLE:
338
+ if flash_attn3_compatible:
339
+ return LongContextAttention(attn_type=AttnType.AITER)(q, k, v, softmax_scale=scale)
340
+ else:
341
+ logger.warning(
342
+ f"head_dim={q.shape[-1]}, but aiter_flash_attn only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
343
+ )
306
344
  if SDPA_AVAILABLE:
307
345
  return LongContextAttention(attn_type=AttnType.TORCH)(q, k, v, softmax_scale=scale)
308
346
  if FLASH_ATTN_2_AVAILABLE:
@@ -323,6 +361,20 @@ def long_context_attention(
323
361
  v = v.to(dtype=DTYPE_FP8)
324
362
  out = LongContextAttention(attn_type=AttnType.FA3)(q, k, v, softmax_scale=scale)
325
363
  return out.to(dtype=origin_dtype)
364
+ if attn_impl == "aiter" or attn_impl == "aiter_fp8":
365
+ if not flash_attn3_compatible:
366
+ raise RuntimeError(
367
+ f"head_dim={q.shape[-1]}, but aiter_flash_attn only supports head dimension at most {FA3_MAX_HEADDIM}"
368
+ )
369
+ if attn_impl == "aiter":
370
+ return LongContextAttention(attn_type=AttnType.AITER)(q, k, v, softmax_scale=scale)
371
+
372
+ origin_dtype = q.dtype
373
+ q = q.to(dtype=DTYPE_FP8)
374
+ k = k.to(dtype=DTYPE_FP8)
375
+ v = v.to(dtype=DTYPE_FP8)
376
+ out = LongContextAttention(attn_type=AttnType.AITER)(q, k, v, softmax_scale=scale)
377
+ return out.to(dtype=origin_dtype)
326
378
  if attn_impl == "fa2":
327
379
  return LongContextAttention(attn_type=AttnType.FA)(q, k, v, softmax_scale=scale)
328
380
  if attn_impl == "sdpa":
@@ -656,6 +656,8 @@ class WanSpeech2VideoPipeline(WanVideoPipeline):
656
656
  )
657
657
 
658
658
  with LoRAContext():
659
+ cls._auto_enable_vsa(state_dicts.model, config)
660
+
659
661
  dit = WanS2VDiT.from_state_dict(
660
662
  state_dicts.model,
661
663
  config=model_config,
@@ -4,7 +4,7 @@ from typing import Callable, List, Dict, Tuple, Optional
4
4
  from tqdm import tqdm
5
5
  from PIL import Image
6
6
 
7
- from diffsynth_engine.configs import WanPipelineConfig, WanStateDicts
7
+ from diffsynth_engine.configs import WanPipelineConfig, WanStateDicts, AttnImpl, VideoSparseAttentionParams
8
8
  from diffsynth_engine.algorithm.noise_scheduler.flow_match import RecifitedFlowScheduler
9
9
  from diffsynth_engine.algorithm.sampler import FlowMatchEulerSampler
10
10
  from diffsynth_engine.models.wan.wan_dit import WanDiT
@@ -584,6 +584,8 @@ class WanVideoPipeline(BasePipeline):
584
584
  dit_state_dict = state_dicts.model
585
585
 
586
586
  with LoRAContext():
587
+ cls._auto_enable_vsa(dit_state_dict, config)
588
+
587
589
  dit = WanDiT.from_state_dict(
588
590
  dit_state_dict,
589
591
  config=dit_config,
@@ -668,6 +670,16 @@ class WanVideoPipeline(BasePipeline):
668
670
  vae_type = "wan2.2-vae"
669
671
  return vae_type
670
672
 
673
+ @staticmethod
674
+ def _auto_enable_vsa(state_dict: Dict[str, torch.Tensor], config: WanPipelineConfig):
675
+ def has_any_key(*xs):
676
+ return any(x in state_dict for x in xs)
677
+
678
+ if has_any_key("blocks.0.to_gate_compress.weight", "blocks.0.self_attn.gate_compress.weight"):
679
+ config.dit_attn_impl = AttnImpl.VSA
680
+ if config.attn_params is None:
681
+ config.attn_params = VideoSparseAttentionParams(sparsity=0.9)
682
+
671
683
  def compile(self):
672
684
  self.dit.compile_repeated_blocks()
673
685
  if self.dit2 is not None:
@@ -31,6 +31,11 @@ if SDPA_AVAILABLE:
31
31
  else:
32
32
  logger.info("Torch SDPA is not available")
33
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")
34
39
 
35
40
  # 有损
36
41
  SAGE_ATTN_AVAILABLE = importlib.util.find_spec("sageattention") is not None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev25
3
+ Version: 0.6.1.dev27
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent