diffsynth-engine 0.6.1.dev38__tar.gz → 0.6.1.dev39__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 (222) hide show
  1. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/PKG-INFO +1 -1
  2. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/__init__.py +2 -0
  3. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/__init__.py +2 -0
  4. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/base.py +1 -1
  5. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/qwen_image.py +0 -3
  6. diffsynth_engine-0.6.1.dev39/diffsynth_engine/pipelines/wan_dmd.py +111 -0
  7. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/wan_video.py +35 -7
  8. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine.egg-info/PKG-INFO +1 -1
  9. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine.egg-info/SOURCES.txt +1 -0
  10. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/.gitattributes +0 -0
  11. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/.gitignore +0 -0
  12. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/.pre-commit-config.yaml +0 -0
  13. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/LICENSE +0 -0
  14. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/MANIFEST.in +0 -0
  15. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/README.md +0 -0
  16. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/assets/dingtalk.png +0 -0
  17. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/assets/showcase.jpeg +0 -0
  18. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/assets/tongyi.svg +0 -0
  19. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/__init__.py +0 -0
  20. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
  21. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
  22. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
  23. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
  24. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
  25. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
  26. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
  27. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
  28. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
  29. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
  30. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
  31. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
  32. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
  33. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
  34. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
  35. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
  36. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
  37. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
  38. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
  39. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
  40. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
  41. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
  42. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
  43. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
  44. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
  45. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
  46. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/components/vae.json +0 -0
  47. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
  48. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
  49. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
  50. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
  51. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
  52. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
  53. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
  54. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
  55. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
  56. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
  57. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
  58. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
  59. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
  60. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.1_flf2v_14b.json +0 -0
  61. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.1_i2v_14b.json +0 -0
  62. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_1.3b.json +0 -0
  63. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.1_t2v_14b.json +0 -0
  64. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.2_i2v_a14b.json +0 -0
  65. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.2_s2v_14b.json +0 -0
  66. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.2_t2v_a14b.json +0 -0
  67. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan2.2_ti2v_5b.json +0 -0
  68. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/dit/wan_dit_keymap.json +0 -0
  69. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/vae/wan2.1_vae.json +0 -0
  70. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/vae/wan2.2_vae.json +0 -0
  71. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/wan/vae/wan_vae_keymap.json +0 -0
  72. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/models/z_image/qwen3_config.json +0 -0
  73. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
  74. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
  75. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
  76. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
  77. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
  78. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
  79. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
  80. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
  81. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +0 -0
  82. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
  83. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
  84. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
  85. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
  86. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
  87. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
  88. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
  89. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
  90. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
  91. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
  92. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
  93. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
  94. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
  95. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
  96. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
  97. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
  98. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
  99. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
  100. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/merges.txt +0 -0
  101. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer.json +0 -0
  102. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/tokenizer_config.json +0 -0
  103. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/conf/tokenizers/z_image/tokenizer/vocab.json +0 -0
  104. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/configs/__init__.py +0 -0
  105. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/configs/controlnet.py +0 -0
  106. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/configs/pipeline.py +0 -0
  107. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/kernels/__init__.py +0 -0
  108. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/__init__.py +0 -0
  109. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/base.py +0 -0
  110. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/__init__.py +0 -0
  111. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/attention.py +0 -0
  112. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/lora.py +0 -0
  113. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/lora_nunchaku.py +0 -0
  114. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
  115. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/timestep.py +0 -0
  116. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
  117. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/unet_helper.py +0 -0
  118. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/basic/video_sparse_attention.py +0 -0
  119. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/__init__.py +0 -0
  120. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
  121. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_dit.py +0 -0
  122. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_dit_fbcache.py +0 -0
  123. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
  124. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_redux.py +0 -0
  125. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
  126. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/flux/flux_vae.py +0 -0
  127. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/__init__.py +0 -0
  128. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +0 -0
  129. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +0 -0
  130. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +0 -0
  131. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/moe.py +0 -0
  132. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/surface_extractor.py +0 -0
  133. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/hunyuan3d/volume_decoder.py +0 -0
  134. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
  135. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +0 -0
  136. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +0 -0
  137. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +0 -0
  138. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/qwen_image_dit_nunchaku.py +0 -0
  139. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +0 -0
  140. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd/__init__.py +0 -0
  141. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd/sd_controlnet.py +0 -0
  142. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
  143. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd/sd_unet.py +0 -0
  144. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd/sd_vae.py +0 -0
  145. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd3/__init__.py +0 -0
  146. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
  147. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
  148. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
  149. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sdxl/__init__.py +0 -0
  150. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
  151. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
  152. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
  153. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
  154. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
  155. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/text_encoder/clip.py +0 -0
  156. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
  157. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/text_encoder/t5.py +0 -0
  158. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/vae/__init__.py +0 -0
  159. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/vae/vae.py +0 -0
  160. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/__init__.py +0 -0
  161. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_audio_encoder.py +0 -0
  162. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_dit.py +0 -0
  163. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
  164. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_s2v_dit.py +0 -0
  165. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
  166. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/wan/wan_vae.py +0 -0
  167. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/z_image/__init__.py +0 -0
  168. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/z_image/qwen3.py +0 -0
  169. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/models/z_image/z_image_dit.py +0 -0
  170. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/flux_image.py +0 -0
  171. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/hunyuan3d_shape.py +0 -0
  172. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/sd_image.py +0 -0
  173. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
  174. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/utils.py +0 -0
  175. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/wan_s2v.py +0 -0
  176. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/pipelines/z_image.py +0 -0
  177. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/processor/__init__.py +0 -0
  178. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/processor/canny_processor.py +0 -0
  179. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/processor/depth_processor.py +0 -0
  180. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/__init__.py +0 -0
  181. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/base.py +0 -0
  182. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/clip.py +0 -0
  183. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/qwen2.py +0 -0
  184. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +0 -0
  185. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/qwen2_vl_processor.py +0 -0
  186. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/t5.py +0 -0
  187. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tokenizers/wan.py +0 -0
  188. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tools/__init__.py +0 -0
  189. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
  190. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tools/flux_outpainting_tool.py +0 -0
  191. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
  192. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/tools/flux_replace_tool.py +0 -0
  193. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/__init__.py +0 -0
  194. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/cache.py +0 -0
  195. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/constants.py +0 -0
  196. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/download.py +0 -0
  197. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/env.py +0 -0
  198. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/flag.py +0 -0
  199. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/fp8_linear.py +0 -0
  200. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/gguf.py +0 -0
  201. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/image.py +0 -0
  202. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/loader.py +0 -0
  203. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/lock.py +0 -0
  204. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/logging.py +0 -0
  205. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/memory/__init__.py +0 -0
  206. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/memory/linear_regression.py +0 -0
  207. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/memory/memory_predcit_model.py +0 -0
  208. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/offload.py +0 -0
  209. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/onnx.py +0 -0
  210. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/parallel.py +0 -0
  211. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/platform.py +0 -0
  212. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/process_group.py +0 -0
  213. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/prompt.py +0 -0
  214. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine/utils/video.py +0 -0
  215. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
  216. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine.egg-info/requires.txt +0 -0
  217. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/diffsynth_engine.egg-info/top_level.txt +0 -0
  218. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/docs/tutorial.md +0 -0
  219. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/docs/tutorial_zh.md +0 -0
  220. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/pyproject.toml +0 -0
  221. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/setup.cfg +0 -0
  222. {diffsynth_engine-0.6.1.dev38 → diffsynth_engine-0.6.1.dev39}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev38
3
+ Version: 0.6.1.dev39
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -27,6 +27,7 @@ from .pipelines import (
27
27
  SDXLImagePipeline,
28
28
  FluxImagePipeline,
29
29
  WanVideoPipeline,
30
+ WanDMDPipeline,
30
31
  QwenImagePipeline,
31
32
  Hunyuan3DShapePipeline,
32
33
  )
@@ -81,6 +82,7 @@ __all__ = [
81
82
  "FluxIPAdapter",
82
83
  "FluxRedux",
83
84
  "WanVideoPipeline",
85
+ "WanDMDPipeline",
84
86
  "QwenImagePipeline",
85
87
  "Hunyuan3DShapePipeline",
86
88
  "FluxInpaintingTool",
@@ -4,6 +4,7 @@ from .sdxl_image import SDXLImagePipeline
4
4
  from .sd_image import SDImagePipeline
5
5
  from .wan_video import WanVideoPipeline
6
6
  from .wan_s2v import WanSpeech2VideoPipeline
7
+ from .wan_dmd import WanDMDPipeline
7
8
  from .qwen_image import QwenImagePipeline
8
9
  from .hunyuan3d_shape import Hunyuan3DShapePipeline
9
10
  from .z_image import ZImagePipeline
@@ -16,6 +17,7 @@ __all__ = [
16
17
  "SDImagePipeline",
17
18
  "WanVideoPipeline",
18
19
  "WanSpeech2VideoPipeline",
20
+ "WanDMDPipeline",
19
21
  "QwenImagePipeline",
20
22
  "Hunyuan3DShapePipeline",
21
23
  "ZImagePipeline",
@@ -145,7 +145,7 @@ class BasePipeline:
145
145
  self.load_loras([(path, scale)], fused, save_original_weight)
146
146
 
147
147
  def apply_scheduler_config(self, scheduler_config: Dict):
148
- pass
148
+ self.noise_scheduler.update_config(scheduler_config)
149
149
 
150
150
  def unload_loras(self):
151
151
  raise NotImplementedError()
@@ -393,9 +393,6 @@ class QwenImagePipeline(BasePipeline):
393
393
  self.dit.unload_loras()
394
394
  self.noise_scheduler.restore_config()
395
395
 
396
- def apply_scheduler_config(self, scheduler_config: Dict):
397
- self.noise_scheduler.update_config(scheduler_config)
398
-
399
396
  def prepare_latents(
400
397
  self,
401
398
  latents: torch.Tensor,
@@ -0,0 +1,111 @@
1
+ import torch
2
+ import torch.distributed as dist
3
+ from typing import Callable, List, Optional
4
+ from tqdm import tqdm
5
+ from PIL import Image
6
+
7
+ from diffsynth_engine.pipelines.wan_video import WanVideoPipeline
8
+
9
+
10
+ class WanDMDPipeline(WanVideoPipeline):
11
+ def prepare_latents(
12
+ self,
13
+ latents,
14
+ denoising_step_list,
15
+ ):
16
+ height, width = latents.shape[-2:]
17
+ height, width = height * self.upsampling_factor, width * self.upsampling_factor
18
+ sigmas, timesteps = self.noise_scheduler.schedule(num_inference_steps=1000)
19
+ sigmas = sigmas[[1000 - t for t in denoising_step_list] + [-1]]
20
+ timesteps = timesteps[[1000 - t for t in denoising_step_list]]
21
+ init_latents = latents.clone()
22
+
23
+ return init_latents, latents, sigmas, timesteps
24
+
25
+ @torch.no_grad()
26
+ def __call__(
27
+ self,
28
+ prompt,
29
+ input_image: Image.Image | None = None,
30
+ seed=None,
31
+ height=480,
32
+ width=832,
33
+ num_frames=81,
34
+ denoising_step_list: List[int] = None,
35
+ progress_callback: Optional[Callable] = None, # def progress_callback(current, total, status)
36
+ ):
37
+ denoising_step_list = [1000, 750, 500, 250] if denoising_step_list is None else denoising_step_list
38
+ divisor = 32 if self.vae.z_dim == 48 else 16 # 32 for wan2.2 vae, 16 for wan2.1 vae
39
+ assert height % divisor == 0 and width % divisor == 0, f"height and width must be divisible by {divisor}"
40
+ assert (num_frames - 1) % 4 == 0, "num_frames must be 4X+1"
41
+
42
+ # Initialize noise
43
+ if dist.is_initialized() and seed is None:
44
+ raise ValueError("must provide a seed when parallelism is enabled")
45
+ noise = self.generate_noise(
46
+ (
47
+ 1,
48
+ self.vae.z_dim,
49
+ (num_frames - 1) // 4 + 1,
50
+ height // self.upsampling_factor,
51
+ width // self.upsampling_factor,
52
+ ),
53
+ seed=seed,
54
+ device="cpu",
55
+ dtype=torch.float32,
56
+ ).to(self.device)
57
+ init_latents, latents, sigmas, timesteps = self.prepare_latents(noise, denoising_step_list)
58
+ mask = torch.ones((1, 1, *latents.shape[2:]), dtype=latents.dtype, device=latents.device)
59
+
60
+ # Encode prompts
61
+ self.load_models_to_device(["text_encoder"])
62
+ prompt_emb_posi = self.encode_prompt(prompt)
63
+ prompt_emb_nega = None
64
+
65
+ # Encode image
66
+ image_clip_feature = self.encode_clip_feature(input_image, height, width)
67
+ image_y = self.encode_vae_feature(input_image, num_frames, height, width)
68
+ image_latents = self.encode_image_latents(input_image, height, width)
69
+ if image_latents is not None:
70
+ latents[:, :, : image_latents.shape[2], :, :] = image_latents
71
+ init_latents = latents.clone()
72
+ mask[:, :, : image_latents.shape[2], :, :] = 0
73
+
74
+ # Initialize sampler
75
+ self.sampler.initialize(sigmas=sigmas)
76
+
77
+ # Denoise
78
+ hide_progress = dist.is_initialized() and dist.get_rank() != 0
79
+ for i, timestep in enumerate(tqdm(timesteps, disable=hide_progress)):
80
+ if timestep.item() / 1000 >= self.config.boundary:
81
+ self.load_models_to_device(["dit"])
82
+ model = self.dit
83
+ else:
84
+ self.load_models_to_device(["dit2"])
85
+ model = self.dit2
86
+
87
+ timestep = timestep * mask[:, :, :, ::2, ::2].flatten() # seq_len
88
+ timestep = timestep.to(dtype=self.dtype, device=self.device)
89
+ # Classifier-free guidance
90
+ noise_pred = self.predict_noise_with_cfg(
91
+ model=model,
92
+ latents=latents,
93
+ timestep=timestep,
94
+ positive_prompt_emb=prompt_emb_posi,
95
+ negative_prompt_emb=prompt_emb_nega,
96
+ image_clip_feature=image_clip_feature,
97
+ image_y=image_y,
98
+ cfg_scale=1.0,
99
+ batch_cfg=self.config.batch_cfg,
100
+ )
101
+ # Scheduler
102
+ latents = self.sampler.step(latents, noise_pred, i)
103
+ latents = latents * mask + init_latents * (1 - mask)
104
+ if progress_callback is not None:
105
+ progress_callback(i + 1, len(timesteps), "DENOISING")
106
+
107
+ # Decode
108
+ self.load_models_to_device(["vae"])
109
+ frames = self.decode_video(latents, progress_callback=progress_callback)
110
+ frames = self.vae_output_to_image(frames)
111
+ return frames
@@ -43,6 +43,24 @@ class WanLoRAConverter(LoRAStateDictConverter):
43
43
  dit_dict[key] = lora_args
44
44
  return {"dit": dit_dict}
45
45
 
46
+ def _from_diffusers(self, state_dict):
47
+ dit_dict = {}
48
+ for key, param in state_dict.items():
49
+ if ".lora_down.weight" not in key:
50
+ continue
51
+
52
+ lora_args = {}
53
+ lora_args["up"] = state_dict[key.replace(".lora_down.weight", ".lora_up.weight")]
54
+ lora_args["down"] = param
55
+ lora_args["rank"] = lora_args["up"].shape[1]
56
+ if key.replace(".lora_down.weight", ".alpha") in state_dict:
57
+ lora_args["alpha"] = state_dict[key.replace(".lora_down.weight", ".alpha")]
58
+ else:
59
+ lora_args["alpha"] = lora_args["rank"]
60
+ key = key.replace("diffusion_model.", "").replace(".lora_down.weight", "")
61
+ dit_dict[key] = lora_args
62
+ return {"dit": dit_dict}
63
+
46
64
  def _from_civitai(self, state_dict):
47
65
  dit_dict = {}
48
66
  for key, param in state_dict.items():
@@ -86,6 +104,9 @@ class WanLoRAConverter(LoRAStateDictConverter):
86
104
  if "lora_unet_blocks_0_cross_attn_k.lora_down.weight" in state_dict:
87
105
  state_dict = self._from_fun(state_dict)
88
106
  logger.info("use fun format state dict")
107
+ elif "diffusion_model.blocks.0.cross_attn.k.lora_down.weight" in state_dict:
108
+ state_dict = self._from_diffusers(state_dict)
109
+ logger.info("use diffusers format state dict")
89
110
  elif "diffusion_model.blocks.0.cross_attn.k.lora_A.weight" in state_dict:
90
111
  state_dict = self._from_civitai(state_dict)
91
112
  logger.info("use civitai format state dict")
@@ -480,8 +501,8 @@ class WanVideoPipeline(BasePipeline):
480
501
 
481
502
  dit_state_dict, dit2_state_dict = None, None
482
503
  if isinstance(config.model_path, list):
483
- high_noise_model_ckpt = [path for path in config.model_path if "high_noise_model" in path]
484
- low_noise_model_ckpt = [path for path in config.model_path if "low_noise_model" in path]
504
+ high_noise_model_ckpt = [path for path in config.model_path if "high_noise" in path]
505
+ low_noise_model_ckpt = [path for path in config.model_path if "low_noise" in path]
485
506
  if high_noise_model_ckpt and low_noise_model_ckpt:
486
507
  logger.info(f"loading high noise model state dict from {high_noise_model_ckpt} ...")
487
508
  dit_state_dict = cls.load_model_checkpoint(
@@ -681,8 +702,9 @@ class WanVideoPipeline(BasePipeline):
681
702
  config.attn_params = VideoSparseAttentionParams(sparsity=0.9)
682
703
 
683
704
  def update_weights(self, state_dicts: WanStateDicts) -> None:
684
- is_dual_model_state_dict = (isinstance(state_dicts.model, dict) and
685
- ("high_noise_model" in state_dicts.model or "low_noise_model" in state_dicts.model))
705
+ is_dual_model_state_dict = isinstance(state_dicts.model, dict) and (
706
+ "high_noise_model" in state_dicts.model or "low_noise_model" in state_dicts.model
707
+ )
686
708
  is_dual_model_pipeline = self.dit2 is not None
687
709
 
688
710
  if is_dual_model_state_dict != is_dual_model_pipeline:
@@ -694,15 +716,21 @@ class WanVideoPipeline(BasePipeline):
694
716
 
695
717
  if is_dual_model_state_dict:
696
718
  if "high_noise_model" in state_dicts.model:
697
- self.update_component(self.dit, state_dicts.model["high_noise_model"], self.config.device, self.config.model_dtype)
719
+ self.update_component(
720
+ self.dit, state_dicts.model["high_noise_model"], self.config.device, self.config.model_dtype
721
+ )
698
722
  if "low_noise_model" in state_dicts.model:
699
- self.update_component(self.dit2, state_dicts.model["low_noise_model"], self.config.device, self.config.model_dtype)
723
+ self.update_component(
724
+ self.dit2, state_dicts.model["low_noise_model"], self.config.device, self.config.model_dtype
725
+ )
700
726
  else:
701
727
  self.update_component(self.dit, state_dicts.model, self.config.device, self.config.model_dtype)
702
728
 
703
729
  self.update_component(self.text_encoder, state_dicts.t5, self.config.device, self.config.t5_dtype)
704
730
  self.update_component(self.vae, state_dicts.vae, self.config.device, self.config.vae_dtype)
705
- self.update_component(self.image_encoder, state_dicts.image_encoder, self.config.device, self.config.image_encoder_dtype)
731
+ self.update_component(
732
+ self.image_encoder, state_dicts.image_encoder, self.config.device, self.config.image_encoder_dtype
733
+ )
706
734
 
707
735
  def compile(self):
708
736
  self.dit.compile_repeated_blocks()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth_engine
3
- Version: 0.6.1.dev38
3
+ Version: 0.6.1.dev39
4
4
  Author: MuseAI x ModelScope
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: OS Independent
@@ -174,6 +174,7 @@ diffsynth_engine/pipelines/qwen_image.py
174
174
  diffsynth_engine/pipelines/sd_image.py
175
175
  diffsynth_engine/pipelines/sdxl_image.py
176
176
  diffsynth_engine/pipelines/utils.py
177
+ diffsynth_engine/pipelines/wan_dmd.py
177
178
  diffsynth_engine/pipelines/wan_s2v.py
178
179
  diffsynth_engine/pipelines/wan_video.py
179
180
  diffsynth_engine/pipelines/z_image.py