diffsynth 2.1.7__tar.gz → 2.1.8__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 (299) hide show
  1. {diffsynth-2.1.7 → diffsynth-2.1.8}/PKG-INFO +37 -4
  2. {diffsynth-2.1.7 → diffsynth-2.1.8}/README.md +34 -3
  3. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/configs/model_configs.py +155 -9
  4. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/configs/vram_management_module_maps.py +47 -15
  5. diffsynth-2.1.8/diffsynth/core/attention/__init__.py +1 -0
  6. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/attention/attention.py +1 -1
  7. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/data/operators.py +2 -0
  8. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/data/unified_dataset.py +3 -2
  9. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/__init__.py +1 -1
  10. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/flow_match.py +37 -1
  11. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/unified_reward_edit.py +1 -1
  12. diffsynth-2.1.8/diffsynth/models/ltx25_diffusion_video_vae.py +5014 -0
  13. diffsynth-2.1.8/diffsynth/models/ltx25_duration_head.py +57 -0
  14. diffsynth-2.1.8/diffsynth/models/ltx25_text_encoder.py +449 -0
  15. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_audio_vae.py +20 -9
  16. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_common.py +3 -0
  17. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_dit.py +78 -17
  18. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_video_vae.py +7 -4
  19. diffsynth-2.1.8/diffsynth/models/qwen_image_21_dit.py +595 -0
  20. diffsynth-2.1.8/diffsynth/models/qwen_image_21_text_encoder.py +105 -0
  21. diffsynth-2.1.8/diffsynth/models/qwen_image_21_vae.py +1228 -0
  22. diffsynth-2.1.8/diffsynth/models/yue2_mot.py +760 -0
  23. diffsynth-2.1.8/diffsynth/models/yue2_tokenizer.py +43 -0
  24. diffsynth-2.1.8/diffsynth/models/yue2_vae.py +597 -0
  25. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/boogu_image.py +3 -3
  26. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/joyai_image.py +3 -3
  27. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/ltx2_audio_video.py +124 -48
  28. diffsynth-2.1.8/diffsynth/pipelines/qwen_image_21.py +357 -0
  29. diffsynth-2.1.8/diffsynth/pipelines/yue2.py +574 -0
  30. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_diffusion_video_vae.py +21 -0
  31. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_duration_head.py +6 -0
  32. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_text_encoder.py +16 -0
  33. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_video_vae.py +6 -2
  34. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/minimax_h3_dit.py +7 -0
  35. diffsynth-2.1.7/diffsynth/utils/state_dict_converters/joyai_image_text_encoder.py → diffsynth-2.1.8/diffsynth/utils/state_dict_converters/qwen_image_21_text_encoder.py +1 -1
  36. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/version.py +1 -1
  37. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth.egg-info/PKG-INFO +37 -4
  38. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth.egg-info/SOURCES.txt +16 -2
  39. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth.egg-info/requires.txt +3 -0
  40. {diffsynth-2.1.7 → diffsynth-2.1.8}/pyproject.toml +3 -0
  41. diffsynth-2.1.7/diffsynth/core/attention/__init__.py +0 -1
  42. diffsynth-2.1.7/diffsynth/models/joyai_image_text_encoder.py +0 -82
  43. {diffsynth-2.1.7 → diffsynth-2.1.8}/LICENSE +0 -0
  44. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/__init__.py +0 -0
  45. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/configs/__init__.py +0 -0
  46. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/__init__.py +0 -0
  47. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/data/__init__.py +0 -0
  48. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/device/__init__.py +0 -0
  49. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/device/npu_compatible_device.py +0 -0
  50. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/gradient/__init__.py +0 -0
  51. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/gradient/gradient_checkpoint.py +0 -0
  52. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/loader/__init__.py +0 -0
  53. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/loader/config.py +0 -0
  54. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/loader/file.py +0 -0
  55. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/loader/model.py +0 -0
  56. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/npu_patch/npu_fused_operator.py +0 -0
  57. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/offload_training/__init__.py +0 -0
  58. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/offload_training/manager.py +0 -0
  59. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/offload_training/memory_buffer.py +0 -0
  60. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/offload_training/offloader.py +0 -0
  61. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/__init__.py +0 -0
  62. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/backends/__init__.py +0 -0
  63. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/backends/bitsandbytes.py +0 -0
  64. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/backends/comfy_kitchen.py +0 -0
  65. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/backends/torchao.py +0 -0
  66. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/base.py +0 -0
  67. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/quant/config.py +0 -0
  68. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/vram/__init__.py +0 -0
  69. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/vram/disk_map.py +0 -0
  70. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/vram/initialization.py +0 -0
  71. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/core/vram/layers.py +0 -0
  72. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/base_pipeline.py +0 -0
  73. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/ddim_scheduler.py +0 -0
  74. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/dmd2.py +0 -0
  75. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/logger.py +0 -0
  76. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/loss.py +0 -0
  77. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/parsers.py +0 -0
  78. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/runner.py +0 -0
  79. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/template.py +0 -0
  80. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/diffusion/training_module.py +0 -0
  81. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/__init__.py +0 -0
  82. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/aesthetic.py +0 -0
  83. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/base.py +0 -0
  84. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/bioclip.py +0 -0
  85. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/clip.py +0 -0
  86. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/fid.py +0 -0
  87. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/hpsv2.py +0 -0
  88. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/hpsv3.py +0 -0
  89. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/image_reward.py +0 -0
  90. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/lpips.py +0 -0
  91. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/pickscore.py +0 -0
  92. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/qwen_image_bench.py +0 -0
  93. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/metrics/unified_reward_2.py +0 -0
  94. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_conditioner.py +0 -0
  95. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_dit.py +0 -0
  96. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_residual_fsq.py +0 -0
  97. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_text_encoder.py +0 -0
  98. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_tokenizer.py +0 -0
  99. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ace_step_vae.py +0 -0
  100. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/aesthetic.py +0 -0
  101. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/anima_dit.py +0 -0
  102. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/bioclip.py +0 -0
  103. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/boogu_image_dit.py +0 -0
  104. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/clip.py +0 -0
  105. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/demucs.py +0 -0
  106. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/diffsynth_music_dit.py +0 -0
  107. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/dinov3_image_encoder.py +0 -0
  108. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ernie_image_dit.py +0 -0
  109. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ernie_image_text_encoder.py +0 -0
  110. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/fid.py +0 -0
  111. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux2_dit.py +0 -0
  112. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux2_text_encoder.py +0 -0
  113. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux2_vae.py +0 -0
  114. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_controlnet.py +0 -0
  115. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_dit.py +0 -0
  116. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_infiniteyou.py +0 -0
  117. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_ipadapter.py +0 -0
  118. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_lora_encoder.py +0 -0
  119. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_lora_patcher.py +0 -0
  120. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_redux.py +0 -0
  121. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_text_encoder_clip.py +0 -0
  122. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_text_encoder_t5.py +0 -0
  123. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_vae.py +0 -0
  124. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/flux_value_control.py +0 -0
  125. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/general_modules.py +0 -0
  126. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/hidream_common.py +0 -0
  127. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/hidream_o1_image_dit.py +0 -0
  128. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/hpsv2.py +0 -0
  129. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/hpsv3.py +0 -0
  130. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ideogram4_dit.py +0 -0
  131. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ideogram4_text_encoder.py +0 -0
  132. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ideogram4_vae.py +0 -0
  133. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/image_reward.py +0 -0
  134. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/joyai_image_dit.py +0 -0
  135. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/krea2_dit.py +0 -0
  136. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/krea2_text_encoder.py +0 -0
  137. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/lingbot_video_dit.py +0 -0
  138. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/longcat_video_dit.py +0 -0
  139. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/lpips.py +0 -0
  140. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_text_encoder.py +0 -0
  141. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/ltx2_upsampler.py +0 -0
  142. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_audio_vae.py +0 -0
  143. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_controlnet.py +0 -0
  144. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_dit.py +0 -0
  145. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_dit_comfy.py +0 -0
  146. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_text_encoder.py +0 -0
  147. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_video_vae.py +0 -0
  148. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_condition_encoder.py +0 -0
  149. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_dit.py +0 -0
  150. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_rvq_depth_decoder.py +0 -0
  151. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_text_encoder.py +0 -0
  152. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_vocoder.py +0 -0
  153. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/model_loader.py +0 -0
  154. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/mova_audio_dit.py +0 -0
  155. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/mova_audio_vae.py +0 -0
  156. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/mova_dual_tower_bridge.py +0 -0
  157. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/nexus_gen.py +0 -0
  158. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/nexus_gen_ar_model.py +0 -0
  159. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/nexus_gen_projector.py +0 -0
  160. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/pickscore.py +0 -0
  161. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_bench.py +0 -0
  162. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_controlnet.py +0 -0
  163. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_dit.py +0 -0
  164. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_image2lora.py +0 -0
  165. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_text_encoder.py +0 -0
  166. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_image_vae.py +0 -0
  167. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/qwen_video_edit_dit.py +0 -0
  168. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/sd_text_encoder.py +0 -0
  169. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/sensenova_u1_common.py +0 -0
  170. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/sensenova_u1_dit.py +0 -0
  171. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/siglip2_image_encoder.py +0 -0
  172. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_text_encoder.py +0 -0
  173. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_unet.py +0 -0
  174. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_vae.py +0 -0
  175. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_xl_text_encoder.py +0 -0
  176. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_xl_unet.py +0 -0
  177. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/step1x_connector.py +0 -0
  178. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/step1x_text_encoder.py +0 -0
  179. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/unified_reward_2.py +0 -0
  180. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/unified_reward_edit.py +0 -0
  181. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_animate_2_dit.py +0 -0
  182. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_animate_adapter.py +0 -0
  183. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_camera_controller.py +0 -0
  184. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_dit.py +0 -0
  185. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_dit_s2v.py +0 -0
  186. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_image_encoder.py +0 -0
  187. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_mot.py +0 -0
  188. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_motion_controller.py +0 -0
  189. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_text_encoder.py +0 -0
  190. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_vace.py +0 -0
  191. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wan_video_vae.py +0 -0
  192. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wantodance.py +0 -0
  193. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/wav2vec.py +0 -0
  194. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/z_image_controlnet.py +0 -0
  195. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/z_image_dit.py +0 -0
  196. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/z_image_image2lora.py +0 -0
  197. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/models/z_image_text_encoder.py +0 -0
  198. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/ace_step.py +0 -0
  199. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/anima_image.py +0 -0
  200. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/diffsynth_music.py +0 -0
  201. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/ernie_image.py +0 -0
  202. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/flux2_image.py +0 -0
  203. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/flux_image.py +0 -0
  204. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/hidream_o1_image.py +0 -0
  205. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/ideogram4.py +0 -0
  206. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/krea2.py +0 -0
  207. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/lingbot_video.py +0 -0
  208. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/minimax_h3_audio_video.py +0 -0
  209. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/minimax_music3.py +0 -0
  210. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/mova_audio_video.py +0 -0
  211. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/qwen_image.py +0 -0
  212. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/qwen_video_edit.py +0 -0
  213. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/sensenova_u1_image.py +0 -0
  214. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/stable_diffusion.py +0 -0
  215. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/stable_diffusion_xl.py +0 -0
  216. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/wan_video.py +0 -0
  217. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/pipelines/z_image.py +0 -0
  218. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/controlnet/__init__.py +0 -0
  219. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/controlnet/annotator.py +0 -0
  220. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/controlnet/controlnet_input.py +0 -0
  221. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/data/__init__.py +0 -0
  222. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/data/audio.py +0 -0
  223. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/data/audio_video.py +0 -0
  224. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/data/media_io_ltx2.py +0 -0
  225. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/data/minimax_h3.py +0 -0
  226. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/demucs/__init__.py +0 -0
  227. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/dequantizer/__init__.py +0 -0
  228. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/__init__.py +0 -0
  229. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/flux.py +0 -0
  230. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/flux_timestep.py +0 -0
  231. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/general.py +0 -0
  232. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/krea2.py +0 -0
  233. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/merge.py +0 -0
  234. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/minimax_h3.py +0 -0
  235. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/reset_rank.py +0 -0
  236. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/lora/sdxl.py +0 -0
  237. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/music_tools/__init__.py +0 -0
  238. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/music_tools/click.py +0 -0
  239. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/music_tools/prosody.py +0 -0
  240. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/quant/serialization.py +0 -0
  241. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/ses/__init__.py +0 -0
  242. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/ses/ses.py +0 -0
  243. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/__init__.py +0 -0
  244. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_conditioner.py +0 -0
  245. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_dit.py +0 -0
  246. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_text_encoder.py +0 -0
  247. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_tokenizer.py +0 -0
  248. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/anima_dit.py +0 -0
  249. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/dino_v3.py +0 -0
  250. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ernie_image_text_encoder.py +0 -0
  251. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux2_text_encoder.py +0 -0
  252. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_controlnet.py +0 -0
  253. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_dit.py +0 -0
  254. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_infiniteyou.py +0 -0
  255. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_ipadapter.py +0 -0
  256. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_text_encoder_clip.py +0 -0
  257. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_text_encoder_t5.py +0 -0
  258. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_vae.py +0 -0
  259. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ideogram4_text_encoder.py +0 -0
  260. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/image_metrics.py +0 -0
  261. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/krea2_dit.py +0 -0
  262. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/krea2_text_encoder.py +0 -0
  263. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/lingbot_video_dit.py +0 -0
  264. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_audio_vae.py +0 -0
  265. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_dit.py +0 -0
  266. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_text_encoder.py +0 -0
  267. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_audio_vae.py +0 -0
  268. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_controlnet.py +0 -0
  269. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_text_encoder.py +0 -0
  270. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_video_vae.py +0 -0
  271. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_music3_text_encoder.py +0 -0
  272. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/nexus_gen.py +0 -0
  273. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/nexus_gen_projector.py +0 -0
  274. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/qwen_image_text_encoder.py +0 -0
  275. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/qwen_video_edit.py +0 -0
  276. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl.py +0 -0
  277. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_text_encoder.py +0 -0
  278. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_text_encoder_2.py +0 -0
  279. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_vae.py +0 -0
  280. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_text_encoder.py +0 -0
  281. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_vae.py +0 -0
  282. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_xl_text_encoder.py +0 -0
  283. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/step1x_connector.py +0 -0
  284. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_animate_adapter.py +0 -0
  285. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_dit.py +0 -0
  286. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_image_encoder.py +0 -0
  287. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_mot.py +0 -0
  288. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_vace.py +0 -0
  289. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_vae.py +0 -0
  290. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wans2v_audio_encoder.py +0 -0
  291. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/z_image_dit.py +0 -0
  292. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/z_image_text_encoder.py +0 -0
  293. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/tile/__init__.py +0 -0
  294. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/tile/tile_worker.py +0 -0
  295. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/xfuser/__init__.py +0 -0
  296. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth/utils/xfuser/xdit_context_parallel.py +0 -0
  297. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth.egg-info/dependency_links.txt +0 -0
  298. {diffsynth-2.1.7 → diffsynth-2.1.8}/diffsynth.egg-info/top_level.txt +0 -0
  299. {diffsynth-2.1.7 → diffsynth-2.1.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth
3
- Version: 2.1.7
3
+ Version: 2.1.8
4
4
  Summary: Enjoy the magic of Diffusion models!
5
5
  Author: ModelScope Team
6
6
  License-Expression: Apache-2.0
@@ -53,6 +53,8 @@ Requires-Dist: pywt; extra == "ses"
53
53
  Provides-Extra: nexusgen
54
54
  Requires-Dist: qwen_vl_utils; extra == "nexusgen"
55
55
  Requires-Dist: transformers==4.49.0; extra == "nexusgen"
56
+ Provides-Extra: yue2
57
+ Requires-Dist: tiktoken; extra == "yue2"
56
58
  Provides-Extra: all
57
59
  Requires-Dist: av; extra == "all"
58
60
  Requires-Dist: torchaudio; extra == "all"
@@ -99,6 +101,7 @@ References:
99
101
 
100
102
  See also:
101
103
 
104
+ * [DiffSynth-ComfyUI](https://github.com/modelscope/DiffSynth-ComfyUI): A [ComfyUI](https://github.com/Comfy-Org/ComfyUI) node package built on DiffSynth-Studio, enabling you to build workflows in ComfyUI to run model inference.
102
105
  * [DiffSynth-WebUI](https://github.com/modelscope/DiffSynth-WebUI): A lightweight LoRA training tool built on DiffSynth-Studio, enabling LoRA training of models on consumer-grade GPUs.
103
106
  * [ModelScope AIGC Zone (for Chinese users)](https://modelscope.cn/aigc/home): Productized features powered by DiffSynth-Studio as the core inference and training engine; experience the rich potential of the open-source model ecosystem.
104
107
  * [ModelScope Civision (for global users)](https://modelscope.ai/civision/home): Unlock the vast potential of the open-source model ecosystem through productized capabilities powered by DiffSynth-Studio.
@@ -109,6 +112,21 @@ See also:
109
112
 
110
113
  > Currently, the development personnel of this project are limited, with most of the work handled by [Artiprocher](https://github.com/Artiprocher) and [mi804](https://github.com/mi804). Therefore, the progress of new feature development will be relatively slow, and the speed of responding to and resolving issues is limited. We apologize for this and ask developers to understand.
111
114
 
115
+ - **September 20, 2026** Qwen-Image-2.1 was open-sourced. The model supports text-to-image generation, image editing, and RGBA output with a transparency channel. DiffSynth-Studio now provides full support for it. For details, please refer to the [documentation](/docs/zh/Model_Details/Qwen-Image-2.1.md) and [example code](/examples/qwen_image_21/).
116
+
117
+ - **September 14, 2026** We trained and open-sourced DiffSynth-Music, a controllable music generation model based on ACE-Step, which supports five control modes: Beats, Vocals, Accompany, Prosody, and Reference. For more information, please refer to:
118
+ * Model: https://modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music
119
+ * Technical Report: https://arxiv.org/abs/2609.12774
120
+ * Code: [./examples/diffsynth_music/](./examples/diffsynth_music/)
121
+
122
+ - **September 11, 2026** We have added support for YuE2, a new music generation model. For details, please refer to the [documentation](/docs/zh/Model_Details/YuE2.md) and [example code](/examples/yue2/).
123
+
124
+ - **September 10, 2026** We have integrated [LTX-2.5](https://modelscope.cn/models/Lightricks/LTX-2.5), the latest audio-video generation model from Lightricks. The features include text-to-audio/video with automatic duration prediction, image-to-audio/video with keyframe interpolation, audio-to-video, audio-video retake, IC-LoRA pixel spatial upscaling, text-to-audio, INT8 quantized inference, low VRAM inference, and training. For details, please refer to the [documentation](/docs/en/Model_Details/LTX-2.md) and [code](/examples/ltx2/).
125
+
126
+ - **September 10, 2026** We have open-sourced [DiffSynth-ComfyUI](https://github.com/modelscope/DiffSynth-ComfyUI). Now you can run model inference with DiffSynth-Studio in [ComfyUI](https://github.com/Comfy-Org/ComfyUI).
127
+
128
+ - **September 8, 2026** We trained a [MiniMax-H3 Training Adapter](https://www.modelscope.cn/models/DiffSynth-Studio/MiniMax-H3-TrainingAdapter) for the CFG-distilled MiniMax-H3 base, a DeCFG LoRA training adapter offered in FL2VA and Ref2VA versions. The training data comes from the self-generated [MiniMax-H3-Self-Generated-Dataset](https://www.modelscope.cn/datasets/DiffSynth-Studio/MiniMax-H3-Self-Generated-Dataset). Based on this adapter, we trained two toy models, [MiniMax-H3-Songyu-LoRA](https://www.modelscope.cn/models/mibei0804/MiniMax-H3-Songyu-LoRA) (character identity, FL2VA) and [MiniMax-H3-Ref2VA-FirstFrame-Lineart](https://www.modelscope.cn/models/mibei0804/MiniMax-H3-Ref2VA-FirstFrame-Lineart) (lineart first-frame control, Ref2VA), as references for inference and fine-tuning.
129
+
112
130
  - **September 1, 2026** We have integrated [SenseNova-U1.5](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT), SenseTime's unified multimodal model, for which we provide text-to-image generation, image editing, low VRAM inference, and training support. For details, please refer to the [documentation](/docs/en/Model_Details/SenseNova-U1.md) and [example code](/examples/sensenova_u1/).
113
131
 
114
132
  - **August 31, 2026** We have integrated [Qwen-Video-Edit](https://modelscope.cn/models/yunpeng1998/Qwen-Video-Edit), a video editing model developed by open-source community contributor [yunpeng1998](https://github.com/yunpeng1998) based on the image editing model Qwen-Image-Edit. This serves as an excellent example of exploring and expanding model capabilities.
@@ -117,6 +135,9 @@ See also:
117
135
 
118
136
  - **August 19, 2026** We have released the model quantization feature. It provides a unified `QuantizeConfig` entry point supporting multiple quantization backends including bitsandbytes, torchao, and comfy-kitchen, with capabilities such as online quantization, loading pre-quantized weights, mixed quantization, saving quantized models, and quantization + LoRA training. For details, please refer to the [documentation](/docs/en/Pipeline_Usage/Quantization.md).
119
137
 
138
+ <details>
139
+ <summary>More</summary>
140
+
120
141
  - **August 17, 2026** MiniMax-Music3 open-sourced, welcome a new member to the audio model family! Support includes text-to-music generation and low VRAM inference. For details, please refer to the [documentation](/docs/en/Model_Details/MiniMax-Music3.md) and [example code](/examples/minimax_music3/).
121
142
 
122
143
  - **August 7, 2026** We add support for Wan-Animate-2 in the Wan series. Given a reference image and a driving video, it makes the reference character perform the motions in the driving video, generating high-quality character animation, with both standard and distilled variants. For details, please refer to the [documentation](/docs/en/Model_Details/Wan.md) and [example code](/examples/wanvideo/).
@@ -127,9 +148,6 @@ See also:
127
148
 
128
149
  - **July 21, 2026** We have open-sourced [DiffSynth-Studio Model Integration Skills](https://www.modelscope.cn/collections/DiffSynth-Studio/DiffSynth-Studio-Model-Integration-Skills). This is a composable collection of Agent Skills that automates the entire workflow of integrating external diffusion models into DiffSynth-Studio, significantly improving the standardization and efficiency of model integration. Get started with the [example](https://www.modelscope.cn/skills/DiffSynth-Studio/diffsynth-integrator/file/view/master/example.md?status=1)!
129
150
 
130
- <details>
131
- <summary>More</summary>
132
-
133
151
  - **June 29, 2026** Boogu-Image open-sourced. Support includes text-to-image generation, image editing, low VRAM inference, and training capabilities. For details, please refer to the [documentation](/docs/en/Model_Details/Boogu-Image.md) and [example code](/examples/boogu_image/).
134
152
 
135
153
  - **June 24, 2026** Krea-2 is now open-source, and we have provided full support. For more details, please refer to the [documentation](/docs/en/Model_Details/Krea-2.md) and [example code](/examples/krea2/).
@@ -369,6 +387,7 @@ Quick start: experience popular and the latest models:
369
387
 
370
388
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
371
389
  |-|-|-|-|-|-|-|-|
390
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1.py) |
372
391
  | MiniMax-H3 | [MiniMax/MiniMax-H3: FL2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-FL2VA.py) |
373
392
  | MiniMax-H3 | [DiffSynth-Studio/MiniMax-H3-NF4: FL2VA pruned](https://www.modelscope.cn/models/DiffSynth-Studio/MiniMax-H3-NF4) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-NF4-Pruned-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-NF4-Pruned-FL2VA.py) | - | - | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-NF4-Pruned-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-NF4-Pruned-FL2VA.py) |
374
393
  | ACE-Step | [ACE-Step/acestep-v15-xl-sft](https://www.modelscope.cn/models/ACE-Step/acestep-v15-xl-sft) | [code](/examples/ace_step/model_inference/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_inference_low_vram/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_training/full/acestep-v15-xl-sft.sh) | [code](/examples/ace_step/model_training/validate_full/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_training/lora/acestep-v15-xl-sft.sh) | [code](/examples/ace_step/model_training/validate_lora/acestep-v15-xl-sft.py) |
@@ -379,6 +398,7 @@ Quick start: experience popular and the latest models:
379
398
  Model overview:
380
399
 
381
400
  - Image generation
401
+ - Qwen-Image-2.1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Qwen-Image-2.1.html), [Example code](/examples/qwen_image_21/)
382
402
  - SenseNova-U1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/SenseNova-U1.html), [Example code](/examples/sensenova_u1/)
383
403
  - Boogu-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Boogu-Image.html), [Example code](/examples/boogu_image/)
384
404
  - Krea-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Krea-2.html), [Example code](/examples/krea2/)
@@ -401,6 +421,7 @@ Model overview:
401
421
  - Audio generation
402
422
  - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
403
423
  - MiniMax-Music3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MiniMax-Music3.html), [Example code](/examples/minimax_music3/)
424
+ - YuE2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/YuE2.html), [Example code](/examples/yue2/)
404
425
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
405
426
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
406
427
 
@@ -648,12 +669,14 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
648
669
 
649
670
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
650
671
  |-|-|-|-|-|-|-|-|
672
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1.py) |
651
673
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT: T2I](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT.py) |
652
674
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT: Edit](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-Edit.py) |
653
675
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-LoRAs: 8-step](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-LoRAs) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-LoRA-8step.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-LoRA-8step.py) | - | - | - | - |
654
676
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-SFT: T2I](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-SFT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-SFT.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-SFT.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-SFT.py) |
655
677
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-SFT: Edit](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-SFT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-SFT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-SFT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-SFT-Edit.py) |
656
678
  | MiniMax-Music3 | [MiniMax/MiniMax-Music3](https://www.modelscope.cn/models/MiniMax/MiniMax-Music3) | [code](/examples/minimax_music3/model_inference/MiniMax-Music3.py) | [code](/examples/minimax_music3/model_inference_low_vram/MiniMax-Music3.py) | — | — | — | — |
679
+ | YuE2 | [m-a-p/YuE2-3B](https://www.modelscope.cn/models/m-a-p/YuE2-3B) | [code](/examples/yue2/model_inference/YuE2.py) | [code](/examples/yue2/model_inference_low_vram/YuE2.py) | — | — | — | — |
657
680
  | DiffSynth-Music | [DiffSynth-Studio/DiffSynth-Music](https://www.modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music) | [code](/examples/diffsynth_music/model_inference/DiffSynth-Music.py) | [code](/examples/diffsynth_music/model_inference_low_vram/DiffSynth-Music.py) | [code](/examples/diffsynth_music/model_training/full/DiffSynth-Music.sh) | [code](/examples/diffsynth_music/model_training/validate_full/DiffSynth-Music.py) | - | - |
658
681
  | MiniMax-H3 | [MiniMax/MiniMax-H3: FL2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-FL2VA.py) |
659
682
  | MiniMax-H3 | [MiniMax/MiniMax-H3: Ref2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-Ref2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-Ref2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-Ref2VA.py) |
@@ -706,6 +729,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
706
729
  | JoyAI-Image | [jd-opensource/JoyAI-Image-Edit](https://modelscope.cn/models/jd-opensource/JoyAI-Image-Edit) | [code](/examples/joyai_image/model_inference/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_inference_low_vram/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_training/full/JoyAI-Image-Edit.sh) | [code](/examples/joyai_image/model_training/validate_full/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_training/lora/JoyAI-Image-Edit.sh) | [code](/examples/joyai_image/model_training/validate_lora/JoyAI-Image-Edit.py) |
707
730
  | ERNIE-Image | [PaddlePaddle/ERNIE-Image](https://www.modelscope.cn/models/PaddlePaddle/ERNIE-Image) | [code](/examples/ernie_image/model_inference/ERNIE-Image.py) | [code](/examples/ernie_image/model_inference_low_vram/ERNIE-Image.py) | [code](/examples/ernie_image/model_training/full/ERNIE-Image.sh) | [code](/examples/ernie_image/model_training/validate_full/ERNIE-Image.py) | [code](/examples/ernie_image/model_training/lora/ERNIE-Image.sh) | [code](/examples/ernie_image/model_training/validate_lora/ERNIE-Image.py) |
708
731
  | ERNIE-Image | [PaddlePaddle/ERNIE-Image-Turbo](https://www.modelscope.cn/models/PaddlePaddle/ERNIE-Image-Turbo) | [code](/examples/ernie_image/model_inference/ERNIE-Image-Turbo.py) | [code](/examples/ernie_image/model_inference_low_vram/ERNIE-Image-Turbo.py) | — | — | — | — |
732
+ | LTX-2.5 | [Lightricks/LTX-2.5: OneStagePipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-OneStage.py) | [code](/examples/ltx2/model_training/full/LTX-2.5-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/LTX-2.5-T2AV.py) | [code](/examples/ltx2/model_training/lora/LTX-2.5-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/LTX-2.5-T2AV.py) |
733
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-TwoStage.py) | - | - | - | - |
734
+ | LTX-2.5 | [Lightricks/LTX-2.5: OneStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-I2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-I2AV-OneStage.py) | - | - | - | - |
735
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-I2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-I2AV-TwoStage.py) | - | - | - | - |
736
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-A2V](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-A2V-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-A2V-TwoStage.py) | - | - | - | - |
737
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-Retake](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-TwoStage-Retake.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-TwoStage-Retake.py) | - | - | - | - |
738
+ | LTX-2.5 | [Lightricks/LTX-2.5: T2A](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2A.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2A.py) | - | - | - | - |
739
+ | LTX-2.5 | [Lightricks/LTX-2.5: DistilledPipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-DistilledPipeline.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-DistilledPipeline.py) | - | - | - | - |
740
+ | LTX-2.5 | [Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler](https://www.modelscope.cn/models/Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler) | [code](/examples/ltx2/model_inference/LTX-2.5-IC-LoRA-Pixel-Spatial-Upscaler.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-IC-LoRA-Pixel-Spatial-Upscaler.py) | - | - | - | - |
741
+ | LTX-2.5 | [Lightricks/LTX-2.5: INT8-ConvRot](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-INT8-ConvRot.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-INT8-ConvRot.py) | - | - | - | - |
709
742
  | LTX-2 | [jd-opensource/JoyAI-Echo](https://modelscope.cn/models/jd-opensource/JoyAI-Echo) | [code](/examples/ltx2/model_inference/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_inference_low_vram/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_training/full/JoyAI-Echo-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_training/lora/JoyAI-Echo-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/JoyAI-Echo-T2AV.py) |
710
743
  | LTX-2 | [Lightricks/LTX-2.3: OneStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.3) | [code](/examples/ltx2/model_inference/LTX-2.3-I2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.3-I2AV-OneStage.py) | [code](/examples/ltx2/model_training/full/LTX-2.3-I2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/LTX-2.3-I2AV.py) | [code](/examples/ltx2/model_training/lora/LTX-2.3-I2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/LTX-2.3-I2AV.py) |
711
744
  | LTX-2 | [Lightricks/LTX-2.3: TwoStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.3) | [code](/examples/ltx2/model_inference/LTX-2.3-I2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.3-I2AV-TwoStage.py) | - | - | - | - |
@@ -30,6 +30,7 @@ References:
30
30
 
31
31
  See also:
32
32
 
33
+ * [DiffSynth-ComfyUI](https://github.com/modelscope/DiffSynth-ComfyUI): A [ComfyUI](https://github.com/Comfy-Org/ComfyUI) node package built on DiffSynth-Studio, enabling you to build workflows in ComfyUI to run model inference.
33
34
  * [DiffSynth-WebUI](https://github.com/modelscope/DiffSynth-WebUI): A lightweight LoRA training tool built on DiffSynth-Studio, enabling LoRA training of models on consumer-grade GPUs.
34
35
  * [ModelScope AIGC Zone (for Chinese users)](https://modelscope.cn/aigc/home): Productized features powered by DiffSynth-Studio as the core inference and training engine; experience the rich potential of the open-source model ecosystem.
35
36
  * [ModelScope Civision (for global users)](https://modelscope.ai/civision/home): Unlock the vast potential of the open-source model ecosystem through productized capabilities powered by DiffSynth-Studio.
@@ -40,6 +41,21 @@ See also:
40
41
 
41
42
  > Currently, the development personnel of this project are limited, with most of the work handled by [Artiprocher](https://github.com/Artiprocher) and [mi804](https://github.com/mi804). Therefore, the progress of new feature development will be relatively slow, and the speed of responding to and resolving issues is limited. We apologize for this and ask developers to understand.
42
43
 
44
+ - **September 20, 2026** Qwen-Image-2.1 was open-sourced. The model supports text-to-image generation, image editing, and RGBA output with a transparency channel. DiffSynth-Studio now provides full support for it. For details, please refer to the [documentation](/docs/zh/Model_Details/Qwen-Image-2.1.md) and [example code](/examples/qwen_image_21/).
45
+
46
+ - **September 14, 2026** We trained and open-sourced DiffSynth-Music, a controllable music generation model based on ACE-Step, which supports five control modes: Beats, Vocals, Accompany, Prosody, and Reference. For more information, please refer to:
47
+ * Model: https://modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music
48
+ * Technical Report: https://arxiv.org/abs/2609.12774
49
+ * Code: [./examples/diffsynth_music/](./examples/diffsynth_music/)
50
+
51
+ - **September 11, 2026** We have added support for YuE2, a new music generation model. For details, please refer to the [documentation](/docs/zh/Model_Details/YuE2.md) and [example code](/examples/yue2/).
52
+
53
+ - **September 10, 2026** We have integrated [LTX-2.5](https://modelscope.cn/models/Lightricks/LTX-2.5), the latest audio-video generation model from Lightricks. The features include text-to-audio/video with automatic duration prediction, image-to-audio/video with keyframe interpolation, audio-to-video, audio-video retake, IC-LoRA pixel spatial upscaling, text-to-audio, INT8 quantized inference, low VRAM inference, and training. For details, please refer to the [documentation](/docs/en/Model_Details/LTX-2.md) and [code](/examples/ltx2/).
54
+
55
+ - **September 10, 2026** We have open-sourced [DiffSynth-ComfyUI](https://github.com/modelscope/DiffSynth-ComfyUI). Now you can run model inference with DiffSynth-Studio in [ComfyUI](https://github.com/Comfy-Org/ComfyUI).
56
+
57
+ - **September 8, 2026** We trained a [MiniMax-H3 Training Adapter](https://www.modelscope.cn/models/DiffSynth-Studio/MiniMax-H3-TrainingAdapter) for the CFG-distilled MiniMax-H3 base, a DeCFG LoRA training adapter offered in FL2VA and Ref2VA versions. The training data comes from the self-generated [MiniMax-H3-Self-Generated-Dataset](https://www.modelscope.cn/datasets/DiffSynth-Studio/MiniMax-H3-Self-Generated-Dataset). Based on this adapter, we trained two toy models, [MiniMax-H3-Songyu-LoRA](https://www.modelscope.cn/models/mibei0804/MiniMax-H3-Songyu-LoRA) (character identity, FL2VA) and [MiniMax-H3-Ref2VA-FirstFrame-Lineart](https://www.modelscope.cn/models/mibei0804/MiniMax-H3-Ref2VA-FirstFrame-Lineart) (lineart first-frame control, Ref2VA), as references for inference and fine-tuning.
58
+
43
59
  - **September 1, 2026** We have integrated [SenseNova-U1.5](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT), SenseTime's unified multimodal model, for which we provide text-to-image generation, image editing, low VRAM inference, and training support. For details, please refer to the [documentation](/docs/en/Model_Details/SenseNova-U1.md) and [example code](/examples/sensenova_u1/).
44
60
 
45
61
  - **August 31, 2026** We have integrated [Qwen-Video-Edit](https://modelscope.cn/models/yunpeng1998/Qwen-Video-Edit), a video editing model developed by open-source community contributor [yunpeng1998](https://github.com/yunpeng1998) based on the image editing model Qwen-Image-Edit. This serves as an excellent example of exploring and expanding model capabilities.
@@ -48,6 +64,9 @@ See also:
48
64
 
49
65
  - **August 19, 2026** We have released the model quantization feature. It provides a unified `QuantizeConfig` entry point supporting multiple quantization backends including bitsandbytes, torchao, and comfy-kitchen, with capabilities such as online quantization, loading pre-quantized weights, mixed quantization, saving quantized models, and quantization + LoRA training. For details, please refer to the [documentation](/docs/en/Pipeline_Usage/Quantization.md).
50
66
 
67
+ <details>
68
+ <summary>More</summary>
69
+
51
70
  - **August 17, 2026** MiniMax-Music3 open-sourced, welcome a new member to the audio model family! Support includes text-to-music generation and low VRAM inference. For details, please refer to the [documentation](/docs/en/Model_Details/MiniMax-Music3.md) and [example code](/examples/minimax_music3/).
52
71
 
53
72
  - **August 7, 2026** We add support for Wan-Animate-2 in the Wan series. Given a reference image and a driving video, it makes the reference character perform the motions in the driving video, generating high-quality character animation, with both standard and distilled variants. For details, please refer to the [documentation](/docs/en/Model_Details/Wan.md) and [example code](/examples/wanvideo/).
@@ -58,9 +77,6 @@ See also:
58
77
 
59
78
  - **July 21, 2026** We have open-sourced [DiffSynth-Studio Model Integration Skills](https://www.modelscope.cn/collections/DiffSynth-Studio/DiffSynth-Studio-Model-Integration-Skills). This is a composable collection of Agent Skills that automates the entire workflow of integrating external diffusion models into DiffSynth-Studio, significantly improving the standardization and efficiency of model integration. Get started with the [example](https://www.modelscope.cn/skills/DiffSynth-Studio/diffsynth-integrator/file/view/master/example.md?status=1)!
60
79
 
61
- <details>
62
- <summary>More</summary>
63
-
64
80
  - **June 29, 2026** Boogu-Image open-sourced. Support includes text-to-image generation, image editing, low VRAM inference, and training capabilities. For details, please refer to the [documentation](/docs/en/Model_Details/Boogu-Image.md) and [example code](/examples/boogu_image/).
65
81
 
66
82
  - **June 24, 2026** Krea-2 is now open-source, and we have provided full support. For more details, please refer to the [documentation](/docs/en/Model_Details/Krea-2.md) and [example code](/examples/krea2/).
@@ -300,6 +316,7 @@ Quick start: experience popular and the latest models:
300
316
 
301
317
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
302
318
  |-|-|-|-|-|-|-|-|
319
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1.py) |
303
320
  | MiniMax-H3 | [MiniMax/MiniMax-H3: FL2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-FL2VA.py) |
304
321
  | MiniMax-H3 | [DiffSynth-Studio/MiniMax-H3-NF4: FL2VA pruned](https://www.modelscope.cn/models/DiffSynth-Studio/MiniMax-H3-NF4) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-NF4-Pruned-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-NF4-Pruned-FL2VA.py) | - | - | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-NF4-Pruned-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-NF4-Pruned-FL2VA.py) |
305
322
  | ACE-Step | [ACE-Step/acestep-v15-xl-sft](https://www.modelscope.cn/models/ACE-Step/acestep-v15-xl-sft) | [code](/examples/ace_step/model_inference/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_inference_low_vram/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_training/full/acestep-v15-xl-sft.sh) | [code](/examples/ace_step/model_training/validate_full/acestep-v15-xl-sft.py) | [code](/examples/ace_step/model_training/lora/acestep-v15-xl-sft.sh) | [code](/examples/ace_step/model_training/validate_lora/acestep-v15-xl-sft.py) |
@@ -310,6 +327,7 @@ Quick start: experience popular and the latest models:
310
327
  Model overview:
311
328
 
312
329
  - Image generation
330
+ - Qwen-Image-2.1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Qwen-Image-2.1.html), [Example code](/examples/qwen_image_21/)
313
331
  - SenseNova-U1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/SenseNova-U1.html), [Example code](/examples/sensenova_u1/)
314
332
  - Boogu-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Boogu-Image.html), [Example code](/examples/boogu_image/)
315
333
  - Krea-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Krea-2.html), [Example code](/examples/krea2/)
@@ -332,6 +350,7 @@ Model overview:
332
350
  - Audio generation
333
351
  - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
334
352
  - MiniMax-Music3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MiniMax-Music3.html), [Example code](/examples/minimax_music3/)
353
+ - YuE2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/YuE2.html), [Example code](/examples/yue2/)
335
354
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
336
355
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
337
356
 
@@ -579,12 +598,14 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
579
598
 
580
599
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
581
600
  |-|-|-|-|-|-|-|-|
601
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1.py) |
582
602
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT: T2I](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT.py) |
583
603
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT: Edit](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-Edit.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-Edit.py) |
584
604
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-LoRAs: 8-step](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-LoRAs) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-LoRA-8step.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-LoRA-8step.py) | - | - | - | - |
585
605
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-SFT: T2I](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-SFT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-SFT.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-SFT.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-SFT.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-SFT.py) |
586
606
  | SenseNova-U1 | [SenseNova/SenseNova-U1.5-8B-MoT-SFT: Edit](https://www.modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoT-SFT) | [code](/examples/sensenova_u1/model_inference/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_inference_low_vram/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_training/full/SenseNova-U1.5-8B-MoT-SFT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_full/SenseNova-U1.5-8B-MoT-SFT-Edit.py) | [code](/examples/sensenova_u1/model_training/lora/SenseNova-U1.5-8B-MoT-SFT-Edit.sh) | [code](/examples/sensenova_u1/model_training/validate_lora/SenseNova-U1.5-8B-MoT-SFT-Edit.py) |
587
607
  | MiniMax-Music3 | [MiniMax/MiniMax-Music3](https://www.modelscope.cn/models/MiniMax/MiniMax-Music3) | [code](/examples/minimax_music3/model_inference/MiniMax-Music3.py) | [code](/examples/minimax_music3/model_inference_low_vram/MiniMax-Music3.py) | — | — | — | — |
608
+ | YuE2 | [m-a-p/YuE2-3B](https://www.modelscope.cn/models/m-a-p/YuE2-3B) | [code](/examples/yue2/model_inference/YuE2.py) | [code](/examples/yue2/model_inference_low_vram/YuE2.py) | — | — | — | — |
588
609
  | DiffSynth-Music | [DiffSynth-Studio/DiffSynth-Music](https://www.modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music) | [code](/examples/diffsynth_music/model_inference/DiffSynth-Music.py) | [code](/examples/diffsynth_music/model_inference_low_vram/DiffSynth-Music.py) | [code](/examples/diffsynth_music/model_training/full/DiffSynth-Music.sh) | [code](/examples/diffsynth_music/model_training/validate_full/DiffSynth-Music.py) | - | - |
589
610
  | MiniMax-H3 | [MiniMax/MiniMax-H3: FL2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-FL2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-FL2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-FL2VA.py) |
590
611
  | MiniMax-H3 | [MiniMax/MiniMax-H3: Ref2VA](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_training/full/MiniMax-H3-Ref2VA.sh) | [code](/examples/minimax_h3/model_training/validate_full/MiniMax-H3-Ref2VA.py) | [code](/examples/minimax_h3/model_training/lora/MiniMax-H3-Ref2VA.sh) | [code](/examples/minimax_h3/model_training/validate_lora/MiniMax-H3-Ref2VA.py) |
@@ -637,6 +658,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
637
658
  | JoyAI-Image | [jd-opensource/JoyAI-Image-Edit](https://modelscope.cn/models/jd-opensource/JoyAI-Image-Edit) | [code](/examples/joyai_image/model_inference/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_inference_low_vram/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_training/full/JoyAI-Image-Edit.sh) | [code](/examples/joyai_image/model_training/validate_full/JoyAI-Image-Edit.py) | [code](/examples/joyai_image/model_training/lora/JoyAI-Image-Edit.sh) | [code](/examples/joyai_image/model_training/validate_lora/JoyAI-Image-Edit.py) |
638
659
  | ERNIE-Image | [PaddlePaddle/ERNIE-Image](https://www.modelscope.cn/models/PaddlePaddle/ERNIE-Image) | [code](/examples/ernie_image/model_inference/ERNIE-Image.py) | [code](/examples/ernie_image/model_inference_low_vram/ERNIE-Image.py) | [code](/examples/ernie_image/model_training/full/ERNIE-Image.sh) | [code](/examples/ernie_image/model_training/validate_full/ERNIE-Image.py) | [code](/examples/ernie_image/model_training/lora/ERNIE-Image.sh) | [code](/examples/ernie_image/model_training/validate_lora/ERNIE-Image.py) |
639
660
  | ERNIE-Image | [PaddlePaddle/ERNIE-Image-Turbo](https://www.modelscope.cn/models/PaddlePaddle/ERNIE-Image-Turbo) | [code](/examples/ernie_image/model_inference/ERNIE-Image-Turbo.py) | [code](/examples/ernie_image/model_inference_low_vram/ERNIE-Image-Turbo.py) | — | — | — | — |
661
+ | LTX-2.5 | [Lightricks/LTX-2.5: OneStagePipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-OneStage.py) | [code](/examples/ltx2/model_training/full/LTX-2.5-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/LTX-2.5-T2AV.py) | [code](/examples/ltx2/model_training/lora/LTX-2.5-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/LTX-2.5-T2AV.py) |
662
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-TwoStage.py) | - | - | - | - |
663
+ | LTX-2.5 | [Lightricks/LTX-2.5: OneStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-I2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-I2AV-OneStage.py) | - | - | - | - |
664
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-I2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-I2AV-TwoStage.py) | - | - | - | - |
665
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-A2V](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-A2V-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-A2V-TwoStage.py) | - | - | - | - |
666
+ | LTX-2.5 | [Lightricks/LTX-2.5: TwoStagePipeline-Retake](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-TwoStage-Retake.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-TwoStage-Retake.py) | - | - | - | - |
667
+ | LTX-2.5 | [Lightricks/LTX-2.5: T2A](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2A.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2A.py) | - | - | - | - |
668
+ | LTX-2.5 | [Lightricks/LTX-2.5: DistilledPipeline-T2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-DistilledPipeline.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-DistilledPipeline.py) | - | - | - | - |
669
+ | LTX-2.5 | [Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler](https://www.modelscope.cn/models/Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler) | [code](/examples/ltx2/model_inference/LTX-2.5-IC-LoRA-Pixel-Spatial-Upscaler.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-IC-LoRA-Pixel-Spatial-Upscaler.py) | - | - | - | - |
670
+ | LTX-2.5 | [Lightricks/LTX-2.5: INT8-ConvRot](https://www.modelscope.cn/models/Lightricks/LTX-2.5) | [code](/examples/ltx2/model_inference/LTX-2.5-T2AV-INT8-ConvRot.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.5-T2AV-INT8-ConvRot.py) | - | - | - | - |
640
671
  | LTX-2 | [jd-opensource/JoyAI-Echo](https://modelscope.cn/models/jd-opensource/JoyAI-Echo) | [code](/examples/ltx2/model_inference/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_inference_low_vram/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_training/full/JoyAI-Echo-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/JoyAI-Echo-T2AV.py) | [code](/examples/ltx2/model_training/lora/JoyAI-Echo-T2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/JoyAI-Echo-T2AV.py) |
641
672
  | LTX-2 | [Lightricks/LTX-2.3: OneStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.3) | [code](/examples/ltx2/model_inference/LTX-2.3-I2AV-OneStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.3-I2AV-OneStage.py) | [code](/examples/ltx2/model_training/full/LTX-2.3-I2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_full/LTX-2.3-I2AV.py) | [code](/examples/ltx2/model_training/lora/LTX-2.3-I2AV-splited.sh) | [code](/examples/ltx2/model_training/validate_lora/LTX-2.3-I2AV.py) |
642
673
  | LTX-2 | [Lightricks/LTX-2.3: TwoStagePipeline-I2AV](https://www.modelscope.cn/models/Lightricks/LTX-2.3) | [code](/examples/ltx2/model_inference/LTX-2.3-I2AV-TwoStage.py) | [code](/examples/ltx2/model_inference_low_vram/LTX-2.3-I2AV-TwoStage.py) | - | - | - | - |
@@ -850,7 +850,7 @@ ltx2_series = [
850
850
  "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_text_encoder.LTX2TextEncoderPostModulesStateDictConverter",
851
851
  },
852
852
  {
853
- # Example: ModelConfig(model_id="Lightricks/LTX-2.3", origin_file_pattern="ltx-2.3-spatial-upscaler-x2-1.0.safetensors")
853
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.3", origin_file_pattern="ltx-2.3-spatial-upscaler-x2-1.1.safetensors")
854
854
  "model_hash": "aed408774d694a2452f69936c32febb5",
855
855
  "model_name": "ltx2_latent_upsampler",
856
856
  "model_class": "diffsynth.models.ltx2_upsampler.LTX2LatentUpsampler",
@@ -895,6 +895,104 @@ ltx2_series = [
895
895
  "extra_kwargs": {"separated_audio_video": True, "embedding_dim_gemma": 3840, "num_layers_gemma": 49, "video_attention_heads": 32, "video_attention_head_dim": 128, "audio_attention_heads": 32, "audio_attention_head_dim": 64, "num_connector_layers": 8, "apply_gated_attention": True},
896
896
  "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_text_encoder.LTX2TextEncoderPostModulesStateDictConverter",
897
897
  },
898
+ {
899
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="diffusion_models/ltx-2.5-22b-dev-transformer-bf16.safetensors")
900
+ "model_hash": "7960c5dc4626650824e36f65a8e992e9",
901
+ "model_name": "ltx2_dit",
902
+ "model_class": "diffsynth.models.ltx2_dit.LTXModel",
903
+ "extra_kwargs": {"caption_channels": None, "apply_gated_attention": True, "cross_attention_adaln": True, "ff_bias": False, "use_keyframes_abs_pos_embedding": True, "use_tokenwise_av_ca_scale_shift": True},
904
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_dit.LTXModelStateDictConverter",
905
+ },
906
+ {
907
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="diffusion_models/ltx-2.5-22b-dev-transformer-comfy-int8-convrot.safetensors")
908
+ "model_hash": "57343d320cac0bbba58a488b8ebe7187",
909
+ "model_name": "ltx2_dit",
910
+ "model_class": "diffsynth.models.ltx2_dit.LTXModel",
911
+ "extra_kwargs": {"caption_channels": None, "apply_gated_attention": True, "cross_attention_adaln": True, "ff_bias": False, "use_keyframes_abs_pos_embedding": True, "use_tokenwise_av_ca_scale_shift": True},
912
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_dit.LTXModelStateDictConverter",
913
+ "quant_config": {"method": "comfy_kitchen_int8_w8a8", "load_prequantized": True, "exclude_modules": ["timestep_embedder.linear_1", "timestep_embedder.linear_2", "adaln_single.linear", "audio_adaln_single.linear", "prompt_adaln_single.linear", "audio_prompt_adaln_single.linear", "av_ca_a2v_gate_adaln_single.linear", "av_ca_audio_scale_shift_adaln_single.linear", "av_ca_v2a_gate_adaln_single.linear", "av_ca_video_scale_shift_adaln_single.linear", "patchify_proj", "audio_patchify_proj", "proj_out", "audio_proj_out", "to_gate_logits"]},
914
+ },
915
+ {
916
+ # Example: ModelConfig(model_id="DiffSynth-Studio/LTX-2.5-Repackage", origin_file_pattern="text_encoder_post_modules.safetensors")
917
+ "model_hash": "8f3c146ff3d584392236c5b29d26146c",
918
+ "model_name": "ltx2_text_encoder_post_modules",
919
+ "model_class": "diffsynth.models.ltx25_text_encoder.LTX25TextEncoderPostModules",
920
+ },
921
+ {
922
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors")
923
+ "model_hash": "055700dc619165899bebb5162f699cd2",
924
+ "model_name": "ltx2_text_encoder",
925
+ "model_class": "diffsynth.models.ltx25_text_encoder.LTX25TextEncoder",
926
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx25_text_encoder.LTX25TextEncoderStateDictConverter",
927
+ },
928
+ {
929
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="text_encoders/gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors")
930
+ "model_hash": "4743ded7a5725b6589bccdb62512723b",
931
+ "model_name": "ltx2_text_encoder",
932
+ "model_class": "diffsynth.models.ltx25_text_encoder.LTX25TextEncoder",
933
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx25_text_encoder.LTX25TextEncoderStateDictConverter",
934
+ "quant_config": {"method": "comfy_kitchen_int8_w8a8", "load_prequantized": True, "exclude_modules": ["lm_head", "embedding_projection", "patch_dense"]},
935
+ },
936
+ {
937
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-video-vae-bf16.safetensors")
938
+ "model_hash": "e19205490f01801d0a7b6d3aba61e26e",
939
+ "model_name": "ltx2_video_vae_encoder",
940
+ "model_class": "diffsynth.models.ltx2_video_vae.LTX2VideoEncoder",
941
+ "extra_kwargs": {"encoder_version": "ltx-2.3"},
942
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_video_vae.LTX2VideoEncoderStateDictConverter",
943
+ },
944
+ {
945
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-video-vae-bf16.safetensors")
946
+ "model_hash": "e19205490f01801d0a7b6d3aba61e26e",
947
+ "model_name": "ltx25_diffusion_video_vae_decoder",
948
+ "model_class": "diffsynth.models.ltx25_diffusion_video_vae.LTX25DiffusionVideoDecoder",
949
+ "extra_kwargs": {"stage_channels": [2048, 1024, 512, 512, 256], "stage_depths": [4, 6, 4, 2, 8], "stage_kernels": [[3, 7, 7], [3, 7, 7], [3, 5, 5], [3, 5, 5], [11, 11, 11]], "stage5_kernel": [11, 11, 11], "timestep_scale_multiplier": 1000.0, "default_num_inference_steps": 1, "model_output_type": "x0"},
950
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx25_diffusion_video_vae.LTX25DiffusionVideoDecoderStateDictConverter",
951
+ },
952
+ {
953
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-video-vae-conv-bf16.safetensors")
954
+ "model_hash": "a1d642eecae96baa9c31d4e405564f49",
955
+ "model_name": "ltx2_video_vae_encoder",
956
+ "model_class": "diffsynth.models.ltx2_video_vae.LTX2VideoEncoder",
957
+ "extra_kwargs": {"encoder_version": "ltx-2.3"},
958
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_video_vae.LTX2VideoEncoderStateDictConverter",
959
+ },
960
+ {
961
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-video-vae-conv-bf16.safetensors")
962
+ "model_hash": "a1d642eecae96baa9c31d4e405564f49",
963
+ "model_name": "ltx2_video_vae_decoder",
964
+ "model_class": "diffsynth.models.ltx2_video_vae.LTX2VideoDecoder",
965
+ "extra_kwargs": {"decoder_version": "ltx-2.3"},
966
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_video_vae.LTX2VideoDecoderStateDictConverter",
967
+ },
968
+ {
969
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-audio-vae-bf16.safetensors")
970
+ "model_hash": "c2488315f13356abb806f9f217f1e803",
971
+ "model_name": "ltx2_audio_vae_decoder",
972
+ "model_class": "diffsynth.models.ltx2_audio_vae.LTX2AudioDecoder",
973
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_audio_vae.LTX2AudioDecoderStateDictConverter",
974
+ },
975
+ {
976
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-audio-vae-bf16.safetensors")
977
+ "model_hash": "c2488315f13356abb806f9f217f1e803",
978
+ "model_name": "ltx2_audio_vocoder",
979
+ "model_class": "diffsynth.models.ltx2_audio_vae.LTX2VocoderWithBWE",
980
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_audio_vae.LTX2VocoderStateDictConverter",
981
+ },
982
+ {
983
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="vae/ltx-2.5-audio-vae-bf16.safetensors")
984
+ "model_hash": "c2488315f13356abb806f9f217f1e803",
985
+ "model_name": "ltx2_audio_vae_encoder",
986
+ "model_class": "diffsynth.models.ltx2_audio_vae.LTX2AudioEncoder",
987
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx2_audio_vae.LTX2AudioEncoderStateDictConverter",
988
+ },
989
+ {
990
+ # Example: ModelConfig(model_id="Lightricks/LTX-2.5", origin_file_pattern="model_patches/ltx-2.5-duration-head-bf16.safetensors")
991
+ "model_hash": "35840495e440a4f00946450269299bd6",
992
+ "model_name": "ltx25_duration_head",
993
+ "model_class": "diffsynth.models.ltx25_duration_head.LTX25DurationHead",
994
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.ltx25_duration_head.LTX25DurationHeadStateDictConverter",
995
+ },
898
996
  ]
899
997
  anima_series = [
900
998
  {
@@ -1116,14 +1214,6 @@ joyai_image_series = [
1116
1214
  "model_name": "joyai_image_dit",
1117
1215
  "model_class": "diffsynth.models.joyai_image_dit.JoyAIImageDiT",
1118
1216
  },
1119
- {
1120
- # Example: ModelConfig(model_id="jd-opensource/JoyAI-Image-Edit", origin_file_pattern="JoyAI-Image-Und/model-*.safetensors")
1121
- # Example: ModelConfig(model_id="DiffSynth-Studio/ImageMetrics", origin_file_pattern="UnifiedReward-Edit-qwen3vl-8b/model-*.safetensors")
1122
- "model_hash": "2d11bf14bba8b4e87477c8199a895403",
1123
- "model_name": "joyai_image_text_encoder",
1124
- "model_class": "diffsynth.models.joyai_image_text_encoder.JoyAIImageTextEncoder",
1125
- "state_dict_converter": "diffsynth.utils.state_dict_converters.joyai_image_text_encoder.JoyAIImageTextEncoderStateDictConverter",
1126
- },
1127
1217
  ]
1128
1218
 
1129
1219
  boogu_image_series = [
@@ -1547,6 +1637,22 @@ minimax_h3_series = [
1547
1637
  "extra_kwargs": {'control_layers': (0, 10, 20, 30, 40), 'control_in_dim': 49, 'control_apply_audio': False, 'hidden_size': 5376, 'num_attention_heads': 56, 'attention_head_dim': 128, 'ffn_hidden_size': 14336, 'time_embed_dim': 2688, 'adaln_out_features': 96768, 'patch_size': (1, 2, 2), 'norm_eps': 1e-05, 'qk_norm_eps': 1e-05},
1548
1638
  "state_dict_converter": "diffsynth.utils.state_dict_converters.minimax_h3_controlnet.MiniMaxH3ControlNetStateDictConverter"
1549
1639
  },
1640
+ {
1641
+ # Example: ModelConfig(model_id="WarmBloodAban/Minimax-h3_Singularity", origin_file_pattern="Minimax-h3_Singularity_ref2va_Pruned_v1.3_int8.safetensors")
1642
+ "model_hash": "c00577940e5a11f0fb5a0a754ac6003d",
1643
+ "model_name": "minimax_h3_dit",
1644
+ "model_class": "diffsynth.models.minimax_h3_dit_comfy.MiniMaxH3DiTComfyPruned",
1645
+ "quant_config": {"method": "comfy_kitchen_int8_w8a8", "load_prequantized": True, "exclude_modules": ["video_patch_proj", "audio_patch_proj", "condition_proj", "adaln_proj.linear", "final_layer.video_out", "final_layer.audio_out", "token_refiner.blocks.0.attn.qkv_proj", "token_refiner.blocks.0.attn.out_proj", "token_refiner.blocks.0.mlp.fc1", "token_refiner.blocks.0.mlp.fc2", "token_refiner.blocks.1.attn.qkv_proj", "token_refiner.blocks.1.attn.out_proj", "token_refiner.blocks.1.mlp.fc1", "token_refiner.blocks.1.mlp.fc2"]},
1646
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.minimax_h3_dit.MiniMaxH3DiTSingularityStateDictConverter",
1647
+ },
1648
+ {
1649
+ # Example: ModelConfig(model_id="WarmBloodAban/Minimax-h3_Singularity", origin_file_pattern="Minimax-h3_Singularity_ref2va_v1.3_int8.safetensors")
1650
+ "model_hash": "dea0301a17c3e68100ecc6cf9f52e2e5",
1651
+ "model_name": "minimax_h3_dit",
1652
+ "model_class": "diffsynth.models.minimax_h3_dit_comfy.MiniMaxH3DiTComfy",
1653
+ "quant_config": {"method": "comfy_kitchen_int8_w8a8", "load_prequantized": True, "exclude_modules": ["video_patch_proj", "audio_patch_proj", "condition_proj", "time_embedder.proj_in", "time_embedder.proj_out", "final_layer.adaln_proj.linear", "final_layer.video_out", "final_layer.audio_out", "token_refiner.blocks.0.attn.qkv_proj", "token_refiner.blocks.0.attn.out_proj", "token_refiner.blocks.0.mlp.fc1", "token_refiner.blocks.0.mlp.fc2", "token_refiner.blocks.1.attn.qkv_proj", "token_refiner.blocks.1.attn.out_proj", "token_refiner.blocks.1.mlp.fc1", "token_refiner.blocks.1.mlp.fc2"]},
1654
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.minimax_h3_dit.MiniMaxH3DiTSingularityStateDictConverter",
1655
+ },
1550
1656
  ]
1551
1657
 
1552
1658
  minimax_music3_series = [
@@ -1592,8 +1698,48 @@ sensenova_u1_series = [
1592
1698
  },
1593
1699
  ]
1594
1700
 
1701
+ yue2_series = [
1702
+ {
1703
+ # Example: ModelConfig(model_id="m-a-p/YuE2-3B", origin_file_pattern="model.safetensors")
1704
+ "model_hash": "bbf2429c299689138aaea6cd6a9b80ab",
1705
+ "model_name": "yue2_mot",
1706
+ "model_class": "diffsynth.models.yue2_mot.YuE2MoT",
1707
+ },
1708
+ {
1709
+ # Example: ModelConfig(model_id="m-a-p/YuE2-Vae", origin_file_pattern="model.safetensors")
1710
+ "model_hash": "2c8808833766c8bb497b44aaa90bfb45",
1711
+ "model_name": "yue2_vae",
1712
+ "model_class": "diffsynth.models.yue2_vae.YuE2VAEModel",
1713
+ },
1714
+ ]
1715
+
1716
+ qwen_image_21_series = [
1717
+ {
1718
+ # Example: ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="transformer/diffusion_pytorch_model*.safetensors")
1719
+ "model_hash": "4c9f4f5bdeb5c737742ad8e4080221d1",
1720
+ "model_name": "qwen_image_21_dit",
1721
+ "model_class": "diffsynth.models.qwen_image_21_dit.QwenImage21DiT",
1722
+ },
1723
+ {
1724
+ # Example: ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="vae/diffusion_pytorch_model.safetensors")
1725
+ "model_hash": "959403bfea52f7c5a3ccf82274f7e9ef",
1726
+ "model_name": "qwen_image_21_vae",
1727
+ "model_class": "diffsynth.models.qwen_image_21_vae.QwenImage21VAE",
1728
+ },
1729
+ {
1730
+ # Example: ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="text_encoder/model*.safetensors")
1731
+ # Example: ModelConfig(model_id="jd-opensource/JoyAI-Image-Edit", origin_file_pattern="JoyAI-Image-Und/model-*.safetensors")
1732
+ # Example: ModelConfig(model_id="DiffSynth-Studio/ImageMetrics", origin_file_pattern="UnifiedReward-Edit-qwen3vl-8b/model-*.safetensors")
1733
+ "model_hash": "2d11bf14bba8b4e87477c8199a895403",
1734
+ "model_name": "qwen_image_21_text_encoder",
1735
+ "model_class": "diffsynth.models.qwen_image_21_text_encoder.QwenImage21TextEncoder",
1736
+ "state_dict_converter": "diffsynth.utils.state_dict_converters.qwen_image_21_text_encoder.QwenImage21TextEncoderStateDictConverter",
1737
+ },
1738
+ ]
1739
+
1595
1740
  MODEL_CONFIGS = (
1596
1741
  stable_diffusion_xl_series + stable_diffusion_series + qwen_image_series + qwen_video_edit_series + wan_series + flux_series + flux2_series + ernie_image_series
1597
1742
  + z_image_series + ltx2_series + anima_series + mova_series + joyai_image_series + boogu_image_series + ace_step_series + hidream_o1_image_series
1598
1743
  + image_metrics_series + ideogram4_series + krea2_series + lingbot_video_series + minimax_h3_series + minimax_music3_series + sensenova_u1_series
1744
+ + yue2_series + qwen_image_21_series
1599
1745
  )
@@ -273,20 +273,37 @@ VRAM_MANAGEMENT_MODULE_MAPS = {
273
273
  "diffsynth.models.ltx2_dit.LTXModel": {
274
274
  "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
275
275
  "torch.nn.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
276
+ "diffsynth.models.ltx2_dit.BasicAVTransformerBlock": "diffsynth.core.vram.layers.AutoWrappedNonRecurseModule",
277
+ },
278
+ "diffsynth.models.ltx25_text_encoder.LTX25TextEncoder": {
279
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
280
+ "torch.nn.Embedding": "diffsynth.core.vram.layers.AutoWrappedModule",
281
+ "torch.nn.LayerNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
282
+ "transformers.models.gemma4_unified.modeling_gemma4_unified.Gemma4UnifiedTextDecoderLayer": "diffsynth.core.vram.layers.AutoWrappedNonRecurseModule",
283
+ "transformers.models.gemma4_unified.modeling_gemma4_unified.Gemma4UnifiedRMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
284
+ "transformers.models.gemma4_unified.modeling_gemma4_unified.Gemma4UnifiedTextRotaryEmbedding": "diffsynth.core.vram.layers.AutoWrappedModule",
285
+ },
286
+ "diffsynth.models.ltx25_text_encoder.LTX25TextEncoderPostModules": {
287
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
288
+ "torch.nn.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
289
+ "diffsynth.models.ltx25_text_encoder.LTX25Embeddings1DConnector": "diffsynth.core.vram.layers.AutoWrappedModule",
290
+ },
291
+ "diffsynth.models.ltx25_diffusion_video_vae.LTX25DiffusionVideoDecoder": {
292
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
293
+ "torch.nn.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
294
+ "diffsynth.models.ltx25_diffusion_video_vae.DiffusionVideoDecoder": "diffsynth.core.vram.layers.AutoWrappedModule",
276
295
  },
277
296
  "diffsynth.models.ltx2_upsampler.LTX2LatentUpsampler": {
278
- "torch.nn.Conv2d": "diffsynth.core.vram.layers.AutoWrappedModule",
279
- "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
280
- "torch.nn.GroupNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
297
+ "diffsynth.models.ltx2_upsampler.LTX2LatentUpsampler": "diffsynth.core.vram.layers.AutoWrappedModule",
281
298
  },
282
299
  "diffsynth.models.ltx2_video_vae.LTX2VideoEncoder": {
283
- "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
300
+ "diffsynth.models.ltx2_video_vae.LTX2VideoEncoder": "diffsynth.core.vram.layers.AutoWrappedModule",
284
301
  },
285
302
  "diffsynth.models.ltx2_video_vae.LTX2VideoDecoder": {
286
- "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
303
+ "diffsynth.models.ltx2_video_vae.LTX2VideoDecoder": "diffsynth.core.vram.layers.AutoWrappedModule",
287
304
  },
288
305
  "diffsynth.models.ltx2_audio_vae.LTX2AudioDecoder": {
289
- "torch.nn.Conv2d": "diffsynth.core.vram.layers.AutoWrappedModule",
306
+ "diffsynth.models.ltx2_audio_vae.LTX2AudioDecoder": "diffsynth.core.vram.layers.AutoWrappedModule",
290
307
  },
291
308
  "diffsynth.models.ltx2_audio_vae.LTX2Vocoder": {
292
309
  "torch.nn.Conv1d": "diffsynth.core.vram.layers.AutoWrappedModule",
@@ -346,15 +363,6 @@ VRAM_MANAGEMENT_MODULE_MAPS = {
346
363
  "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
347
364
  "torch.nn.LayerNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
348
365
  },
349
- "diffsynth.models.joyai_image_text_encoder.JoyAIImageTextEncoder": {
350
- "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
351
- "torch.nn.Embedding": "diffsynth.core.vram.layers.AutoWrappedModule",
352
- "torch.nn.LayerNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
353
- "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
354
- "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLVisionModel": "diffsynth.core.vram.layers.AutoWrappedModule",
355
- "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLTextRMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
356
- "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLTextRotaryEmbedding": "diffsynth.core.vram.layers.AutoWrappedModule",
357
- },
358
366
  "diffsynth.models.boogu_image_dit.BooguImageDiT": {
359
367
  "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
360
368
  "torch.nn.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
@@ -500,6 +508,12 @@ VRAM_MANAGEMENT_MODULE_MAPS = {
500
508
  "torch.nn.Embedding": "diffsynth.core.vram.layers.AutoWrappedModule",
501
509
  "transformers.models.qwen3.modeling_qwen3.Qwen3RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
502
510
  },
511
+ "diffsynth.models.yue2_mot.YuE2MoT": {
512
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
513
+ "torch.nn.Embedding": "diffsynth.core.vram.layers.AutoWrappedModule",
514
+ "diffsynth.models.yue2_mot.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
515
+ "diffsynth.models.yue2_mot.AudioPositionEmbedding": "diffsynth.core.vram.layers.AutoWrappedModule",
516
+ },
503
517
  "diffsynth.models.minimax_h3_controlnet.MiniMaxH3ControlNet": {
504
518
  "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
505
519
  "torch.nn.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
@@ -533,6 +547,24 @@ VRAM_MANAGEMENT_MODULE_MAPS = {
533
547
  "diffsynth.models.demucs.LayerScale": "diffsynth.core.vram.layers.AutoWrappedModule",
534
548
  "torch.nn.MultiheadAttention": "diffsynth.core.vram.layers.AutoWrappedModule",
535
549
  },
550
+ "diffsynth.models.qwen_image_21_dit.QwenImage21DiT": {
551
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
552
+ "diffsynth.models.qwen_image_21_dit.QwenImage21RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
553
+ "diffsynth.models.qwen_image_21_dit.QwenImage21ZeroCenterRMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
554
+ },
555
+ "diffsynth.models.qwen_image_21_vae.QwenImage21VAE": {
556
+ "torch.nn.Conv2d": "diffsynth.core.vram.layers.AutoWrappedModule",
557
+ "diffsynth.models.qwen_image_21_vae.QwenImage21RMS_norm": "diffsynth.core.vram.layers.AutoWrappedModule",
558
+ },
559
+ "diffsynth.models.qwen_image_21_text_encoder.QwenImage21TextEncoder": {
560
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
561
+ "torch.nn.Embedding": "diffsynth.core.vram.layers.AutoWrappedModule",
562
+ "torch.nn.LayerNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
563
+ "torch.nn.Conv3d": "diffsynth.core.vram.layers.AutoWrappedModule",
564
+ "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLVisionModel": "diffsynth.core.vram.layers.AutoWrappedModule",
565
+ "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLTextRMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
566
+ "transformers.models.qwen3_vl.modeling_qwen3_vl.Qwen3VLTextRotaryEmbedding": "diffsynth.core.vram.layers.AutoWrappedModule",
567
+ },
536
568
  }
537
569
 
538
570
  def QwenImageTextEncoder_Module_Map_Updater():
@@ -0,0 +1 @@
1
+ from .attention import attention_forward, FLEX_ATTN_AVAILABLE