diffsynth-engine 0.6.1.dev39__tar.gz → 0.6.1.dev40__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 (222) hide show
  1. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/configs/pipeline.py +1 -0
  3. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/attention.py +31 -1
  4. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/flag.py +6 -0
  5. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  6. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/.gitattributes +0 -0
  7. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/.gitignore +0 -0
  8. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/.pre-commit-config.yaml +0 -0
  9. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/LICENSE +0 -0
  10. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/MANIFEST.in +0 -0
  11. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/README.md +0 -0
  12. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/assets/dingtalk.png +0 -0
  13. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/assets/showcase.jpeg +0 -0
  14. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/assets/tongyi.svg +0 -0
  15. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/__init__.py +0 -0
  16. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/__init__.py +0 -0
  17. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  18. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  19. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  20. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  21. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  22. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  23. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  24. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  25. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  26. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  27. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  28. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  29. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  30. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  31. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  32. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  33. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  34. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  35. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  36. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  37. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  38. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  39. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  40. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  41. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  42. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  43. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/components/vae.json +0 -0
  44. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  45. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  46. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  47. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
  48. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
  49. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
  50. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
  51. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  52. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  53. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  54. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  55. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  56. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  57. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.1_flf2v_14b.json +0 -0
  58. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.1_i2v_14b.json +0 -0
  59. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_1.3b.json +0 -0
  60. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_14b.json +0 -0
  61. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.2_i2v_a14b.json +0 -0
  62. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.2_s2v_14b.json +0 -0
  63. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.2_t2v_a14b.json +0 -0
  64. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan2.2_ti2v_5b.json +0 -0
  65. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/dit/wan_dit_keymap.json +0 -0
  66. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/vae/wan2.1_vae.json +0 -0
  67. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/vae/wan2.2_vae.json +0 -0
  68. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/wan/vae/wan_vae_keymap.json +0 -0
  69. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/models/z_image/qwen3_config.json +0 -0
  70. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  71. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  72. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  73. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  74. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  75. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  76. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  77. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  78. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +0 -0
  79. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
  80. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
  81. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
  82. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
  83. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
  84. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
  85. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  86. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  87. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  88. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  89. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  90. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  91. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  92. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  93. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  94. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  95. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  96. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  97. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/merges.txt +0 -0
  98. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer.json +0 -0
  99. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer_config.json +0 -0
  100. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/vocab.json +0 -0
  101. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/configs/__init__.py +0 -0
  102. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/configs/controlnet.py +0 -0
  103. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/kernels/__init__.py +0 -0
  104. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/__init__.py +0 -0
  105. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/base.py +0 -0
  106. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/__init__.py +0 -0
  107. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/lora.py +0 -0
  108. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/lora_nunchaku.py +0 -0
  109. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  110. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/timestep.py +0 -0
  111. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  112. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  113. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/basic/video_sparse_attention.py +0 -0
  114. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/__init__.py +0 -0
  115. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  116. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  117. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  118. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  119. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  120. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  121. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  122. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/__init__.py +0 -0
  123. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +0 -0
  124. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +0 -0
  125. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +0 -0
  126. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/moe.py +0 -0
  127. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/surface_extractor.py +0 -0
  128. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/hunyuan3d/volume_decoder.py +0 -0
  129. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
  130. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
  131. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +0 -0
  132. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
  133. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/qwen_image_dit_nunchaku.py +0 -0
  134. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
  135. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd/__init__.py +0 -0
  136. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  137. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  138. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  139. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  140. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd3/__init__.py +0 -0
  141. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  142. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  143. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  144. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  145. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  146. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  147. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  148. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  149. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  150. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  151. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  152. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  153. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/vae/__init__.py +0 -0
  154. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/vae/vae.py +0 -0
  155. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/__init__.py +0 -0
  156. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_audio_encoder.py +0 -0
  157. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  158. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  159. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_s2v_dit.py +0 -0
  160. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  161. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  162. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/z_image/__init__.py +0 -0
  163. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/z_image/qwen3.py +0 -0
  164. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/models/z_image/z_image_dit.py +0 -0
  165. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/__init__.py +0 -0
  166. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/base.py +0 -0
  167. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/flux_image.py +0 -0
  168. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/hunyuan3d_shape.py +0 -0
  169. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/qwen_image.py +0 -0
  170. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/sd_image.py +0 -0
  171. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  172. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/utils.py +0 -0
  173. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/wan_dmd.py +0 -0
  174. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/wan_s2v.py +0 -0
  175. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/wan_video.py +0 -0
  176. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/pipelines/z_image.py +0 -0
  177. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/processor/__init__.py +0 -0
  178. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/processor/canny_processor.py +0 -0
  179. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/processor/depth_processor.py +0 -0
  180. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/__init__.py +0 -0
  181. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/base.py +0 -0
  182. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/clip.py +0 -0
  183. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/qwen2.py +0 -0
  184. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +0 -0
  185. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/qwen2_vl_processor.py +0 -0
  186. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/t5.py +0 -0
  187. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tokenizers/wan.py +0 -0
  188. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tools/__init__.py +0 -0
  189. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  190. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  191. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  192. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  193. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/__init__.py +0 -0
  194. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/cache.py +0 -0
  195. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/constants.py +0 -0
  196. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/download.py +0 -0
  197. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/env.py +0 -0
  198. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/fp8_linear.py +0 -0
  199. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/gguf.py +0 -0
  200. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/image.py +0 -0
  201. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/loader.py +0 -0
  202. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/lock.py +0 -0
  203. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/logging.py +0 -0
  204. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/memory/__init__.py +0 -0
  205. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/memory/linear_regression.py +0 -0
  206. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/memory/memory_predcit_model.py +0 -0
  207. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/offload.py +0 -0
  208. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/onnx.py +0 -0
  209. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/parallel.py +0 -0
  210. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/platform.py +0 -0
  211. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/process_group.py +0 -0
  212. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/prompt.py +0 -0
  213. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine/utils/video.py +0 -0
  214. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
  215. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  216. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine.egg-info/requires.txt +0 -0
  217. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/diffsynth_engine.egg-info/top_level.txt +0 -0
  218. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/docs/tutorial.md +0 -0
  219. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/docs/tutorial_zh.md +0 -0
  220. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/pyproject.toml +0 -0
  221. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/setup.cfg +0 -0
  222. {diffsynth_engine-0.6.1.dev39 → diffsynth_engine-0.6.1.dev40}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev39
3
+ Version: 0.6.1.dev40
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -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":
@@ -7,6 +7,12 @@ logger = logging.get_logger(__name__)
7
7
 
8
8
 
9
9
  # 无损
10
+ FLASH_ATTN_4_AVAILABLE = importlib.util.find_spec("flash_attn.cute.interface") is not None
11
+ if FLASH_ATTN_4_AVAILABLE:
12
+ logger.info("Flash attention 4 is available")
13
+ else:
14
+ logger.info("Flash attention 4 is not available")
15
+
10
16
  FLASH_ATTN_3_AVAILABLE = importlib.util.find_spec("flash_attn_interface") is not None
11
17
  if FLASH_ATTN_3_AVAILABLE:
12
18
  logger.info("Flash attention 3 is available")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev39
3
+ Version: 0.6.1.dev40
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent