diffsynth-engine 0.4.2.dev6__tar.gz → 0.4.3__tar.gz

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