diffsynth-engine 0.4.2.dev7__tar.gz → 0.4.3.dev2__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 (188) hide show
  1. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/configs/pipeline.py +11 -0
  3. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +2 -2
  4. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/base.py +33 -3
  5. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/qwen_image.py +16 -1
  6. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  7. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/.gitignore +0 -0
  8. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/.pre-commit-config.yaml +0 -0
  9. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/LICENSE +0 -0
  10. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/MANIFEST.in +0 -0
  11. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/README.md +0 -0
  12. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/assets/dingtalk.png +0 -0
  13. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/assets/showcase.jpeg +0 -0
  14. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/__init__.py +0 -0
  15. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/__init__.py +0 -0
  16. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  17. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  18. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  19. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  20. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  21. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  22. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  23. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  24. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  25. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  26. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  27. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  28. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  29. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  30. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  31. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  32. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  33. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  34. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  35. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  36. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  37. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  38. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  39. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  40. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  41. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  42. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/components/vae.json +0 -0
  43. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  44. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  45. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  46. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
  47. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
  48. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
  49. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
  50. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  51. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  52. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  53. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  54. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  55. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  56. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.1-flf2v-14b.json +0 -0
  57. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.1-i2v-14b.json +0 -0
  58. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-1.3b.json +0 -0
  59. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-14b.json +0 -0
  60. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.2-i2v-a14b.json +0 -0
  61. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.2-t2v-a14b.json +0 -0
  62. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/dit/wan2.2-ti2v-5b.json +0 -0
  63. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/vae/wan-vae-keymap.json +0 -0
  64. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/vae/wan2.1-vae.json +0 -0
  65. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/models/wan/vae/wan2.2-vae.json +0 -0
  66. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  67. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  68. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  69. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  70. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  71. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  72. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  73. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  74. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
  75. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
  76. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
  77. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
  78. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
  79. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
  80. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  81. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  82. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  83. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  84. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  85. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  86. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  87. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  88. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  89. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  90. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  91. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  92. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/configs/__init__.py +0 -0
  93. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/configs/controlnet.py +0 -0
  94. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/kernels/__init__.py +0 -0
  95. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/__init__.py +0 -0
  96. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/base.py +0 -0
  97. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/__init__.py +0 -0
  98. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/attention.py +0 -0
  99. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/lora.py +0 -0
  100. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  101. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/timestep.py +0 -0
  102. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  103. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  104. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/__init__.py +0 -0
  105. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  106. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  107. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  108. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  109. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  110. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  111. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  112. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
  113. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
  114. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
  115. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
  116. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd/__init__.py +0 -0
  117. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  118. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  119. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  120. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  121. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd3/__init__.py +0 -0
  122. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  123. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  124. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  125. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  126. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  127. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  128. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  129. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  130. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  131. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  132. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  133. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  134. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/utils.py +0 -0
  135. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/vae/__init__.py +0 -0
  136. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/vae/vae.py +0 -0
  137. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/wan/__init__.py +0 -0
  138. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  139. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  140. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  141. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  142. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/__init__.py +0 -0
  143. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/flux_image.py +0 -0
  144. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/sd_image.py +0 -0
  145. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  146. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/utils.py +0 -0
  147. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/pipelines/wan_video.py +0 -0
  148. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/processor/__init__.py +0 -0
  149. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/processor/canny_processor.py +0 -0
  150. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/processor/depth_processor.py +0 -0
  151. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/__init__.py +0 -0
  152. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/base.py +0 -0
  153. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/clip.py +0 -0
  154. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/qwen2.py +0 -0
  155. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/t5.py +0 -0
  156. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tokenizers/wan.py +0 -0
  157. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tools/__init__.py +0 -0
  158. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  159. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  160. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  161. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  162. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/__init__.py +0 -0
  163. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/cache.py +0 -0
  164. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/constants.py +0 -0
  165. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/download.py +0 -0
  166. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/env.py +0 -0
  167. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/flag.py +0 -0
  168. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/fp8_linear.py +0 -0
  169. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/gguf.py +0 -0
  170. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/image.py +0 -0
  171. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/loader.py +0 -0
  172. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/lock.py +0 -0
  173. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/logging.py +0 -0
  174. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/offload.py +0 -0
  175. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/onnx.py +0 -0
  176. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/parallel.py +0 -0
  177. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/platform.py +0 -0
  178. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/prompt.py +0 -0
  179. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine/utils/video.py +0 -0
  180. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
  181. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  182. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine.egg-info/requires.txt +0 -0
  183. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/diffsynth_engine.egg-info/top_level.txt +0 -0
  184. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/docs/tutorial.md +0 -0
  185. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/docs/tutorial_zh.md +0 -0
  186. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/pyproject.toml +0 -0
  187. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/setup.cfg +0 -0
  188. {diffsynth_engine-0.4.2.dev7 → diffsynth_engine-0.4.3.dev2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.4.2.dev7
3
+ Version: 0.4.3.dev2
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -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,6 +177,7 @@ 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):
@@ -196,6 +205,7 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
196
205
  device: str = "cuda",
197
206
  parallelism: int = 1,
198
207
  offload_mode: Optional[str] = None,
208
+ offload_to_disk: bool = False,
199
209
  ) -> "QwenImagePipelineConfig":
200
210
  return cls(
201
211
  model_path=model_path,
@@ -206,6 +216,7 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
206
216
  use_cfg_parallel=True,
207
217
  use_fsdp=True,
208
218
  offload_mode=offload_mode,
219
+ offload_to_disk=offload_to_disk,
209
220
  )
210
221
 
211
222
  def __post_init__(self):
@@ -48,8 +48,8 @@ class QwenEmbedRope(nn.Module):
48
48
  super().__init__()
49
49
  self.theta = theta
50
50
  self.axes_dim = axes_dim
51
- pos_index = torch.arange(1024)
52
- neg_index = torch.arange(1024).flip(0) * -1 - 1
51
+ pos_index = torch.arange(10000)
52
+ neg_index = torch.arange(10000).flip(0) * -1 - 1
53
53
  self.pos_freqs = torch.cat(
54
54
  [
55
55
  self.rope_params(pos_index, self.axes_dim[0], self.theta),
@@ -41,6 +41,7 @@ class BasePipeline:
41
41
  self.offload_mode = None
42
42
  self.model_names = []
43
43
  self._offload_param_dict = {}
44
+ self.offload_to_disk = False
44
45
 
45
46
  @classmethod
46
47
  def from_pretrained(cls, model_path_or_config: str | BaseConfig) -> "BasePipeline":
@@ -228,17 +229,20 @@ class BasePipeline:
228
229
  model.eval()
229
230
  return self
230
231
 
231
- def enable_cpu_offload(self, offload_mode: str):
232
- valid_offload_mode = ("cpu_offload", "sequential_cpu_offload")
232
+ def enable_cpu_offload(self, offload_mode: str | None, offload_to_disk: bool = False):
233
+ valid_offload_mode = ("cpu_offload", "sequential_cpu_offload", "disable", None)
233
234
  if offload_mode not in valid_offload_mode:
234
235
  raise ValueError(f"offload_mode must be one of {valid_offload_mode}, but got {offload_mode}")
235
236
  if self.device == "cpu" or self.device == "mps":
236
237
  logger.warning("must set an non cpu device for pipeline before calling enable_cpu_offload")
237
238
  return
238
- if offload_mode == "cpu_offload":
239
+ if offload_mode is None or offload_mode == "disable":
240
+ self._disable_offload()
241
+ elif offload_mode == "cpu_offload":
239
242
  self._enable_model_cpu_offload()
240
243
  elif offload_mode == "sequential_cpu_offload":
241
244
  self._enable_sequential_cpu_offload()
245
+ self.offload_to_disk = offload_to_disk
242
246
 
243
247
  def _enable_model_cpu_offload(self):
244
248
  for model_name in self.model_names:
@@ -254,12 +258,21 @@ class BasePipeline:
254
258
  enable_sequential_cpu_offload(model, self.device)
255
259
  self.offload_mode = "sequential_cpu_offload"
256
260
 
261
+ def _disable_offload(self):
262
+ self.offload_mode = None
263
+ self._offload_param_dict = {}
264
+ for model_name in self.model_names:
265
+ model = getattr(self, model_name)
266
+ if model is not None:
267
+ model.to(self.device)
268
+
257
269
  def enable_fp8_autocast(
258
270
  self, model_names: List[str], compute_dtype: torch.dtype = torch.bfloat16, use_fp8_linear: bool = False
259
271
  ):
260
272
  for model_name in model_names:
261
273
  model = getattr(self, model_name)
262
274
  if model is not None:
275
+ model.to(dtype=torch.float8_e4m3fn)
263
276
  enable_fp8_autocast(model, compute_dtype, use_fp8_linear)
264
277
  self.fp8_autocast_enabled = True
265
278
 
@@ -282,10 +295,27 @@ class BasePipeline:
282
295
  # load the needed models to device
283
296
  for model_name in load_model_names:
284
297
  model = getattr(self, model_name)
298
+ if model is None:
299
+ raise ValueError(
300
+ f"model {model_name} is not loaded, maybe this model has been destroyed by model_lifecycle_finish function with offload_to_disk=True"
301
+ )
285
302
  if model is not None and (p := next(model.parameters(), None)) is not None and p.device.type != self.device:
286
303
  model.to(self.device)
287
304
  # fresh the cuda cache
288
305
  empty_cache()
289
306
 
307
+ def model_lifecycle_finish(self, model_names: List[str] | None = None):
308
+ if not self.offload_to_disk or self.offload_mode is None:
309
+ return
310
+ for model_name in model_names:
311
+ model = getattr(self, model_name)
312
+ del model
313
+ if model_name in self._offload_param_dict:
314
+ del self._offload_param_dict[model_name]
315
+ setattr(self, model_name, None)
316
+ print(f"model {model_name} has been deleted from memory")
317
+ logger.info(f"model {model_name} has been deleted from memory")
318
+ empty_cache()
319
+
290
320
  def compile(self):
291
321
  raise NotImplementedError(f"{self.__class__.__name__} does not support compile")
@@ -208,7 +208,19 @@ class QwenImagePipeline(BasePipeline):
208
208
  pipe.eval()
209
209
 
210
210
  if config.offload_mode is not None:
211
- pipe.enable_cpu_offload(config.offload_mode)
211
+ pipe.enable_cpu_offload(config.offload_mode, config.offload_to_disk)
212
+
213
+ if config.model_dtype == torch.float8_e4m3fn:
214
+ pipe.dtype = torch.bfloat16 # compute dtype
215
+ pipe.enable_fp8_autocast(
216
+ model_names=["dit"], compute_dtype=pipe.dtype, use_fp8_linear=config.use_fp8_linear
217
+ )
218
+
219
+ if config.encoder_dtype == torch.float8_e4m3fn:
220
+ pipe.dtype = torch.bfloat16 # compute dtype
221
+ pipe.enable_fp8_autocast(
222
+ model_names=["encoder"], compute_dtype=pipe.dtype, use_fp8_linear=config.use_fp8_linear
223
+ )
212
224
 
213
225
  if config.parallelism > 1:
214
226
  pipe = ParallelWrapper(
@@ -393,6 +405,7 @@ class QwenImagePipeline(BasePipeline):
393
405
  negative_prompt_embeds, negative_prompt_embeds_mask = self.encode_prompt(negative_prompt, 1, 4096)
394
406
  else:
395
407
  negative_prompt_embeds, negative_prompt_embeds_mask = None, None
408
+ self.model_lifecycle_finish(["encoder"])
396
409
 
397
410
  hide_progress = dist.is_initialized() and dist.get_rank() != 0
398
411
  for i, timestep in enumerate(tqdm(timesteps, disable=hide_progress)):
@@ -412,6 +425,7 @@ class QwenImagePipeline(BasePipeline):
412
425
  # UI
413
426
  if progress_callback is not None:
414
427
  progress_callback(i, len(timesteps), "DENOISING")
428
+ self.model_lifecycle_finish(["dit"])
415
429
  # Decode image
416
430
  self.load_models_to_device(["vae"])
417
431
  latents = rearrange(latents, "B C H W -> B C 1 H W")
@@ -423,5 +437,6 @@ class QwenImagePipeline(BasePipeline):
423
437
  )
424
438
  image = self.vae_output_to_image(vae_output)
425
439
  # Offload all models
440
+ self.model_lifecycle_finish(["vae"])
426
441
  self.load_models_to_device([])
427
442
  return image
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.4.2.dev7
3
+ Version: 0.4.3.dev2
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent