diffsynth 2.1.7__tar.gz → 2.1.9__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 (301) hide show
  1. {diffsynth-2.1.7 → diffsynth-2.1.9}/PKG-INFO +49 -4
  2. {diffsynth-2.1.7 → diffsynth-2.1.9}/README.md +44 -3
  3. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/configs/model_configs.py +161 -9
  4. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/configs/vram_management_module_maps.py +52 -16
  5. diffsynth-2.1.9/diffsynth/core/attention/__init__.py +1 -0
  6. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/attention/attention.py +1 -1
  7. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/data/operators.py +2 -0
  8. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/data/unified_dataset.py +3 -2
  9. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/backends/__init__.py +1 -0
  10. diffsynth-2.1.9/diffsynth/core/quant/backends/entropack.py +143 -0
  11. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/__init__.py +1 -1
  12. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/flow_match.py +54 -15
  13. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/training_module.py +44 -2
  14. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/unified_reward_edit.py +1 -1
  15. diffsynth-2.1.9/diffsynth/models/ltx25_diffusion_video_vae.py +5014 -0
  16. diffsynth-2.1.9/diffsynth/models/ltx25_duration_head.py +57 -0
  17. diffsynth-2.1.9/diffsynth/models/ltx25_text_encoder.py +449 -0
  18. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_audio_vae.py +20 -9
  19. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_common.py +3 -0
  20. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_dit.py +78 -17
  21. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_video_vae.py +7 -4
  22. diffsynth-2.1.9/diffsynth/models/qwen_image_21_controlnet.py +101 -0
  23. diffsynth-2.1.9/diffsynth/models/qwen_image_21_dit.py +611 -0
  24. diffsynth-2.1.9/diffsynth/models/qwen_image_21_text_encoder.py +105 -0
  25. diffsynth-2.1.9/diffsynth/models/qwen_image_21_vae.py +1243 -0
  26. diffsynth-2.1.9/diffsynth/models/yue2_mot.py +760 -0
  27. diffsynth-2.1.9/diffsynth/models/yue2_tokenizer.py +43 -0
  28. diffsynth-2.1.9/diffsynth/models/yue2_vae.py +597 -0
  29. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/boogu_image.py +3 -3
  30. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/joyai_image.py +3 -3
  31. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/ltx2_audio_video.py +124 -48
  32. diffsynth-2.1.9/diffsynth/pipelines/qwen_image_21.py +451 -0
  33. diffsynth-2.1.9/diffsynth/pipelines/yue2.py +574 -0
  34. diffsynth-2.1.9/diffsynth/utils/state_dict_converters/ltx25_diffusion_video_vae.py +21 -0
  35. diffsynth-2.1.9/diffsynth/utils/state_dict_converters/ltx25_duration_head.py +6 -0
  36. diffsynth-2.1.9/diffsynth/utils/state_dict_converters/ltx25_text_encoder.py +16 -0
  37. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ltx2_video_vae.py +6 -2
  38. diffsynth-2.1.9/diffsynth/utils/state_dict_converters/minimax_h3_dit.py +7 -0
  39. diffsynth-2.1.7/diffsynth/utils/state_dict_converters/joyai_image_text_encoder.py → diffsynth-2.1.9/diffsynth/utils/state_dict_converters/qwen_image_21_text_encoder.py +1 -1
  40. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/version.py +1 -1
  41. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth.egg-info/PKG-INFO +49 -4
  42. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth.egg-info/SOURCES.txt +18 -2
  43. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth.egg-info/requires.txt +5 -0
  44. {diffsynth-2.1.7 → diffsynth-2.1.9}/pyproject.toml +5 -0
  45. diffsynth-2.1.7/diffsynth/core/attention/__init__.py +0 -1
  46. diffsynth-2.1.7/diffsynth/models/joyai_image_text_encoder.py +0 -82
  47. {diffsynth-2.1.7 → diffsynth-2.1.9}/LICENSE +0 -0
  48. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/__init__.py +0 -0
  49. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/configs/__init__.py +0 -0
  50. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/__init__.py +0 -0
  51. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/data/__init__.py +0 -0
  52. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/device/__init__.py +0 -0
  53. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/device/npu_compatible_device.py +0 -0
  54. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/gradient/__init__.py +0 -0
  55. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/gradient/gradient_checkpoint.py +0 -0
  56. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/loader/__init__.py +0 -0
  57. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/loader/config.py +0 -0
  58. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/loader/file.py +0 -0
  59. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/loader/model.py +0 -0
  60. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/npu_patch/npu_fused_operator.py +0 -0
  61. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/offload_training/__init__.py +0 -0
  62. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/offload_training/manager.py +0 -0
  63. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/offload_training/memory_buffer.py +0 -0
  64. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/offload_training/offloader.py +0 -0
  65. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/__init__.py +0 -0
  66. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/backends/bitsandbytes.py +0 -0
  67. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/backends/comfy_kitchen.py +0 -0
  68. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/backends/torchao.py +0 -0
  69. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/base.py +0 -0
  70. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/quant/config.py +0 -0
  71. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/vram/__init__.py +0 -0
  72. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/vram/disk_map.py +0 -0
  73. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/vram/initialization.py +0 -0
  74. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/core/vram/layers.py +0 -0
  75. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/base_pipeline.py +0 -0
  76. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/ddim_scheduler.py +0 -0
  77. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/dmd2.py +0 -0
  78. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/logger.py +0 -0
  79. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/loss.py +0 -0
  80. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/parsers.py +0 -0
  81. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/runner.py +0 -0
  82. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/diffusion/template.py +0 -0
  83. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/__init__.py +0 -0
  84. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/aesthetic.py +0 -0
  85. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/base.py +0 -0
  86. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/bioclip.py +0 -0
  87. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/clip.py +0 -0
  88. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/fid.py +0 -0
  89. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/hpsv2.py +0 -0
  90. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/hpsv3.py +0 -0
  91. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/image_reward.py +0 -0
  92. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/lpips.py +0 -0
  93. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/pickscore.py +0 -0
  94. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/qwen_image_bench.py +0 -0
  95. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/metrics/unified_reward_2.py +0 -0
  96. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_conditioner.py +0 -0
  97. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_dit.py +0 -0
  98. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_residual_fsq.py +0 -0
  99. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_text_encoder.py +0 -0
  100. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_tokenizer.py +0 -0
  101. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ace_step_vae.py +0 -0
  102. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/aesthetic.py +0 -0
  103. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/anima_dit.py +0 -0
  104. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/bioclip.py +0 -0
  105. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/boogu_image_dit.py +0 -0
  106. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/clip.py +0 -0
  107. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/demucs.py +0 -0
  108. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/diffsynth_music_dit.py +0 -0
  109. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/dinov3_image_encoder.py +0 -0
  110. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ernie_image_dit.py +0 -0
  111. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ernie_image_text_encoder.py +0 -0
  112. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/fid.py +0 -0
  113. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux2_dit.py +0 -0
  114. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux2_text_encoder.py +0 -0
  115. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux2_vae.py +0 -0
  116. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_controlnet.py +0 -0
  117. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_dit.py +0 -0
  118. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_infiniteyou.py +0 -0
  119. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_ipadapter.py +0 -0
  120. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_lora_encoder.py +0 -0
  121. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_lora_patcher.py +0 -0
  122. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_redux.py +0 -0
  123. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_text_encoder_clip.py +0 -0
  124. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_text_encoder_t5.py +0 -0
  125. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_vae.py +0 -0
  126. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/flux_value_control.py +0 -0
  127. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/general_modules.py +0 -0
  128. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/hidream_common.py +0 -0
  129. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/hidream_o1_image_dit.py +0 -0
  130. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/hpsv2.py +0 -0
  131. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/hpsv3.py +0 -0
  132. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ideogram4_dit.py +0 -0
  133. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ideogram4_text_encoder.py +0 -0
  134. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ideogram4_vae.py +0 -0
  135. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/image_reward.py +0 -0
  136. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/joyai_image_dit.py +0 -0
  137. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/krea2_dit.py +0 -0
  138. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/krea2_text_encoder.py +0 -0
  139. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/lingbot_video_dit.py +0 -0
  140. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/longcat_video_dit.py +0 -0
  141. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/lpips.py +0 -0
  142. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_text_encoder.py +0 -0
  143. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/ltx2_upsampler.py +0 -0
  144. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_audio_vae.py +0 -0
  145. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_controlnet.py +0 -0
  146. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_dit.py +0 -0
  147. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_dit_comfy.py +0 -0
  148. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_text_encoder.py +0 -0
  149. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_h3_video_vae.py +0 -0
  150. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_music3_condition_encoder.py +0 -0
  151. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_music3_dit.py +0 -0
  152. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_music3_rvq_depth_decoder.py +0 -0
  153. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_music3_text_encoder.py +0 -0
  154. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/minimax_music3_vocoder.py +0 -0
  155. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/model_loader.py +0 -0
  156. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/mova_audio_dit.py +0 -0
  157. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/mova_audio_vae.py +0 -0
  158. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/mova_dual_tower_bridge.py +0 -0
  159. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/nexus_gen.py +0 -0
  160. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/nexus_gen_ar_model.py +0 -0
  161. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/nexus_gen_projector.py +0 -0
  162. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/pickscore.py +0 -0
  163. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_bench.py +0 -0
  164. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_controlnet.py +0 -0
  165. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_dit.py +0 -0
  166. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_image2lora.py +0 -0
  167. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_text_encoder.py +0 -0
  168. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_image_vae.py +0 -0
  169. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/qwen_video_edit_dit.py +0 -0
  170. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/sd_text_encoder.py +0 -0
  171. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/sensenova_u1_common.py +0 -0
  172. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/sensenova_u1_dit.py +0 -0
  173. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/siglip2_image_encoder.py +0 -0
  174. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/stable_diffusion_text_encoder.py +0 -0
  175. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/stable_diffusion_unet.py +0 -0
  176. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/stable_diffusion_vae.py +0 -0
  177. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/stable_diffusion_xl_text_encoder.py +0 -0
  178. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/stable_diffusion_xl_unet.py +0 -0
  179. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/step1x_connector.py +0 -0
  180. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/step1x_text_encoder.py +0 -0
  181. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/unified_reward_2.py +0 -0
  182. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/unified_reward_edit.py +0 -0
  183. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_animate_2_dit.py +0 -0
  184. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_animate_adapter.py +0 -0
  185. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_camera_controller.py +0 -0
  186. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_dit.py +0 -0
  187. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_dit_s2v.py +0 -0
  188. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_image_encoder.py +0 -0
  189. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_mot.py +0 -0
  190. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_motion_controller.py +0 -0
  191. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_text_encoder.py +0 -0
  192. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_vace.py +0 -0
  193. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wan_video_vae.py +0 -0
  194. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wantodance.py +0 -0
  195. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/wav2vec.py +0 -0
  196. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/z_image_controlnet.py +0 -0
  197. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/z_image_dit.py +0 -0
  198. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/z_image_image2lora.py +0 -0
  199. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/models/z_image_text_encoder.py +0 -0
  200. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/ace_step.py +0 -0
  201. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/anima_image.py +0 -0
  202. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/diffsynth_music.py +0 -0
  203. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/ernie_image.py +0 -0
  204. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/flux2_image.py +0 -0
  205. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/flux_image.py +0 -0
  206. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/hidream_o1_image.py +0 -0
  207. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/ideogram4.py +0 -0
  208. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/krea2.py +0 -0
  209. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/lingbot_video.py +0 -0
  210. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/minimax_h3_audio_video.py +0 -0
  211. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/minimax_music3.py +0 -0
  212. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/mova_audio_video.py +0 -0
  213. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/qwen_image.py +0 -0
  214. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/qwen_video_edit.py +0 -0
  215. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/sensenova_u1_image.py +0 -0
  216. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/stable_diffusion.py +0 -0
  217. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/stable_diffusion_xl.py +0 -0
  218. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/wan_video.py +0 -0
  219. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/pipelines/z_image.py +0 -0
  220. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/controlnet/__init__.py +0 -0
  221. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/controlnet/annotator.py +0 -0
  222. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/controlnet/controlnet_input.py +0 -0
  223. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/data/__init__.py +0 -0
  224. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/data/audio.py +0 -0
  225. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/data/audio_video.py +0 -0
  226. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/data/media_io_ltx2.py +0 -0
  227. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/data/minimax_h3.py +0 -0
  228. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/demucs/__init__.py +0 -0
  229. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/dequantizer/__init__.py +0 -0
  230. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/__init__.py +0 -0
  231. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/flux.py +0 -0
  232. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/flux_timestep.py +0 -0
  233. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/general.py +0 -0
  234. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/krea2.py +0 -0
  235. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/merge.py +0 -0
  236. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/minimax_h3.py +0 -0
  237. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/reset_rank.py +0 -0
  238. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/lora/sdxl.py +0 -0
  239. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/music_tools/__init__.py +0 -0
  240. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/music_tools/click.py +0 -0
  241. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/music_tools/prosody.py +0 -0
  242. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/quant/serialization.py +0 -0
  243. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/ses/__init__.py +0 -0
  244. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/ses/ses.py +0 -0
  245. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/__init__.py +0 -0
  246. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ace_step_conditioner.py +0 -0
  247. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ace_step_dit.py +0 -0
  248. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ace_step_text_encoder.py +0 -0
  249. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ace_step_tokenizer.py +0 -0
  250. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/anima_dit.py +0 -0
  251. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/dino_v3.py +0 -0
  252. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ernie_image_text_encoder.py +0 -0
  253. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux2_text_encoder.py +0 -0
  254. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_controlnet.py +0 -0
  255. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_dit.py +0 -0
  256. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_infiniteyou.py +0 -0
  257. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_ipadapter.py +0 -0
  258. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_text_encoder_clip.py +0 -0
  259. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_text_encoder_t5.py +0 -0
  260. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/flux_vae.py +0 -0
  261. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ideogram4_text_encoder.py +0 -0
  262. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/image_metrics.py +0 -0
  263. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/krea2_dit.py +0 -0
  264. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/krea2_text_encoder.py +0 -0
  265. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/lingbot_video_dit.py +0 -0
  266. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ltx2_audio_vae.py +0 -0
  267. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ltx2_dit.py +0 -0
  268. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/ltx2_text_encoder.py +0 -0
  269. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/minimax_h3_audio_vae.py +0 -0
  270. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/minimax_h3_controlnet.py +0 -0
  271. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/minimax_h3_text_encoder.py +0 -0
  272. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/minimax_h3_video_vae.py +0 -0
  273. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/minimax_music3_text_encoder.py +0 -0
  274. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/nexus_gen.py +0 -0
  275. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/nexus_gen_projector.py +0 -0
  276. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/qwen_image_text_encoder.py +0 -0
  277. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/qwen_video_edit.py +0 -0
  278. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/sdxl.py +0 -0
  279. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/sdxl_text_encoder.py +0 -0
  280. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/sdxl_text_encoder_2.py +0 -0
  281. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/sdxl_vae.py +0 -0
  282. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/stable_diffusion_text_encoder.py +0 -0
  283. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/stable_diffusion_vae.py +0 -0
  284. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/stable_diffusion_xl_text_encoder.py +0 -0
  285. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/step1x_connector.py +0 -0
  286. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_animate_adapter.py +0 -0
  287. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_dit.py +0 -0
  288. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_image_encoder.py +0 -0
  289. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_mot.py +0 -0
  290. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_vace.py +0 -0
  291. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wan_video_vae.py +0 -0
  292. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/wans2v_audio_encoder.py +0 -0
  293. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/z_image_dit.py +0 -0
  294. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/state_dict_converters/z_image_text_encoder.py +0 -0
  295. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/tile/__init__.py +0 -0
  296. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/tile/tile_worker.py +0 -0
  297. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/xfuser/__init__.py +0 -0
  298. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth/utils/xfuser/xdit_context_parallel.py +0 -0
  299. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth.egg-info/dependency_links.txt +0 -0
  300. {diffsynth-2.1.7 → diffsynth-2.1.9}/diffsynth.egg-info/top_level.txt +0 -0
  301. {diffsynth-2.1.7 → diffsynth-2.1.9}/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.9
4
4
  Summary: Enjoy the magic of Diffusion models!
5
5
  Author: ModelScope Team
6
6
  License-Expression: Apache-2.0
@@ -28,6 +28,7 @@ Requires-Dist: librosa; extra == "audio"
28
28
  Provides-Extra: quant
29
29
  Requires-Dist: bitsandbytes; extra == "quant"
30
30
  Requires-Dist: comfy-kitchen; extra == "quant"
31
+ Requires-Dist: entropack[cuda13]; extra == "quant"
31
32
  Requires-Dist: torchao>=0.16; extra == "quant"
32
33
  Provides-Extra: training
33
34
  Requires-Dist: deepspeed; extra == "training"
@@ -53,6 +54,8 @@ Requires-Dist: pywt; extra == "ses"
53
54
  Provides-Extra: nexusgen
54
55
  Requires-Dist: qwen_vl_utils; extra == "nexusgen"
55
56
  Requires-Dist: transformers==4.49.0; extra == "nexusgen"
57
+ Provides-Extra: yue2
58
+ Requires-Dist: tiktoken; extra == "yue2"
56
59
  Provides-Extra: all
57
60
  Requires-Dist: av; extra == "all"
58
61
  Requires-Dist: torchaudio; extra == "all"
@@ -60,6 +63,7 @@ Requires-Dist: torchcodec; extra == "all"
60
63
  Requires-Dist: librosa; extra == "all"
61
64
  Requires-Dist: bitsandbytes; extra == "all"
62
65
  Requires-Dist: comfy-kitchen; extra == "all"
66
+ Requires-Dist: entropack[cuda13]; extra == "all"
63
67
  Requires-Dist: torchao>=0.16; extra == "all"
64
68
  Requires-Dist: deepspeed; extra == "all"
65
69
  Requires-Dist: tensorboard; extra == "all"
@@ -99,6 +103,7 @@ References:
99
103
 
100
104
  See also:
101
105
 
106
+ * [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
107
  * [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
108
  * [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
109
  * [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 +114,28 @@ See also:
109
114
 
110
115
  > 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
116
 
117
+ - **September 29, 2026** We are excited to open-source EntroPack, a general-purpose tensor compression library for PyTorch that provides lossless compression with exact recovery and rate-controlled lossy compression, with GPU encoding and decoding. It is integrated into DiffSynth-Studio as a quantization backend, compressing model weights at arbitrary target bitrates in both inference and LoRA training. For more information, please refer to:
118
+
119
+ * Project Page: https://github.com/modelscope/entropack
120
+ * Technical Report: https://arxiv.org/abs/2609.34185
121
+ * Pre-quantized Models: https://www.modelscope.cn/models/DiffSynth-Studio/EntroPackPreQuants
122
+ * Example Code: [Z-Image-Turbo](/examples/z_image/model_inference_low_vram/Z-Image-Turbo-EntroPack.py), [Qwen-Image-2.1](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-EntroPack.py), [MiniMax-H3](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-EntroPack.py), [LoRA Training Example](/examples/z_image/model_training/special/quant_training/Z-Image-Turbo-entropack_lossy_quant.sh)
123
+
124
+ - **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/).
125
+
126
+ - **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:
127
+ * Model: https://modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music
128
+ * Technical Report: https://arxiv.org/abs/2609.12774
129
+ * Code: [./examples/diffsynth_music/](./examples/diffsynth_music/)
130
+
131
+ - **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/).
132
+
133
+ - **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/).
134
+
135
+ - **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).
136
+
137
+ - **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.
138
+
112
139
  - **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
140
 
114
141
  - **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 +144,9 @@ See also:
117
144
 
118
145
  - **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
146
 
147
+ <details>
148
+ <summary>More</summary>
149
+
120
150
  - **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
151
 
122
152
  - **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 +157,6 @@ See also:
127
157
 
128
158
  - **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
159
 
130
- <details>
131
- <summary>More</summary>
132
-
133
160
  - **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
161
 
135
162
  - **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 +396,8 @@ Quick start: experience popular and the latest models:
369
396
 
370
397
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
371
398
  |-|-|-|-|-|-|-|-|
399
+ | 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) |
400
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1-Turbo](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1-Turbo) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Turbo.py) |
372
401
  | 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
402
  | 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
403
  | 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 +408,7 @@ Quick start: experience popular and the latest models:
379
408
  Model overview:
380
409
 
381
410
  - Image generation
411
+ - 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
412
  - SenseNova-U1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/SenseNova-U1.html), [Example code](/examples/sensenova_u1/)
383
413
  - Boogu-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Boogu-Image.html), [Example code](/examples/boogu_image/)
384
414
  - Krea-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Krea-2.html), [Example code](/examples/krea2/)
@@ -401,6 +431,7 @@ Model overview:
401
431
  - Audio generation
402
432
  - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
403
433
  - MiniMax-Music3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MiniMax-Music3.html), [Example code](/examples/minimax_music3/)
434
+ - YuE2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/YuE2.html), [Example code](/examples/yue2/)
404
435
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
405
436
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
406
437
 
@@ -648,12 +679,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
648
679
 
649
680
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
650
681
  |-|-|-|-|-|-|-|-|
682
+ | 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) |
683
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1-Turbo](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1-Turbo) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Turbo.py) |
684
+ | Qwen-Image-2.1 | [PAI/Qwen-Image-2.1-Fun-Controlnet-Union](https://www.modelscope.cn/models/PAI/Qwen-Image-2.1-Fun-Controlnet-Union) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Fun-Controlnet-Union.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Fun-Controlnet-Union.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Fun-Controlnet-Union.py) |
651
685
  | 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
686
  | 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
687
  | 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
688
  | 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
689
  | 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
690
  | 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) | — | — | — | — |
691
+ | 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
692
  | 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
693
  | 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
694
  | 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 +741,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
706
741
  | 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
742
  | 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
743
  | 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) | — | — | — | — |
744
+ | 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) |
745
+ | 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) | - | - | - | - |
746
+ | 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) | - | - | - | - |
747
+ | 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) | - | - | - | - |
748
+ | 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) | - | - | - | - |
749
+ | 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) | - | - | - | - |
750
+ | 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) | - | - | - | - |
751
+ | 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) | - | - | - | - |
752
+ | 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) | - | - | - | - |
753
+ | 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
754
  | 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
755
  | 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
756
  | 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,28 @@ 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 29, 2026** We are excited to open-source EntroPack, a general-purpose tensor compression library for PyTorch that provides lossless compression with exact recovery and rate-controlled lossy compression, with GPU encoding and decoding. It is integrated into DiffSynth-Studio as a quantization backend, compressing model weights at arbitrary target bitrates in both inference and LoRA training. For more information, please refer to:
45
+
46
+ * Project Page: https://github.com/modelscope/entropack
47
+ * Technical Report: https://arxiv.org/abs/2609.34185
48
+ * Pre-quantized Models: https://www.modelscope.cn/models/DiffSynth-Studio/EntroPackPreQuants
49
+ * Example Code: [Z-Image-Turbo](/examples/z_image/model_inference_low_vram/Z-Image-Turbo-EntroPack.py), [Qwen-Image-2.1](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-EntroPack.py), [MiniMax-H3](/examples/minimax_h3/model_inference_low_vram/MiniMax-H3-EntroPack.py), [LoRA Training Example](/examples/z_image/model_training/special/quant_training/Z-Image-Turbo-entropack_lossy_quant.sh)
50
+
51
+ - **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/).
52
+
53
+ - **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:
54
+ * Model: https://modelscope.cn/models/DiffSynth-Studio/DiffSynth-Music
55
+ * Technical Report: https://arxiv.org/abs/2609.12774
56
+ * Code: [./examples/diffsynth_music/](./examples/diffsynth_music/)
57
+
58
+ - **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/).
59
+
60
+ - **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/).
61
+
62
+ - **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).
63
+
64
+ - **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.
65
+
43
66
  - **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
67
 
45
68
  - **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 +71,9 @@ See also:
48
71
 
49
72
  - **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
73
 
74
+ <details>
75
+ <summary>More</summary>
76
+
51
77
  - **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
78
 
53
79
  - **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 +84,6 @@ See also:
58
84
 
59
85
  - **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
86
 
61
- <details>
62
- <summary>More</summary>
63
-
64
87
  - **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
88
 
66
89
  - **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 +323,8 @@ Quick start: experience popular and the latest models:
300
323
 
301
324
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
302
325
  |-|-|-|-|-|-|-|-|
326
+ | 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) |
327
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1-Turbo](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1-Turbo) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Turbo.py) |
303
328
  | 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
329
  | 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
330
  | 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 +335,7 @@ Quick start: experience popular and the latest models:
310
335
  Model overview:
311
336
 
312
337
  - Image generation
338
+ - 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
339
  - SenseNova-U1: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/SenseNova-U1.html), [Example code](/examples/sensenova_u1/)
314
340
  - Boogu-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Boogu-Image.html), [Example code](/examples/boogu_image/)
315
341
  - Krea-2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Krea-2.html), [Example code](/examples/krea2/)
@@ -332,6 +358,7 @@ Model overview:
332
358
  - Audio generation
333
359
  - DiffSynth-Music: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/DiffSynth-Music.html), [Example code](/examples/diffsynth_music/)
334
360
  - MiniMax-Music3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MiniMax-Music3.html), [Example code](/examples/minimax_music3/)
361
+ - YuE2: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/YuE2.html), [Example code](/examples/yue2/)
335
362
  - ACE-Step: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/ACE-Step.html), [Example code](/examples/ace_step/)
336
363
  - Evaluation models: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Image-Quality-Metrics.html), [Example code](/examples/image_quality_metric/)
337
364
 
@@ -579,12 +606,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
579
606
 
580
607
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
581
608
  |-|-|-|-|-|-|-|-|
609
+ | 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) |
610
+ | Qwen-Image-2.1 | [Qwen/Qwen-Image-2.1-Turbo](https://www.modelscope.cn/models/Qwen/Qwen-Image-2.1-Turbo) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Turbo.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Turbo.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Turbo.py) |
611
+ | Qwen-Image-2.1 | [PAI/Qwen-Image-2.1-Fun-Controlnet-Union](https://www.modelscope.cn/models/PAI/Qwen-Image-2.1-Fun-Controlnet-Union) | [code](/examples/qwen_image_21/model_inference/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_inference_low_vram/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_training/full/Qwen-Image-2.1-Fun-Controlnet-Union.sh) | [code](/examples/qwen_image_21/model_training/validate_full/Qwen-Image-2.1-Fun-Controlnet-Union.py) | [code](/examples/qwen_image_21/model_training/lora/Qwen-Image-2.1-Fun-Controlnet-Union.sh) | [code](/examples/qwen_image_21/model_training/validate_lora/Qwen-Image-2.1-Fun-Controlnet-Union.py) |
582
612
  | 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
613
  | 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
614
  | 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
615
  | 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
616
  | 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
617
  | 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) | — | — | — | — |
618
+ | 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
619
  | 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
620
  | 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
621
  | 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 +668,16 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
637
668
  | 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
669
  | 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
670
  | 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) | — | — | — | — |
671
+ | 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) |
672
+ | 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) | - | - | - | - |
673
+ | 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) | - | - | - | - |
674
+ | 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) | - | - | - | - |
675
+ | 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) | - | - | - | - |
676
+ | 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) | - | - | - | - |
677
+ | 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) | - | - | - | - |
678
+ | 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) | - | - | - | - |
679
+ | 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) | - | - | - | - |
680
+ | 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
681
  | 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
682
  | 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
683
  | 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,54 @@ 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
+ # Example: ModelConfig(model_id="PAI/Qwen-Image-2.1-Fun-Controlnet-Union", origin_file_pattern="Qwen-Image-2.1-Fun-Controlnet-Union.safetensors")
1740
+ "model_hash": "21fca5e7dc68c836804b46f735677546",
1741
+ "model_name": "qwen_image_21_controlnet",
1742
+ "model_class": "diffsynth.models.qwen_image_21_controlnet.QwenImage21ControlNet",
1743
+ },
1744
+ ]
1745
+
1595
1746
  MODEL_CONFIGS = (
1596
1747
  stable_diffusion_xl_series + stable_diffusion_series + qwen_image_series + qwen_video_edit_series + wan_series + flux_series + flux2_series + ernie_image_series
1597
1748
  + z_image_series + ltx2_series + anima_series + mova_series + joyai_image_series + boogu_image_series + ace_step_series + hidream_o1_image_series
1598
1749
  + image_metrics_series + ideogram4_series + krea2_series + lingbot_video_series + minimax_h3_series + minimax_music3_series + sensenova_u1_series
1750
+ + yue2_series + qwen_image_21_series
1599
1751
  )