diffsynth-engine 0.4.2.dev5__tar.gz → 0.4.2.dev7__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.dev5 → diffsynth_engine-0.4.2.dev7}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +4 -0
  3. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/base.py +6 -14
  4. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/qwen_image.py +17 -4
  5. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/wan_video.py +7 -0
  6. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/offload.py +23 -0
  7. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  8. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/docs/tutorial.md +1 -2
  9. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/docs/tutorial_zh.md +9 -8
  10. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/.gitignore +0 -0
  11. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/.pre-commit-config.yaml +0 -0
  12. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/LICENSE +0 -0
  13. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/MANIFEST.in +0 -0
  14. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/README.md +0 -0
  15. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/assets/dingtalk.png +0 -0
  16. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/assets/showcase.jpeg +0 -0
  17. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/__init__.py +0 -0
  18. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/__init__.py +0 -0
  19. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  20. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  21. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  22. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  23. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  24. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  25. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  26. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  27. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  28. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  29. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  30. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  31. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  32. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  33. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  34. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  35. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  36. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  37. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  38. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  39. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  40. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  41. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  42. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  43. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  44. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  45. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/components/vae.json +0 -0
  46. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  47. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  48. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  49. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
  50. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
  51. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
  52. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
  53. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  54. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  55. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  56. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  57. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  58. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  59. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.1-flf2v-14b.json +0 -0
  60. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.1-i2v-14b.json +0 -0
  61. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-1.3b.json +0 -0
  62. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-14b.json +0 -0
  63. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.2-i2v-a14b.json +0 -0
  64. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.2-t2v-a14b.json +0 -0
  65. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/dit/wan2.2-ti2v-5b.json +0 -0
  66. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/vae/wan-vae-keymap.json +0 -0
  67. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/vae/wan2.1-vae.json +0 -0
  68. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/models/wan/vae/wan2.2-vae.json +0 -0
  69. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  70. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  71. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  72. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  73. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  74. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  75. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  76. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  77. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
  78. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
  79. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
  80. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
  81. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
  82. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
  83. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  84. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  85. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  86. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  87. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  88. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  89. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  90. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  91. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  92. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  93. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  94. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  95. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/configs/__init__.py +0 -0
  96. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/configs/controlnet.py +0 -0
  97. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/configs/pipeline.py +0 -0
  98. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/kernels/__init__.py +0 -0
  99. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/__init__.py +0 -0
  100. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/base.py +0 -0
  101. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/__init__.py +0 -0
  102. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/attention.py +0 -0
  103. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/lora.py +0 -0
  104. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  105. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/timestep.py +0 -0
  106. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  107. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  108. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/__init__.py +0 -0
  109. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  110. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  111. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  112. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  113. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  114. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  115. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  116. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
  117. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
  118. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
  119. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
  120. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd/__init__.py +0 -0
  121. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  122. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  123. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  124. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  125. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd3/__init__.py +0 -0
  126. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  127. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  128. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  129. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  130. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  131. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  132. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  133. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  134. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  135. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  136. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  137. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  138. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/utils.py +0 -0
  139. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/vae/__init__.py +0 -0
  140. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/vae/vae.py +0 -0
  141. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/wan/__init__.py +0 -0
  142. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  143. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  144. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  145. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  146. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/__init__.py +0 -0
  147. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/flux_image.py +0 -0
  148. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/sd_image.py +0 -0
  149. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  150. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/pipelines/utils.py +0 -0
  151. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/processor/__init__.py +0 -0
  152. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/processor/canny_processor.py +0 -0
  153. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/processor/depth_processor.py +0 -0
  154. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/__init__.py +0 -0
  155. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/base.py +0 -0
  156. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/clip.py +0 -0
  157. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/qwen2.py +0 -0
  158. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/t5.py +0 -0
  159. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tokenizers/wan.py +0 -0
  160. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tools/__init__.py +0 -0
  161. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  162. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  163. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  164. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  165. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/__init__.py +0 -0
  166. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/cache.py +0 -0
  167. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/constants.py +0 -0
  168. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/download.py +0 -0
  169. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/env.py +0 -0
  170. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/flag.py +0 -0
  171. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/fp8_linear.py +0 -0
  172. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/gguf.py +0 -0
  173. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/image.py +0 -0
  174. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/loader.py +0 -0
  175. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/lock.py +0 -0
  176. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/logging.py +0 -0
  177. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/onnx.py +0 -0
  178. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/parallel.py +0 -0
  179. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/platform.py +0 -0
  180. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/prompt.py +0 -0
  181. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine/utils/video.py +0 -0
  182. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
  183. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  184. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine.egg-info/requires.txt +0 -0
  185. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/diffsynth_engine.egg-info/top_level.txt +0 -0
  186. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/pyproject.toml +0 -0
  187. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/setup.cfg +0 -0
  188. {diffsynth_engine-0.4.2.dev5 → diffsynth_engine-0.4.2.dev7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.4.2.dev5
3
+ Version: 0.4.2.dev7
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -315,6 +315,7 @@ class QwenImageTransformerBlock(nn.Module):
315
315
 
316
316
  class QwenImageDiT(PreTrainedModel):
317
317
  converter = QwenImageDiTStateDictConverter()
318
+ _supports_parallelization = True
318
319
 
319
320
  def __init__(
320
321
  self,
@@ -423,3 +424,6 @@ class QwenImageDiT(PreTrainedModel):
423
424
  model.load_state_dict(state_dict, assign=True)
424
425
  model.to(device=device, dtype=dtype, non_blocking=True)
425
426
  return model
427
+
428
+ def get_fsdp_modules(self):
429
+ return ["transformer_blocks"]
@@ -6,7 +6,7 @@ from typing import Dict, List, Tuple
6
6
  from PIL import Image
7
7
 
8
8
  from diffsynth_engine.configs import BaseConfig, BaseStateDicts
9
- from diffsynth_engine.utils.offload import enable_sequential_cpu_offload
9
+ from diffsynth_engine.utils.offload import enable_sequential_cpu_offload, offload_model_to_dict, restore_model_from_dict
10
10
  from diffsynth_engine.utils.fp8_linear import enable_fp8_autocast
11
11
  from diffsynth_engine.utils.gguf import load_gguf_checkpoint
12
12
  from diffsynth_engine.utils import logging
@@ -40,6 +40,7 @@ class BasePipeline:
40
40
  self.dtype = dtype
41
41
  self.offload_mode = None
42
42
  self.model_names = []
43
+ self._offload_param_dict = {}
43
44
 
44
45
  @classmethod
45
46
  def from_pretrained(cls, model_path_or_config: str | BaseConfig) -> "BasePipeline":
@@ -243,14 +244,13 @@ class BasePipeline:
243
244
  for model_name in self.model_names:
244
245
  model = getattr(self, model_name)
245
246
  if model is not None:
246
- model.to("cpu")
247
+ self._offload_param_dict[model_name] = offload_model_to_dict(model)
247
248
  self.offload_mode = "cpu_offload"
248
249
 
249
250
  def _enable_sequential_cpu_offload(self):
250
251
  for model_name in self.model_names:
251
252
  model = getattr(self, model_name)
252
253
  if model is not None:
253
- model.to("cpu")
254
254
  enable_sequential_cpu_offload(model, self.device)
255
255
  self.offload_mode = "sequential_cpu_offload"
256
256
 
@@ -277,20 +277,12 @@ class BasePipeline:
277
277
  for model_name in self.model_names:
278
278
  if model_name not in load_model_names:
279
279
  model = getattr(self, model_name)
280
- if (
281
- model is not None
282
- and (p := next(model.parameters(), None)) is not None
283
- and p.device != torch.device("cpu")
284
- ):
285
- model.to("cpu")
280
+ if model is not None and (p := next(model.parameters(), None)) is not None and p.device.type != "cpu":
281
+ restore_model_from_dict(model, self._offload_param_dict[model_name])
286
282
  # load the needed models to device
287
283
  for model_name in load_model_names:
288
284
  model = getattr(self, model_name)
289
- if (
290
- model is not None
291
- and (p := next(model.parameters(), None)) is not None
292
- and p.device != torch.device(self.device)
293
- ):
285
+ if model is not None and (p := next(model.parameters(), None)) is not None and p.device.type != self.device:
294
286
  model.to(self.device)
295
287
  # fresh the cuda cache
296
288
  empty_cache()
@@ -41,19 +41,32 @@ class QwenImageLoRAConverter(LoRAStateDictConverter):
41
41
  dit_dict = {}
42
42
  for key, param in lora_state_dict.items():
43
43
  origin_key = key
44
- if "lora_A.default.weight" not in key:
44
+ lora_a_suffix = None
45
+ if "lora_A.default.weight" in key:
46
+ lora_a_suffix = "lora_A.default.weight"
47
+ elif "lora_A.weight" in key:
48
+ lora_a_suffix = "lora_A.weight"
49
+
50
+ if lora_a_suffix is None:
45
51
  continue
52
+
46
53
  lora_args = {}
47
54
  lora_args["down"] = param
48
- lora_args["up"] = lora_state_dict[origin_key.replace("lora_A.default.weight", "lora_B.default.weight")]
55
+
56
+ lora_b_suffix = lora_a_suffix.replace("lora_A", "lora_B")
57
+ lora_args["up"] = lora_state_dict[origin_key.replace(lora_a_suffix, lora_b_suffix)]
58
+
49
59
  lora_args["rank"] = lora_args["up"].shape[1]
50
- alpha_key = origin_key.replace("lora_A.default.weight", "alpha").replace("lora_up.default.weight", "alpha")
60
+ alpha_key = origin_key.replace("lora_up", "lora_A").replace(lora_a_suffix, "alpha")
61
+
51
62
  if alpha_key in lora_state_dict:
52
63
  alpha = lora_state_dict[alpha_key]
53
64
  else:
54
65
  alpha = lora_args["rank"]
55
66
  lora_args["alpha"] = alpha
56
- key = key.replace(".lora_A.default.weight", "")
67
+
68
+ key = key.replace(f".{lora_a_suffix}", "")
69
+
57
70
  if key.startswith("transformer") and "attn.to_out.0" in key:
58
71
  key = key.replace("attn.to_out.0", "attn.to_out")
59
72
  dit_dict[key] = lora_args
@@ -584,4 +584,11 @@ class WanVideoPipeline(BasePipeline):
584
584
  use_fsdp=config.use_fsdp,
585
585
  device="cuda",
586
586
  )
587
+ if config.use_torch_compile:
588
+ pipe.compile()
587
589
  return pipe
590
+
591
+ def compile(self):
592
+ self.dit.compile()
593
+ if self.dit2 is not None:
594
+ self.dit2.compile()
@@ -1,8 +1,10 @@
1
1
  import torch
2
2
  import torch.nn as nn
3
+ from typing import Dict
3
4
 
4
5
 
5
6
  def enable_sequential_cpu_offload(module: nn.Module, device: str = "cuda"):
7
+ module = module.to("cpu")
6
8
  if len(list(module.children())) == 0:
7
9
  if len(list(module.parameters())) > 0 or len(list(module.buffers())) > 0:
8
10
  # leaf module with parameters or buffers
@@ -50,3 +52,24 @@ def add_cpu_offload_hook(module: nn.Module, device: str = "cuda", recurse: bool
50
52
  module.register_forward_pre_hook(_forward_pre_hook)
51
53
  module.register_forward_hook(_forward_hook)
52
54
  setattr(module, "_cpu_offload_enabled", True)
55
+
56
+
57
+ def offload_model_to_dict(module: nn.Module) -> Dict[str, torch.Tensor]:
58
+ module = module.to("cpu")
59
+ offload_param_dict = {}
60
+ for name, param in module.named_parameters(recurse=True):
61
+ param.data = param.data.pin_memory()
62
+ offload_param_dict[name] = param.data
63
+ for name, buffer in module.named_buffers(recurse=True):
64
+ buffer.data = buffer.data.pin_memory()
65
+ offload_param_dict[name] = buffer.data
66
+ return offload_param_dict
67
+
68
+
69
+ def restore_model_from_dict(module: nn.Module, offload_param_dict: Dict[str, torch.Tensor]):
70
+ for name, param in module.named_parameters(recurse=True):
71
+ if name in offload_param_dict:
72
+ param.data = offload_param_dict[name]
73
+ for name, buffer in module.named_buffers(recurse=True):
74
+ if name in offload_param_dict:
75
+ buffer.data = offload_param_dict[name]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.4.2.dev5
3
+ Version: 0.4.2.dev7
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -88,7 +88,6 @@ We will continuously update DiffSynth-Engine to support more models. (Wan2.2 LoR
88
88
 
89
89
  After the model is downloaded, load the model with the corresponding pipeline and perform inference.
90
90
 
91
-
92
91
  ### Image Generation(Qwen-Image)
93
92
 
94
93
  The following code calls `QwenImagePipeline` to load the [Qwen-Image](https://www.modelscope.cn/models/Qwen/Qwen-Image) model and generate an image. Recommended resolutions are 928×1664, 1104×1472, 1328×1328, 1472×1104, and 1664×928, with a suggested cfg_scale of 4. If no negative_prompt is provided, it defaults to a single space character (not an empty string). For multi-GPU parallelism, currently only cfg parallelism is supported (parallelism=2), with other optimization efforts underway.
@@ -122,7 +121,7 @@ image.save("image.png")
122
121
 
123
122
  Please note that if some necessary modules, like text encoders, are missing from a model repository, the pipeline will automatically download the required files.
124
123
 
125
- #### Detailed Parameters(Qwen-Image)
124
+ ### Detailed Parameters(Qwen-Image)
126
125
 
127
126
  In the image generation pipeline `pipe`, we can use the following parameters for fine-grained control:
128
127
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  ## 安装
4
4
 
5
- 在使用 DiffSynth-Engine 前,请先确保您的硬件设备满足以下要求:
5
+ 在使用 DiffSynth-Engine 前,请先确保您的硬件设备满足以下要求:
6
6
 
7
7
  * NVIDIA GPU CUDA 计算能力 8.6+(例如 RTX 50 Series、RTX 40 Series、RTX 30 Series 等,详见 [NVidia 文档](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities))或 Apple Silicon M 系列芯片
8
8
 
9
- 以及 Python 环境需求:Python 3.10+。
9
+ 以及 Python 环境需求: Python 3.10+。
10
10
 
11
- 使用 `pip3` 工具从 PyPI 安装 DiffSynth-Engine
11
+ 使用 `pip3` 工具从 PyPI 安装 DiffSynth-Engine:
12
12
 
13
13
  ```shell
14
14
  pip3 install diffsynth-engine
@@ -64,7 +64,7 @@ model_path = fetch_model("Wan-AI/Wan2.1-T2V-14B", path="diffusion_pytorch_model*
64
64
 
65
65
  ## 模型类型
66
66
 
67
- Diffusion 模型包含多种多样的模型结构,每种模型由对应的流水线进行加载和推理,目前我们支持的模型类型包括:
67
+ Diffusion 模型包含多种多样的模型结构,每种模型由对应的流水线进行加载和推理,目前我们支持的模型类型包括:
68
68
 
69
69
  | 模型结构 | 样例 | 流水线 |
70
70
  | --------------- | ------------------------------------------------------------ | ------------------- |
@@ -123,16 +123,17 @@ image.save("image.png")
123
123
 
124
124
  #### 详细参数(Qwen-Image)
125
125
 
126
- 在图像生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
126
+ 在图像生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
127
127
 
128
128
  * `prompt`: 提示词,用于描述生成图像的内容,支持多种语言(中文/英文/日文等),例如“一只猫”/"a cat"/"庭を走る猫"。
129
129
  * `negative_prompt`: 负面提示词,用于描述不希望图像中出现的内容,例如“ugly”,默认为一个空格而不是空字符串, " "。
130
- * `cfg_scale`: [Classifier-free guidance](https://arxiv.org/abs/2207.12598) 的引导系数,通常更大的引导系数可以达到更强的文图相关性,但会降低生成内容的多样性,推荐值为4。
130
+ * `cfg_scale`:[Classifier-free guidance](https://arxiv.org/abs/2207.12598) 的引导系数,通常更大的引导系数可以达到更强的文图相关性,但会降低生成内容的多样性,推荐值为4。
131
131
  * `height`: 图像高度。
132
132
  * `width`: 图像宽度。
133
133
  * `num_inference_steps`: 推理步数,通常推理步数越多,计算时间越长,图像质量越高。
134
134
  * `seed`: 随机种子,固定的随机种子可以使生成的内容固定。
135
135
 
136
+
136
137
  ### 图像生成
137
138
 
138
139
  以下代码可以调用 `FluxImagePipeline` 加载[麦橘超然](https://www.modelscope.cn/models/MAILAND/majicflus_v1/summary?version=v1.0)模型生成一张图。如果要加载其他结构的模型,请将代码中的 `FluxImagePipeline` 和 `FluxPipelineConfig` 替换成对应的流水线模块及配置。
@@ -152,7 +153,7 @@ image.save("image.png")
152
153
 
153
154
  #### 详细参数
154
155
 
155
- 在图像生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
156
+ 在图像生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
156
157
 
157
158
  * `prompt`: 提示词,用于描述生成图像的内容,例如“a cat”。
158
159
  * `negative_prompt`: 负面提示词,用于描述不希望图像中出现的内容,例如“ugly”。
@@ -217,7 +218,7 @@ save_video(video, "video.mp4")
217
218
 
218
219
  #### 详细参数
219
220
 
220
- 在视频生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
221
+ 在视频生成流水线 `pipe` 中,我们可以通过以下参数进行精细的控制:
221
222
 
222
223
  * `prompt`: 提示词,用于描述生成图像的内容,例如“a cat”。
223
224
  * `negative_prompt`: 负面提示词,用于描述不希望图像中出现的内容,例如“ugly”。