diffsynth 2.1.6__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 (300) hide show
  1. {diffsynth-2.1.6 → diffsynth-2.1.8}/PKG-INFO +41 -4
  2. {diffsynth-2.1.6 → diffsynth-2.1.8}/README.md +36 -3
  3. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/configs/model_configs.py +169 -10
  4. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/configs/vram_management_module_maps.py +70 -17
  5. diffsynth-2.1.8/diffsynth/core/attention/__init__.py +1 -0
  6. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/attention/attention.py +1 -1
  7. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/data/operators.py +47 -0
  8. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/data/unified_dataset.py +3 -2
  9. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/__init__.py +1 -1
  10. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/flow_match.py +38 -1
  11. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/runner.py +22 -0
  12. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/template.py +4 -3
  13. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/unified_reward_edit.py +1 -1
  14. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_conditioner.py +6 -0
  15. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_vae.py +7 -7
  16. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/demucs.py +3 -1
  17. diffsynth-2.1.8/diffsynth/models/diffsynth_music_dit.py +237 -0
  18. diffsynth-2.1.8/diffsynth/models/ltx25_diffusion_video_vae.py +5014 -0
  19. diffsynth-2.1.8/diffsynth/models/ltx25_duration_head.py +57 -0
  20. diffsynth-2.1.8/diffsynth/models/ltx25_text_encoder.py +449 -0
  21. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_audio_vae.py +20 -9
  22. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_common.py +3 -0
  23. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_dit.py +78 -17
  24. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_video_vae.py +7 -4
  25. diffsynth-2.1.8/diffsynth/models/qwen_image_21_dit.py +595 -0
  26. diffsynth-2.1.8/diffsynth/models/qwen_image_21_text_encoder.py +105 -0
  27. diffsynth-2.1.8/diffsynth/models/qwen_image_21_vae.py +1228 -0
  28. diffsynth-2.1.8/diffsynth/models/yue2_mot.py +760 -0
  29. diffsynth-2.1.8/diffsynth/models/yue2_tokenizer.py +43 -0
  30. diffsynth-2.1.8/diffsynth/models/yue2_vae.py +597 -0
  31. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/boogu_image.py +3 -3
  32. diffsynth-2.1.8/diffsynth/pipelines/diffsynth_music.py +353 -0
  33. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/joyai_image.py +3 -3
  34. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/ltx2_audio_video.py +124 -48
  35. diffsynth-2.1.8/diffsynth/pipelines/qwen_image_21.py +357 -0
  36. diffsynth-2.1.8/diffsynth/pipelines/yue2.py +574 -0
  37. diffsynth-2.1.8/diffsynth/utils/controlnet/annotator.py +71 -0
  38. diffsynth-2.1.8/diffsynth/utils/music_tools/__init__.py +2 -0
  39. diffsynth-2.1.8/diffsynth/utils/music_tools/click.py +17 -0
  40. diffsynth-2.1.8/diffsynth/utils/music_tools/prosody.py +60 -0
  41. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_diffusion_video_vae.py +21 -0
  42. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_duration_head.py +6 -0
  43. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/ltx25_text_encoder.py +16 -0
  44. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_video_vae.py +6 -2
  45. diffsynth-2.1.8/diffsynth/utils/state_dict_converters/minimax_h3_dit.py +7 -0
  46. diffsynth-2.1.6/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
  47. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/version.py +1 -1
  48. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth.egg-info/PKG-INFO +41 -4
  49. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth.egg-info/SOURCES.txt +21 -2
  50. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth.egg-info/requires.txt +6 -0
  51. {diffsynth-2.1.6 → diffsynth-2.1.8}/pyproject.toml +6 -0
  52. diffsynth-2.1.6/diffsynth/core/attention/__init__.py +0 -1
  53. diffsynth-2.1.6/diffsynth/models/joyai_image_text_encoder.py +0 -82
  54. diffsynth-2.1.6/diffsynth/utils/controlnet/annotator.py +0 -63
  55. {diffsynth-2.1.6 → diffsynth-2.1.8}/LICENSE +0 -0
  56. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/__init__.py +0 -0
  57. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/configs/__init__.py +0 -0
  58. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/__init__.py +0 -0
  59. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/data/__init__.py +0 -0
  60. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/device/__init__.py +0 -0
  61. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/device/npu_compatible_device.py +0 -0
  62. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/gradient/__init__.py +0 -0
  63. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/gradient/gradient_checkpoint.py +0 -0
  64. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/loader/__init__.py +0 -0
  65. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/loader/config.py +0 -0
  66. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/loader/file.py +0 -0
  67. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/loader/model.py +0 -0
  68. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/npu_patch/npu_fused_operator.py +0 -0
  69. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/offload_training/__init__.py +0 -0
  70. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/offload_training/manager.py +0 -0
  71. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/offload_training/memory_buffer.py +0 -0
  72. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/offload_training/offloader.py +0 -0
  73. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/__init__.py +0 -0
  74. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/backends/__init__.py +0 -0
  75. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/backends/bitsandbytes.py +0 -0
  76. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/backends/comfy_kitchen.py +0 -0
  77. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/backends/torchao.py +0 -0
  78. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/base.py +0 -0
  79. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/quant/config.py +0 -0
  80. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/vram/__init__.py +0 -0
  81. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/vram/disk_map.py +0 -0
  82. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/vram/initialization.py +0 -0
  83. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/core/vram/layers.py +0 -0
  84. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/base_pipeline.py +0 -0
  85. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/ddim_scheduler.py +0 -0
  86. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/dmd2.py +0 -0
  87. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/logger.py +0 -0
  88. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/loss.py +0 -0
  89. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/parsers.py +0 -0
  90. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/diffusion/training_module.py +0 -0
  91. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/__init__.py +0 -0
  92. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/aesthetic.py +0 -0
  93. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/base.py +0 -0
  94. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/bioclip.py +0 -0
  95. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/clip.py +0 -0
  96. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/fid.py +0 -0
  97. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/hpsv2.py +0 -0
  98. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/hpsv3.py +0 -0
  99. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/image_reward.py +0 -0
  100. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/lpips.py +0 -0
  101. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/pickscore.py +0 -0
  102. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/qwen_image_bench.py +0 -0
  103. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/metrics/unified_reward_2.py +0 -0
  104. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_dit.py +0 -0
  105. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_residual_fsq.py +0 -0
  106. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_text_encoder.py +0 -0
  107. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ace_step_tokenizer.py +0 -0
  108. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/aesthetic.py +0 -0
  109. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/anima_dit.py +0 -0
  110. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/bioclip.py +0 -0
  111. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/boogu_image_dit.py +0 -0
  112. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/clip.py +0 -0
  113. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/dinov3_image_encoder.py +0 -0
  114. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ernie_image_dit.py +0 -0
  115. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ernie_image_text_encoder.py +0 -0
  116. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/fid.py +0 -0
  117. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux2_dit.py +0 -0
  118. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux2_text_encoder.py +0 -0
  119. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux2_vae.py +0 -0
  120. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_controlnet.py +0 -0
  121. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_dit.py +0 -0
  122. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_infiniteyou.py +0 -0
  123. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_ipadapter.py +0 -0
  124. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_lora_encoder.py +0 -0
  125. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_lora_patcher.py +0 -0
  126. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_redux.py +0 -0
  127. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_text_encoder_clip.py +0 -0
  128. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_text_encoder_t5.py +0 -0
  129. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_vae.py +0 -0
  130. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/flux_value_control.py +0 -0
  131. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/general_modules.py +0 -0
  132. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/hidream_common.py +0 -0
  133. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/hidream_o1_image_dit.py +0 -0
  134. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/hpsv2.py +0 -0
  135. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/hpsv3.py +0 -0
  136. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ideogram4_dit.py +0 -0
  137. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ideogram4_text_encoder.py +0 -0
  138. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ideogram4_vae.py +0 -0
  139. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/image_reward.py +0 -0
  140. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/joyai_image_dit.py +0 -0
  141. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/krea2_dit.py +0 -0
  142. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/krea2_text_encoder.py +0 -0
  143. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/lingbot_video_dit.py +0 -0
  144. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/longcat_video_dit.py +0 -0
  145. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/lpips.py +0 -0
  146. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_text_encoder.py +0 -0
  147. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/ltx2_upsampler.py +0 -0
  148. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_audio_vae.py +0 -0
  149. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_controlnet.py +0 -0
  150. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_dit.py +0 -0
  151. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_dit_comfy.py +0 -0
  152. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_text_encoder.py +0 -0
  153. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_h3_video_vae.py +0 -0
  154. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_condition_encoder.py +0 -0
  155. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_dit.py +0 -0
  156. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_rvq_depth_decoder.py +0 -0
  157. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_text_encoder.py +0 -0
  158. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/minimax_music3_vocoder.py +0 -0
  159. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/model_loader.py +0 -0
  160. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/mova_audio_dit.py +0 -0
  161. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/mova_audio_vae.py +0 -0
  162. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/mova_dual_tower_bridge.py +0 -0
  163. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/nexus_gen.py +0 -0
  164. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/nexus_gen_ar_model.py +0 -0
  165. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/nexus_gen_projector.py +0 -0
  166. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/pickscore.py +0 -0
  167. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_bench.py +0 -0
  168. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_controlnet.py +0 -0
  169. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_dit.py +0 -0
  170. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_image2lora.py +0 -0
  171. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_text_encoder.py +0 -0
  172. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_image_vae.py +0 -0
  173. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/qwen_video_edit_dit.py +0 -0
  174. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/sd_text_encoder.py +0 -0
  175. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/sensenova_u1_common.py +0 -0
  176. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/sensenova_u1_dit.py +0 -0
  177. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/siglip2_image_encoder.py +0 -0
  178. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_text_encoder.py +0 -0
  179. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_unet.py +0 -0
  180. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_vae.py +0 -0
  181. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_xl_text_encoder.py +0 -0
  182. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/stable_diffusion_xl_unet.py +0 -0
  183. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/step1x_connector.py +0 -0
  184. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/step1x_text_encoder.py +0 -0
  185. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/unified_reward_2.py +0 -0
  186. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/unified_reward_edit.py +0 -0
  187. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_animate_2_dit.py +0 -0
  188. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_animate_adapter.py +0 -0
  189. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_camera_controller.py +0 -0
  190. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_dit.py +0 -0
  191. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_dit_s2v.py +0 -0
  192. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_image_encoder.py +0 -0
  193. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_mot.py +0 -0
  194. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_motion_controller.py +0 -0
  195. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_text_encoder.py +0 -0
  196. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_vace.py +0 -0
  197. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wan_video_vae.py +0 -0
  198. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wantodance.py +0 -0
  199. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/wav2vec.py +0 -0
  200. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/z_image_controlnet.py +0 -0
  201. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/z_image_dit.py +0 -0
  202. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/z_image_image2lora.py +0 -0
  203. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/models/z_image_text_encoder.py +0 -0
  204. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/ace_step.py +0 -0
  205. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/anima_image.py +0 -0
  206. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/ernie_image.py +0 -0
  207. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/flux2_image.py +0 -0
  208. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/flux_image.py +0 -0
  209. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/hidream_o1_image.py +0 -0
  210. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/ideogram4.py +0 -0
  211. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/krea2.py +0 -0
  212. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/lingbot_video.py +0 -0
  213. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/minimax_h3_audio_video.py +0 -0
  214. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/minimax_music3.py +0 -0
  215. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/mova_audio_video.py +0 -0
  216. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/qwen_image.py +0 -0
  217. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/qwen_video_edit.py +0 -0
  218. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/sensenova_u1_image.py +0 -0
  219. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/stable_diffusion.py +0 -0
  220. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/stable_diffusion_xl.py +0 -0
  221. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/wan_video.py +0 -0
  222. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/pipelines/z_image.py +0 -0
  223. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/controlnet/__init__.py +0 -0
  224. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/controlnet/controlnet_input.py +0 -0
  225. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/data/__init__.py +0 -0
  226. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/data/audio.py +0 -0
  227. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/data/audio_video.py +0 -0
  228. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/data/media_io_ltx2.py +0 -0
  229. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/data/minimax_h3.py +0 -0
  230. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/demucs/__init__.py +0 -0
  231. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/dequantizer/__init__.py +0 -0
  232. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/__init__.py +0 -0
  233. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/flux.py +0 -0
  234. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/flux_timestep.py +0 -0
  235. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/general.py +0 -0
  236. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/krea2.py +0 -0
  237. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/merge.py +0 -0
  238. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/minimax_h3.py +0 -0
  239. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/reset_rank.py +0 -0
  240. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/lora/sdxl.py +0 -0
  241. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/quant/serialization.py +0 -0
  242. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/ses/__init__.py +0 -0
  243. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/ses/ses.py +0 -0
  244. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/__init__.py +0 -0
  245. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_conditioner.py +0 -0
  246. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_dit.py +0 -0
  247. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_text_encoder.py +0 -0
  248. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ace_step_tokenizer.py +0 -0
  249. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/anima_dit.py +0 -0
  250. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/dino_v3.py +0 -0
  251. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ernie_image_text_encoder.py +0 -0
  252. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux2_text_encoder.py +0 -0
  253. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_controlnet.py +0 -0
  254. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_dit.py +0 -0
  255. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_infiniteyou.py +0 -0
  256. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_ipadapter.py +0 -0
  257. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_text_encoder_clip.py +0 -0
  258. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_text_encoder_t5.py +0 -0
  259. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/flux_vae.py +0 -0
  260. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ideogram4_text_encoder.py +0 -0
  261. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/image_metrics.py +0 -0
  262. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/krea2_dit.py +0 -0
  263. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/krea2_text_encoder.py +0 -0
  264. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/lingbot_video_dit.py +0 -0
  265. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_audio_vae.py +0 -0
  266. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_dit.py +0 -0
  267. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/ltx2_text_encoder.py +0 -0
  268. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_audio_vae.py +0 -0
  269. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_controlnet.py +0 -0
  270. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_text_encoder.py +0 -0
  271. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_h3_video_vae.py +0 -0
  272. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/minimax_music3_text_encoder.py +0 -0
  273. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/nexus_gen.py +0 -0
  274. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/nexus_gen_projector.py +0 -0
  275. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/qwen_image_text_encoder.py +0 -0
  276. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/qwen_video_edit.py +0 -0
  277. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl.py +0 -0
  278. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_text_encoder.py +0 -0
  279. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_text_encoder_2.py +0 -0
  280. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/sdxl_vae.py +0 -0
  281. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_text_encoder.py +0 -0
  282. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_vae.py +0 -0
  283. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/stable_diffusion_xl_text_encoder.py +0 -0
  284. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/step1x_connector.py +0 -0
  285. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_animate_adapter.py +0 -0
  286. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_dit.py +0 -0
  287. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_image_encoder.py +0 -0
  288. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_mot.py +0 -0
  289. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_vace.py +0 -0
  290. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wan_video_vae.py +0 -0
  291. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/wans2v_audio_encoder.py +0 -0
  292. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/z_image_dit.py +0 -0
  293. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/state_dict_converters/z_image_text_encoder.py +0 -0
  294. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/tile/__init__.py +0 -0
  295. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/tile/tile_worker.py +0 -0
  296. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/xfuser/__init__.py +0 -0
  297. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth/utils/xfuser/xdit_context_parallel.py +0 -0
  298. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth.egg-info/dependency_links.txt +0 -0
  299. {diffsynth-2.1.6 → diffsynth-2.1.8}/diffsynth.egg-info/top_level.txt +0 -0
  300. {diffsynth-2.1.6 → 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.6
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
@@ -43,6 +43,8 @@ Provides-Extra: npu-aarch64
43
43
  Requires-Dist: torch==2.7.1; extra == "npu-aarch64"
44
44
  Requires-Dist: torch-npu==2.7.1; extra == "npu-aarch64"
45
45
  Requires-Dist: torchvision==0.22.1; extra == "npu-aarch64"
46
+ Provides-Extra: controlnet
47
+ Requires-Dist: controlnet_aux; extra == "controlnet"
46
48
  Provides-Extra: infiniteyou
47
49
  Requires-Dist: insightface; extra == "infiniteyou"
48
50
  Requires-Dist: facexlib; extra == "infiniteyou"
@@ -51,6 +53,8 @@ Requires-Dist: pywt; extra == "ses"
51
53
  Provides-Extra: nexusgen
52
54
  Requires-Dist: qwen_vl_utils; extra == "nexusgen"
53
55
  Requires-Dist: transformers==4.49.0; extra == "nexusgen"
56
+ Provides-Extra: yue2
57
+ Requires-Dist: tiktoken; extra == "yue2"
54
58
  Provides-Extra: all
55
59
  Requires-Dist: av; extra == "all"
56
60
  Requires-Dist: torchaudio; extra == "all"
@@ -97,6 +101,7 @@ References:
97
101
 
98
102
  See also:
99
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.
100
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.
101
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.
102
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.
@@ -107,6 +112,21 @@ See also:
107
112
 
108
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.
109
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
+
110
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/).
111
131
 
112
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.
@@ -115,6 +135,9 @@ See also:
115
135
 
116
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).
117
137
 
138
+ <details>
139
+ <summary>More</summary>
140
+
118
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/).
119
142
 
120
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/).
@@ -125,9 +148,6 @@ See also:
125
148
 
126
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)!
127
150
 
128
- <details>
129
- <summary>More</summary>
130
-
131
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/).
132
152
 
133
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/).
@@ -367,6 +387,7 @@ Quick start: experience popular and the latest models:
367
387
 
368
388
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
369
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) |
370
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) |
371
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) |
372
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) |
@@ -377,6 +398,7 @@ Quick start: experience popular and the latest models:
377
398
  Model overview:
378
399
 
379
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/)
380
402
  - SenseNova-U1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/SenseNova-U1.html), [Example code](/examples/sensenova_u1/)
381
403
  - Boogu-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Boogu-Image.html), [Example code](/examples/boogu_image/)
382
404
  - Krea-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Krea-2.html), [Example code](/examples/krea2/)
@@ -397,7 +419,9 @@ Model overview:
397
419
  - LTX-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/LTX-2.html), [Example code](/examples/ltx2/)
398
420
  - Wan: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Wan.html), [Example code](/examples/wanvideo/)
399
421
  - Audio generation
422
+ - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
400
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/)
401
425
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
402
426
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
403
427
 
@@ -645,12 +669,15 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
645
669
 
646
670
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
647
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) |
648
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) |
649
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) |
650
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) | - | - | - | - |
651
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) |
652
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) |
653
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) | — | — | — | — |
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) | - | - |
654
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) |
655
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) |
656
683
  | MiniMax-H3 | [MiniMax/MiniMax-H3: Retake](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-Retake.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-Retake.py) | - | - | - | - |
@@ -702,6 +729,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
702
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) |
703
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) |
704
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) | - | - | - | - |
705
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) |
706
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) |
707
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/)
@@ -330,7 +348,9 @@ Model overview:
330
348
  - LTX-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/LTX-2.html), [Example code](/examples/ltx2/)
331
349
  - Wan: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Wan.html), [Example code](/examples/wanvideo/)
332
350
  - Audio generation
351
+ - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
333
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/)
334
354
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
335
355
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
336
356
 
@@ -578,12 +598,15 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
578
598
 
579
599
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
580
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) |
581
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) |
582
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) |
583
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) | - | - | - | - |
584
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) |
585
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) |
586
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) | — | — | — | — |
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) | - | - |
587
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) |
588
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) |
589
612
  | MiniMax-H3 | [MiniMax/MiniMax-H3: Retake](https://www.modelscope.cn/models/MiniMax/MiniMax-H3) | [code](/examples/minimax_h3/model_inference/MiniMax-H3-Retake.py) | [code](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-Retake.py) | - | - | - | - |
@@ -635,6 +658,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
635
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) |
636
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) |
637
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) | - | - | - | - |
638
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) |
639
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) |
640
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 = [
@@ -1202,11 +1292,24 @@ ace_step_series = [
1202
1292
  "state_dict_converter": "diffsynth.utils.state_dict_converters.ace_step_tokenizer.AceStepTokenizerStateDictConverter",
1203
1293
  },
1204
1294
  {
1205
- # Example: ???
1295
+ # Example: ModelConfig(model_id="DiffSynth-Studio/DiffSynth-Music-Tools", origin_file_pattern="track_separator/model.safetensors")
1206
1296
  "model_hash": "ff74b1806e6a0b52e7bbd1d3df2d26d1",
1207
1297
  "model_name": "demucs",
1208
1298
  "model_class": "diffsynth.models.demucs.HTDemucs",
1209
1299
  },
1300
+ {
1301
+ # Example: ModelConfig(model_id="DiffSynth-Studio/DiffSynth-Music-Tools", origin_file_pattern="transformer/model.safetensors")
1302
+ "model_hash": "167b8d453605e3d72076f88790528f8e",
1303
+ "model_name": "diffsynth_music_dit",
1304
+ "model_class": "diffsynth.models.diffsynth_music_dit.DiffSynthMusicDiTModel",
1305
+ },
1306
+ {
1307
+ # Example: ModelConfig(model_id="DiffSynth-Studio/DiffSynth-Music-Tools", origin_file_pattern="conditioner/model.safetensors")
1308
+ "model_hash": "d6c90aec3f282bde16298e0221413098",
1309
+ "model_name": "ace_step_conditioner",
1310
+ "model_class": "diffsynth.models.ace_step_conditioner.AceStepConditionEncoder",
1311
+ "extra_kwargs": {"placeholder_shape": (1, 15000, 64)},
1312
+ },
1210
1313
  ]
1211
1314
 
1212
1315
  image_metrics_series = [
@@ -1534,6 +1637,22 @@ minimax_h3_series = [
1534
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},
1535
1638
  "state_dict_converter": "diffsynth.utils.state_dict_converters.minimax_h3_controlnet.MiniMaxH3ControlNetStateDictConverter"
1536
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
+ },
1537
1656
  ]
1538
1657
 
1539
1658
  minimax_music3_series = [
@@ -1579,8 +1698,48 @@ sensenova_u1_series = [
1579
1698
  },
1580
1699
  ]
1581
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
+
1582
1740
  MODEL_CONFIGS = (
1583
1741
  stable_diffusion_xl_series + stable_diffusion_series + qwen_image_series + qwen_video_edit_series + wan_series + flux_series + flux2_series + ernie_image_series
1584
1742
  + z_image_series + ltx2_series + anima_series + mova_series + joyai_image_series + boogu_image_series + ace_step_series + hidream_o1_image_series
1585
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
1586
1745
  )