diffsynth-engine 0.3.6.dev7__tar.gz → 0.3.6.dev9__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 (162) hide show
  1. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_vae.py +4 -2
  3. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/base.py +10 -3
  4. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/flux_image.py +2 -1
  5. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/fp8_linear.py +14 -5
  6. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/offload.py +1 -1
  7. diffsynth_engine-0.3.6.dev9/diffsynth_engine/utils/platform.py +20 -0
  8. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  9. diffsynth_engine-0.3.6.dev7/diffsynth_engine/utils/platform.py +0 -12
  10. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/.gitignore +0 -0
  11. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/.pre-commit-config.yaml +0 -0
  12. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/LICENSE +0 -0
  13. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/MANIFEST.in +0 -0
  14. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/README.md +0 -0
  15. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/assets/dingtalk.png +0 -0
  16. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/assets/showcase.jpeg +0 -0
  17. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/__init__.py +0 -0
  18. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/__init__.py +0 -0
  19. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  20. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  21. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  22. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  23. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  24. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  25. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  26. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  27. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  28. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  29. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  30. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  31. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  32. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  33. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  34. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  35. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  36. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  37. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  38. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  39. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  40. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  41. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  42. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  43. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  44. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  45. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/components/vae.json +0 -0
  46. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  47. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  48. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  49. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  50. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  51. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  52. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  53. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  54. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  55. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/wan/dit/1.3b-t2v.json +0 -0
  56. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/wan/dit/14b-flf2v.json +0 -0
  57. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/wan/dit/14b-i2v.json +0 -0
  58. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/models/wan/dit/14b-t2v.json +0 -0
  59. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  60. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  61. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  62. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  63. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  64. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  65. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  66. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  67. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  68. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  69. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  70. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  71. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  72. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  73. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  74. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  75. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  76. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  77. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  78. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  79. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/kernels/__init__.py +0 -0
  80. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/__init__.py +0 -0
  81. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/base.py +0 -0
  82. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/__init__.py +0 -0
  83. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/attention.py +0 -0
  84. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/lora.py +0 -0
  85. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  86. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/timestep.py +0 -0
  87. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  88. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  89. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/__init__.py +0 -0
  90. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  91. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  92. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  93. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  94. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  95. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  96. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd/__init__.py +0 -0
  97. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  98. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  99. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  100. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  101. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd3/__init__.py +0 -0
  102. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  103. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  104. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  105. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  106. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  107. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  108. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  109. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  110. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  111. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  112. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  113. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  114. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/utils.py +0 -0
  115. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/vae/__init__.py +0 -0
  116. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/vae/vae.py +0 -0
  117. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/wan/__init__.py +0 -0
  118. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  119. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  120. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  121. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  122. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/__init__.py +0 -0
  123. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/controlnet_helper.py +0 -0
  124. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/sd_image.py +0 -0
  125. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  126. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/pipelines/wan_video.py +0 -0
  127. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/processor/__init__.py +0 -0
  128. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/processor/canny_processor.py +0 -0
  129. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/processor/depth_processor.py +0 -0
  130. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tokenizers/__init__.py +0 -0
  131. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tokenizers/base.py +0 -0
  132. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tokenizers/clip.py +0 -0
  133. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tokenizers/t5.py +0 -0
  134. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tokenizers/wan.py +0 -0
  135. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tools/__init__.py +0 -0
  136. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  137. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  138. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  139. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  140. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/__init__.py +0 -0
  141. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/constants.py +0 -0
  142. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/download.py +0 -0
  143. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/env.py +0 -0
  144. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/flag.py +0 -0
  145. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/gguf.py +0 -0
  146. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/image.py +0 -0
  147. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/loader.py +0 -0
  148. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/lock.py +0 -0
  149. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/logging.py +0 -0
  150. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/onnx.py +0 -0
  151. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/parallel.py +0 -0
  152. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/prompt.py +0 -0
  153. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine/utils/video.py +0 -0
  154. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
  155. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  156. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine.egg-info/requires.txt +0 -0
  157. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/diffsynth_engine.egg-info/top_level.txt +0 -0
  158. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/docs/tutorial.md +0 -0
  159. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/docs/tutorial_zh.md +0 -0
  160. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/pyproject.toml +0 -0
  161. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/setup.cfg +0 -0
  162. {diffsynth_engine-0.3.6.dev7 → diffsynth_engine-0.3.6.dev9}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.3.6.dev7
3
+ Version: 0.3.6.dev9
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -53,7 +53,8 @@ class FluxVAEEncoder(VAEEncoder):
53
53
  def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype):
54
54
  with no_init_weights():
55
55
  model = torch.nn.utils.skip_init(cls, device=device, dtype=dtype)
56
- model.load_state_dict(state_dict)
56
+ model.load_state_dict(state_dict, assign=True)
57
+ model.to(device=device, dtype=dtype, non_blocking=True)
57
58
  return model
58
59
 
59
60
 
@@ -74,5 +75,6 @@ class FluxVAEDecoder(VAEDecoder):
74
75
  def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype):
75
76
  with no_init_weights():
76
77
  model = torch.nn.utils.skip_init(cls, device=device, dtype=dtype)
77
- model.load_state_dict(state_dict)
78
+ model.load_state_dict(state_dict, assign=True)
79
+ model.to(device=device, dtype=dtype, non_blocking=True)
78
80
  return model
@@ -43,6 +43,7 @@ class BasePipeline:
43
43
  self.dtype = dtype
44
44
  self.offload_mode = None
45
45
  self.model_names = []
46
+ self._models_offload_params = {}
46
47
 
47
48
  @classmethod
48
49
  def from_pretrained(
@@ -288,6 +289,10 @@ class BasePipeline:
288
289
  model = getattr(self, model_name)
289
290
  if model is not None:
290
291
  model.to("cpu")
292
+ self._models_offload_params[model_name] = {}
293
+ for name, param in model.named_parameters(recurse=True):
294
+ param.data = param.data.pin_memory()
295
+ self._models_offload_params[model_name][name] = param.data
291
296
  self.offload_mode = "cpu_offload"
292
297
 
293
298
  def _enable_sequential_cpu_offload(self):
@@ -321,12 +326,14 @@ class BasePipeline:
321
326
  for model_name in self.model_names:
322
327
  if model_name not in load_model_names:
323
328
  model = getattr(self, model_name)
324
- if model is not None and (p := next(model.parameters(), None)) is not None and p.device != "cpu":
325
- model.to("cpu")
329
+ if model is not None and (p := next(model.parameters(), None)) is not None and p.device != torch.device("cpu"):
330
+ param_cache = self._models_offload_params[model_name]
331
+ for name, param in model.named_parameters(recurse=True):
332
+ param.data = param_cache[name]
326
333
  # load the needed models to device
327
334
  for model_name in load_model_names:
328
335
  model = getattr(self, model_name)
329
- if model is not None and (p := next(model.parameters(), None)) is not None and p.device != self.device:
336
+ if model is not None and (p := next(model.parameters(), None)) is not None and p.device != torch.device(self.device):
330
337
  model.to(self.device)
331
338
  # fresh the cuda cache
332
339
  empty_cache()
@@ -604,7 +604,8 @@ class FluxImagePipeline(BasePipeline):
604
604
  device=device,
605
605
  dtype=model_config.dit_dtype,
606
606
  )
607
- pipe.enable_cpu_offload(offload_mode)
607
+ if offload_mode is not None:
608
+ pipe.enable_cpu_offload(offload_mode)
608
609
  if model_config.dit_dtype == torch.float8_e4m3fn:
609
610
  pipe.dtype = torch.bfloat16 # running dtype
610
611
  pipe.enable_fp8_autocast(
@@ -2,6 +2,7 @@ import torch
2
2
  import torch.nn as nn
3
3
  import torch.nn.functional as F
4
4
  from contextlib import contextmanager
5
+ from diffsynth_engine.utils.platform import DTYPE_FP8
5
6
 
6
7
 
7
8
  def enable_fp8_autocast(module: nn.Module, compute_dtype: torch.dtype = torch.bfloat16, use_fp8_linear: bool = False):
@@ -51,7 +52,7 @@ def enable_fp8_linear(module: nn.Module):
51
52
  def _enable_fp8_linear(module: nn.Module):
52
53
  if isinstance(module, nn.Linear) and torch.is_floating_point(module.weight.data):
53
54
  # avoid conversion for int weights like GGUF
54
- module.weight.data = module.weight.data.to(torch.float8_e4m3fn)
55
+ module.weight.data = module.weight.data.to(DTYPE_FP8)
55
56
  for submodule in module.children():
56
57
  _enable_fp8_linear(submodule)
57
58
 
@@ -71,8 +72,16 @@ def fp8_inference(enabled=True):
71
72
  ) -> torch.Tensor:
72
73
  device = input.device
73
74
  origin_dtype = input.dtype
74
- input = input.to(torch.float8_e4m3fn)
75
- weight = weight.to(torch.float8_e4m3fn)
75
+ scale_a = 1.0
76
+ # For float8_e4m3fnuz, the maximum representable value is half of that of e4m3fn.
77
+ # To avoid overflow and ensure numerical compatibility during FP8 computation,
78
+ # we scale down the input by 2.0 in advance.
79
+ # This scaling will be compensated later during the final result scaling.
80
+ if DTYPE_FP8 == torch.float8_e4m3fnuz:
81
+ scale_a = 2.0
82
+ input = input / scale_a
83
+ input = input.to(DTYPE_FP8)
84
+ weight = weight.to(DTYPE_FP8)
76
85
 
77
86
  if len(input.shape) > 2:
78
87
  origin_shape = input.shape
@@ -80,7 +89,7 @@ def fp8_inference(enabled=True):
80
89
  result = torch._scaled_mm(
81
90
  input,
82
91
  weight.T,
83
- scale_a=torch.tensor(1.0).to(device=device),
92
+ scale_a=torch.tensor(scale_a).to(device=device),
84
93
  scale_b=torch.tensor(1.0).to(device=device),
85
94
  bias=bias,
86
95
  out_dtype=origin_dtype,
@@ -91,7 +100,7 @@ def fp8_inference(enabled=True):
91
100
  result = torch._scaled_mm(
92
101
  input,
93
102
  weight.T,
94
- scale_a=torch.tensor(1.0).to(device=device),
103
+ scale_a=torch.tensor(scale_a).to(device=device),
95
104
  scale_b=torch.tensor(1.0).to(device=device),
96
105
  bias=bias,
97
106
  out_dtype=origin_dtype,
@@ -18,7 +18,7 @@ def add_cpu_offload_hook(module: nn.Module, device: str = "cuda", recurse: bool
18
18
  def _forward_pre_hook(module: nn.Module, input):
19
19
  offload_params = {}
20
20
  for name, param in module.named_parameters(recurse=recurse):
21
- offload_params[name] = param.data
21
+ offload_params[name] = param.data.pin_memory()
22
22
  param.data = param.data.to(device=device)
23
23
  setattr(module, "_offload_params", offload_params)
24
24
  return tuple(x.to(device=device) if isinstance(x, torch.Tensor) else x for x in input)
@@ -0,0 +1,20 @@
1
+ # cross-platform definitions and utilities
2
+ import torch
3
+ import gc
4
+
5
+
6
+ # data type
7
+ # AMD only supports float8_e4m3fnuz
8
+ # https://onnx.ai/onnx/technical/float8.html
9
+ if torch.version.hip and "gfx94" in torch.cuda.get_device_properties(0).gcnArchName:
10
+ DTYPE_FP8 = torch.float8_e4m3fnuz
11
+ else:
12
+ DTYPE_FP8 = torch.float8_e4m3fn
13
+
14
+
15
+ def empty_cache():
16
+ if torch.cuda.is_available():
17
+ torch.cuda.empty_cache()
18
+ if torch.mps.is_available():
19
+ torch.mps.empty_cache()
20
+ gc.collect()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.3.6.dev7
3
+ Version: 0.3.6.dev9
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -1,12 +0,0 @@
1
- import torch
2
- import gc
3
-
4
- # 存放跨平台的工具类
5
-
6
-
7
- def empty_cache():
8
- if torch.cuda.is_available():
9
- torch.cuda.empty_cache()
10
- if torch.mps.is_available():
11
- torch.mps.empty_cache()
12
- gc.collect()