diffsynth-engine 0.3.6.dev11__tar.gz → 0.3.6.dev13__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 (165) hide show
  1. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/__init__.py +3 -1
  3. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/configs/__init__.py +2 -1
  4. diffsynth_engine-0.3.6.dev11/diffsynth_engine/pipelines/controlnet_helper.py → diffsynth_engine-0.3.6.dev13/diffsynth_engine/configs/controlnet.py +19 -9
  5. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/attention.py +53 -33
  6. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/__init__.py +0 -2
  7. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/flux_image.py +2 -2
  8. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/sd_image.py +2 -2
  9. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/sdxl_image.py +2 -2
  10. diffsynth_engine-0.3.6.dev13/diffsynth_engine/pipelines/utils.py +6 -0
  11. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  12. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine.egg-info/SOURCES.txt +1 -1
  13. diffsynth_engine-0.3.6.dev11/diffsynth_engine/configs/controlnet.py +0 -17
  14. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/.gitignore +0 -0
  15. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/.pre-commit-config.yaml +0 -0
  16. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/LICENSE +0 -0
  17. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/MANIFEST.in +0 -0
  18. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/README.md +0 -0
  19. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/assets/dingtalk.png +0 -0
  20. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/assets/showcase.jpeg +0 -0
  21. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/__init__.py +0 -0
  22. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  23. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  24. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  25. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  26. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  27. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  28. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  29. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  30. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  31. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  32. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  33. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  34. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  35. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  36. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  37. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  38. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  39. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  40. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  41. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  42. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  43. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  44. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  45. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  46. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  47. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  48. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/components/vae.json +0 -0
  49. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  50. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  51. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  52. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  53. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  54. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  55. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  56. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  57. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  58. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/wan/dit/1.3b-t2v.json +0 -0
  59. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/wan/dit/14b-flf2v.json +0 -0
  60. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/wan/dit/14b-i2v.json +0 -0
  61. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/models/wan/dit/14b-t2v.json +0 -0
  62. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  63. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  64. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  65. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  66. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  67. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  68. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  69. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  70. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  71. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  72. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  73. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  74. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  75. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  76. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  77. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  78. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  79. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  80. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  81. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  82. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/configs/pipeline.py +0 -0
  83. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/kernels/__init__.py +0 -0
  84. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/__init__.py +0 -0
  85. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/base.py +0 -0
  86. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/__init__.py +0 -0
  87. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/lora.py +0 -0
  88. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  89. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/timestep.py +0 -0
  90. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  91. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  92. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/__init__.py +0 -0
  93. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  94. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  95. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  96. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  97. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  98. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  99. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  100. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd/__init__.py +0 -0
  101. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  102. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  103. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  104. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  105. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd3/__init__.py +0 -0
  106. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  107. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  108. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  109. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  110. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  111. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  112. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  113. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  114. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  115. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  116. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  117. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  118. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/utils.py +0 -0
  119. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/vae/__init__.py +0 -0
  120. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/vae/vae.py +0 -0
  121. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/wan/__init__.py +0 -0
  122. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  123. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  124. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  125. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  126. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/base.py +0 -0
  127. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/pipelines/wan_video.py +0 -0
  128. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/processor/__init__.py +0 -0
  129. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/processor/canny_processor.py +0 -0
  130. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/processor/depth_processor.py +0 -0
  131. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tokenizers/__init__.py +0 -0
  132. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tokenizers/base.py +0 -0
  133. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tokenizers/clip.py +0 -0
  134. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tokenizers/t5.py +0 -0
  135. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tokenizers/wan.py +0 -0
  136. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tools/__init__.py +0 -0
  137. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  138. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  139. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  140. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  141. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/__init__.py +0 -0
  142. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/constants.py +0 -0
  143. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/download.py +0 -0
  144. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/env.py +0 -0
  145. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/flag.py +0 -0
  146. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/fp8_linear.py +0 -0
  147. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/gguf.py +0 -0
  148. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/image.py +0 -0
  149. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/loader.py +0 -0
  150. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/lock.py +0 -0
  151. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/logging.py +0 -0
  152. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/offload.py +0 -0
  153. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/onnx.py +0 -0
  154. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/parallel.py +0 -0
  155. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/platform.py +0 -0
  156. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/prompt.py +0 -0
  157. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine/utils/video.py +0 -0
  158. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  159. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine.egg-info/requires.txt +0 -0
  160. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/diffsynth_engine.egg-info/top_level.txt +0 -0
  161. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/docs/tutorial.md +0 -0
  162. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/docs/tutorial_zh.md +0 -0
  163. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/pyproject.toml +0 -0
  164. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/setup.cfg +0 -0
  165. {diffsynth_engine-0.3.6.dev11 → diffsynth_engine-0.3.6.dev13}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.3.6.dev11
3
+ Version: 0.3.6.dev13
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -3,13 +3,14 @@ from .configs import (
3
3
  SDXLPipelineConfig,
4
4
  FluxPipelineConfig,
5
5
  WanPipelineConfig,
6
+ ControlNetParams,
7
+ ControlType,
6
8
  )
7
9
  from .pipelines import (
8
10
  FluxImagePipeline,
9
11
  SDXLImagePipeline,
10
12
  SDImagePipeline,
11
13
  WanVideoPipeline,
12
- ControlNetParams,
13
14
  )
14
15
  from .models.flux import FluxControlNet, FluxIPAdapter, FluxRedux
15
16
  from .models.sd import SDControlNet
@@ -44,6 +45,7 @@ __all__ = [
44
45
  "FluxReplaceByControlTool",
45
46
  "FluxReduxRefTool",
46
47
  "ControlNetParams",
48
+ "ControlType",
47
49
  "fetch_model",
48
50
  "fetch_modelscope_model",
49
51
  "fetch_civitai_model",
@@ -8,7 +8,7 @@ from .pipeline import (
8
8
  FluxPipelineConfig,
9
9
  WanPipelineConfig,
10
10
  )
11
- from .controlnet import ControlType
11
+ from .controlnet import ControlType, ControlNetParams
12
12
 
13
13
  __all__ = [
14
14
  "BaseConfig",
@@ -20,4 +20,5 @@ __all__ = [
20
20
  "FluxPipelineConfig",
21
21
  "WanPipelineConfig",
22
22
  "ControlType",
23
+ "ControlNetParams",
23
24
  ]
@@ -1,12 +1,30 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum
3
+
1
4
  import torch
2
5
  import torch.nn as nn
3
6
  from typing import List, Union, Optional
4
7
  from PIL import Image
5
- from dataclasses import dataclass
6
8
 
7
9
  ImageType = Union[Image.Image, torch.Tensor, List[Image.Image], List[torch.Tensor]]
8
10
 
9
11
 
12
+ # FLUX ControlType
13
+ class ControlType(Enum):
14
+ normal = "normal"
15
+ bfl_control = "bfl_control"
16
+ bfl_fill = "bfl_fill"
17
+ bfl_kontext = "bfl_kontext"
18
+
19
+ def get_in_channel(self):
20
+ if self in [ControlType.normal, ControlType.bfl_kontext]:
21
+ return 64
22
+ elif self == ControlType.bfl_control:
23
+ return 128
24
+ elif self == ControlType.bfl_fill:
25
+ return 384
26
+
27
+
10
28
  @dataclass
11
29
  class ControlNetParams:
12
30
  image: ImageType
@@ -16,11 +34,3 @@ class ControlNetParams:
16
34
  control_start: float = 0
17
35
  control_end: float = 1
18
36
  processor_name: Optional[str] = None # only used for sdxl controlnet union now
19
-
20
-
21
- def accumulate(result, new_item):
22
- if result is None:
23
- return new_item
24
- for i, item in enumerate(new_item):
25
- result[i] += item
26
- return result
@@ -14,6 +14,8 @@ from diffsynth_engine.utils.flag import (
14
14
  SPARGE_ATTN_AVAILABLE,
15
15
  )
16
16
 
17
+ FA3_MAX_HEADDIM = 256
18
+
17
19
  logger = logging.get_logger(__name__)
18
20
 
19
21
 
@@ -130,31 +132,40 @@ def attention(
130
132
  "sage_attn",
131
133
  "sparge_attn",
132
134
  ]
135
+ flash_attn3_compatible = q.shape[-1] <= FA3_MAX_HEADDIM
133
136
  if attn_impl is None or attn_impl == "auto":
134
137
  if FLASH_ATTN_3_AVAILABLE:
135
- return flash_attn3(q, k, v, softmax_scale=scale)
136
- elif XFORMERS_AVAILABLE:
138
+ if flash_attn3_compatible:
139
+ return flash_attn3(q, k, v, softmax_scale=scale)
140
+ else:
141
+ logger.warning(
142
+ f"head_dim={q.shape[-1]}, but flash_attn_3 only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
143
+ )
144
+ if XFORMERS_AVAILABLE:
137
145
  return xformers_attn(q, k, v, attn_mask=attn_mask, scale=scale)
138
- elif SDPA_AVAILABLE:
146
+ if SDPA_AVAILABLE:
139
147
  return sdpa_attn(q, k, v, attn_mask=attn_mask, scale=scale)
140
- elif FLASH_ATTN_2_AVAILABLE:
148
+ if FLASH_ATTN_2_AVAILABLE:
141
149
  return flash_attn2(q, k, v, softmax_scale=scale)
142
- else:
143
- return eager_attn(q, k, v, attn_mask=attn_mask, scale=scale)
150
+ return eager_attn(q, k, v, attn_mask=attn_mask, scale=scale)
144
151
  else:
145
152
  if attn_impl == "eager":
146
153
  return eager_attn(q, k, v, attn_mask=attn_mask, scale=scale)
147
- elif attn_impl == "flash_attn_3":
154
+ if attn_impl == "flash_attn_3":
155
+ if not flash_attn3_compatible:
156
+ raise RuntimeError(
157
+ f"head_dim={q.shape[-1]}, but flash_attn_3 only supports head dimension at most {FA3_MAX_HEADDIM}"
158
+ )
148
159
  return flash_attn3(q, k, v, softmax_scale=scale)
149
- elif attn_impl == "flash_attn_2":
160
+ if attn_impl == "flash_attn_2":
150
161
  return flash_attn2(q, k, v, softmax_scale=scale)
151
- elif attn_impl == "xformers":
162
+ if attn_impl == "xformers":
152
163
  return xformers_attn(q, k, v, attn_mask=attn_mask, scale=scale)
153
- elif attn_impl == "sdpa":
164
+ if attn_impl == "sdpa":
154
165
  return sdpa_attn(q, k, v, attn_mask=attn_mask, scale=scale)
155
- elif attn_impl == "sage_attn":
166
+ if attn_impl == "sage_attn":
156
167
  return sage_attn(q, k, v, attn_mask=attn_mask, scale=scale)
157
- elif attn_impl == "sparge_attn":
168
+ if attn_impl == "sparge_attn":
158
169
  return sparge_attn(
159
170
  q,
160
171
  k,
@@ -166,8 +177,7 @@ def attention(
166
177
  cdfthreshd=kwargs.get("sparge_cdfthreshd", 0.98),
167
178
  pvthreshd=kwargs.get("sparge_pvthreshd", 50),
168
179
  )
169
- else:
170
- raise ValueError(f"Invalid attention implementation: {attn_impl}")
180
+ raise ValueError(f"Invalid attention implementation: {attn_impl}")
171
181
 
172
182
 
173
183
  class Attention(nn.Module):
@@ -240,32 +250,42 @@ def long_context_attention(
240
250
  "sage_attn",
241
251
  "sparge_attn",
242
252
  ]
253
+ flash_attn3_compatible = q.shape[-1] <= FA3_MAX_HEADDIM
243
254
  if attn_impl is None or attn_impl == "auto":
244
255
  if FLASH_ATTN_3_AVAILABLE:
245
- attn_func = LongContextAttention(attn_type=AttnType.FA3)
246
- elif SDPA_AVAILABLE:
247
- attn_func = LongContextAttention(attn_type=AttnType.TORCH)
248
- elif FLASH_ATTN_2_AVAILABLE:
249
- attn_func = LongContextAttention(attn_type=AttnType.FA)
250
- else:
251
- raise ValueError("No available long context attention implementation")
256
+ if flash_attn3_compatible:
257
+ return LongContextAttention(attn_type=AttnType.FA3)(q, k, v, softmax_scale=scale)
258
+ else:
259
+ logger.warning(
260
+ f"head_dim={q.shape[-1]}, but flash_attn_3 only supports head dimension at most {FA3_MAX_HEADDIM}, will use fallback attention implementation"
261
+ )
262
+ if SDPA_AVAILABLE:
263
+ return LongContextAttention(attn_type=AttnType.TORCH)(q, k, v, softmax_scale=scale)
264
+ if FLASH_ATTN_2_AVAILABLE:
265
+ return LongContextAttention(attn_type=AttnType.FA)(q, k, v, softmax_scale=scale)
266
+ raise ValueError("No available long context attention implementation")
252
267
  else:
253
268
  if attn_impl == "flash_attn_3":
254
- attn_func = LongContextAttention(attn_type=AttnType.FA3)
255
- elif attn_impl == "flash_attn_2":
256
- attn_func = LongContextAttention(attn_type=AttnType.FA)
257
- elif attn_impl == "sdpa":
258
- attn_func = LongContextAttention(attn_type=AttnType.TORCH)
259
- elif attn_impl == "sage_attn":
260
- attn_func = LongContextAttention(attn_type=AttnType.SAGE_FP8)
261
- elif attn_impl == "sparge_attn":
269
+ if flash_attn3_compatible:
270
+ return LongContextAttention(attn_type=AttnType.FA3)(q, k, v, softmax_scale=scale)
271
+ else:
272
+ raise RuntimeError(
273
+ f"head_dim={q.shape[-1]}, but flash_attn_3 only supports head dimension at most {FA3_MAX_HEADDIM}"
274
+ )
275
+ if attn_impl == "flash_attn_2":
276
+ return LongContextAttention(attn_type=AttnType.FA)(q, k, v, softmax_scale=scale)
277
+ if attn_impl == "sdpa":
278
+ return LongContextAttention(attn_type=AttnType.TORCH)(q, k, v, softmax_scale=scale)
279
+ if attn_impl == "sage_attn":
280
+ return LongContextAttention(attn_type=AttnType.SAGE_FP8)(q, k, v, softmax_scale=scale)
281
+ if attn_impl == "sparge_attn":
262
282
  attn_processor = SparseAttentionMeansim()
263
283
  # default args from spas_sage2_attn_meansim_cuda
264
284
  attn_processor.smooth_k = torch.tensor(kwargs.get("sparge_smooth_k", True))
265
285
  attn_processor.simthreshd1 = torch.tensor(kwargs.get("sparge_simthreshd1", 0.6))
266
286
  attn_processor.cdfthreshd = torch.tensor(kwargs.get("sparge_cdfthreshd", 0.98))
267
287
  attn_processor.pvthreshd = torch.tensor(kwargs.get("sparge_pvthreshd", 50))
268
- attn_func = LongContextAttention(attn_type=AttnType.SPARSE_SAGE, attn_processor=attn_processor)
269
- else:
270
- raise ValueError(f"Invalid long context attention implementation: {attn_impl}")
271
- return attn_func(q, k, v, softmax_scale=scale)
288
+ return LongContextAttention(attn_type=AttnType.SPARSE_SAGE, attn_processor=attn_processor)(
289
+ q, k, v, softmax_scale=scale
290
+ )
291
+ raise ValueError(f"Invalid long context attention implementation: {attn_impl}")
@@ -1,5 +1,4 @@
1
1
  from .base import BasePipeline, LoRAStateDictConverter
2
- from .controlnet_helper import ControlNetParams
3
2
  from .flux_image import FluxImagePipeline
4
3
  from .sdxl_image import SDXLImagePipeline
5
4
  from .sd_image import SDImagePipeline
@@ -13,5 +12,4 @@ __all__ = [
13
12
  "SDXLImagePipeline",
14
13
  "SDImagePipeline",
15
14
  "WanVideoPipeline",
16
- "ControlNetParams",
17
15
  ]
@@ -17,10 +17,10 @@ from diffsynth_engine.models.flux import (
17
17
  flux_dit_config,
18
18
  flux_text_encoder_config,
19
19
  )
20
- from diffsynth_engine.configs import FluxPipelineConfig, ControlType
20
+ from diffsynth_engine.configs import FluxPipelineConfig, ControlType, ControlNetParams
21
21
  from diffsynth_engine.models.basic.lora import LoRAContext
22
22
  from diffsynth_engine.pipelines import BasePipeline, LoRAStateDictConverter
23
- from diffsynth_engine.pipelines.controlnet_helper import ControlNetParams, accumulate
23
+ from diffsynth_engine.pipelines.utils import accumulate
24
24
  from diffsynth_engine.tokenizers import CLIPTokenizer, T5TokenizerFast
25
25
  from diffsynth_engine.algorithm.noise_scheduler import RecifitedFlowScheduler
26
26
  from diffsynth_engine.algorithm.sampler import FlowMatchEulerSampler
@@ -6,12 +6,12 @@ from typing import Callable, Dict, Optional, List
6
6
  from tqdm import tqdm
7
7
  from PIL import Image, ImageOps
8
8
 
9
- from diffsynth_engine.configs import SDPipelineConfig
9
+ from diffsynth_engine.configs import SDPipelineConfig, ControlNetParams
10
10
  from diffsynth_engine.models.base import split_suffix
11
11
  from diffsynth_engine.models.basic.lora import LoRAContext
12
12
  from diffsynth_engine.models.sd import SDTextEncoder, SDVAEDecoder, SDVAEEncoder, SDUNet, sd_unet_config
13
13
  from diffsynth_engine.pipelines import BasePipeline, LoRAStateDictConverter
14
- from diffsynth_engine.pipelines.controlnet_helper import ControlNetParams, accumulate
14
+ from diffsynth_engine.pipelines.utils import accumulate
15
15
  from diffsynth_engine.tokenizers import CLIPTokenizer
16
16
  from diffsynth_engine.algorithm.noise_scheduler import ScaledLinearScheduler
17
17
  from diffsynth_engine.algorithm.sampler import EulerSampler
@@ -6,7 +6,7 @@ from typing import Callable, Dict, Optional, List
6
6
  from tqdm import tqdm
7
7
  from PIL import Image, ImageOps
8
8
 
9
- from diffsynth_engine.configs import SDXLPipelineConfig
9
+ from diffsynth_engine.configs import SDXLPipelineConfig, ControlNetParams
10
10
  from diffsynth_engine.models.base import split_suffix
11
11
  from diffsynth_engine.models.basic.lora import LoRAContext
12
12
  from diffsynth_engine.models.basic.timestep import TemporalTimesteps
@@ -19,7 +19,7 @@ from diffsynth_engine.models.sdxl import (
19
19
  sdxl_unet_config,
20
20
  )
21
21
  from diffsynth_engine.pipelines import BasePipeline, LoRAStateDictConverter
22
- from diffsynth_engine.pipelines.controlnet_helper import ControlNetParams, accumulate
22
+ from diffsynth_engine.pipelines.utils import accumulate
23
23
  from diffsynth_engine.tokenizers import CLIPTokenizer
24
24
  from diffsynth_engine.algorithm.noise_scheduler import ScaledLinearScheduler
25
25
  from diffsynth_engine.algorithm.sampler import EulerSampler
@@ -0,0 +1,6 @@
1
+ def accumulate(result, new_item):
2
+ if result is None:
3
+ return new_item
4
+ for i, item in enumerate(new_item):
5
+ result[i] += item
6
+ return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.3.6.dev11
3
+ Version: 0.3.6.dev13
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -123,10 +123,10 @@ diffsynth_engine/models/wan/wan_text_encoder.py
123
123
  diffsynth_engine/models/wan/wan_vae.py
124
124
  diffsynth_engine/pipelines/__init__.py
125
125
  diffsynth_engine/pipelines/base.py
126
- diffsynth_engine/pipelines/controlnet_helper.py
127
126
  diffsynth_engine/pipelines/flux_image.py
128
127
  diffsynth_engine/pipelines/sd_image.py
129
128
  diffsynth_engine/pipelines/sdxl_image.py
129
+ diffsynth_engine/pipelines/utils.py
130
130
  diffsynth_engine/pipelines/wan_video.py
131
131
  diffsynth_engine/processor/__init__.py
132
132
  diffsynth_engine/processor/canny_processor.py
@@ -1,17 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- # FLUX ControlType
5
- class ControlType(Enum):
6
- normal = "normal"
7
- bfl_control = "bfl_control"
8
- bfl_fill = "bfl_fill"
9
- bfl_kontext = "bfl_kontext"
10
-
11
- def get_in_channel(self):
12
- if self in [ControlType.normal, ControlType.bfl_kontext]:
13
- return 64
14
- elif self == ControlType.bfl_control:
15
- return 128
16
- elif self == ControlType.bfl_fill:
17
- return 384