diffsynth 2.1.11__tar.gz → 2.1.12__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 (312) hide show
  1. {diffsynth-2.1.11 → diffsynth-2.1.12}/PKG-INFO +8 -1
  2. {diffsynth-2.1.11 → diffsynth-2.1.12}/README.md +7 -0
  3. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/configs/model_configs.py +11 -1
  4. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/configs/vram_management_module_maps.py +8 -0
  5. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/backends/entropack.py +40 -10
  6. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/vram/layers.py +41 -4
  7. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/flow_match.py +18 -1
  8. diffsynth-2.1.12/diffsynth/models/fibo_dit.py +412 -0
  9. diffsynth-2.1.12/diffsynth/models/flux2_vae.py +335 -0
  10. diffsynth-2.1.12/diffsynth/pipelines/fibo.py +482 -0
  11. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/version.py +1 -1
  12. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth.egg-info/PKG-INFO +8 -1
  13. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth.egg-info/SOURCES.txt +2 -0
  14. diffsynth-2.1.11/diffsynth/models/flux2_vae.py +0 -2327
  15. {diffsynth-2.1.11 → diffsynth-2.1.12}/LICENSE +0 -0
  16. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/__init__.py +0 -0
  17. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/configs/__init__.py +0 -0
  18. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/__init__.py +0 -0
  19. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/attention/__init__.py +0 -0
  20. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/attention/attention.py +0 -0
  21. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/data/__init__.py +0 -0
  22. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/data/operators.py +0 -0
  23. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/data/unified_dataset.py +0 -0
  24. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/device/__init__.py +0 -0
  25. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/device/npu_compatible_device.py +0 -0
  26. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/gradient/__init__.py +0 -0
  27. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/gradient/gradient_checkpoint.py +0 -0
  28. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/loader/__init__.py +0 -0
  29. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/loader/config.py +0 -0
  30. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/loader/file.py +0 -0
  31. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/loader/model.py +0 -0
  32. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/npu_patch/npu_fused_operator.py +0 -0
  33. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/offload_training/__init__.py +0 -0
  34. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/offload_training/manager.py +0 -0
  35. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/offload_training/memory_buffer.py +0 -0
  36. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/offload_training/offloader.py +0 -0
  37. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/__init__.py +0 -0
  38. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/backends/__init__.py +0 -0
  39. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/backends/bitsandbytes.py +0 -0
  40. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/backends/comfy_kitchen.py +0 -0
  41. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/backends/torchao.py +0 -0
  42. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/base.py +0 -0
  43. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/quant/config.py +0 -0
  44. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/vram/__init__.py +0 -0
  45. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/vram/disk_map.py +0 -0
  46. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/core/vram/initialization.py +0 -0
  47. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/__init__.py +0 -0
  48. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/base_pipeline.py +0 -0
  49. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/ddim_scheduler.py +0 -0
  50. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/dmd2.py +0 -0
  51. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/logger.py +0 -0
  52. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/loss.py +0 -0
  53. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/parsers.py +0 -0
  54. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/runner.py +0 -0
  55. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/template.py +0 -0
  56. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/diffusion/training_module.py +0 -0
  57. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/__init__.py +0 -0
  58. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/aesthetic.py +0 -0
  59. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/base.py +0 -0
  60. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/bioclip.py +0 -0
  61. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/clip.py +0 -0
  62. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/fid.py +0 -0
  63. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/hpsv2.py +0 -0
  64. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/hpsv3.py +0 -0
  65. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/image_reward.py +0 -0
  66. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/lpips.py +0 -0
  67. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/pickscore.py +0 -0
  68. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/qwen_image_bench.py +0 -0
  69. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/unified_reward_2.py +0 -0
  70. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/metrics/unified_reward_edit.py +0 -0
  71. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_conditioner.py +0 -0
  72. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_dit.py +0 -0
  73. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_residual_fsq.py +0 -0
  74. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_text_encoder.py +0 -0
  75. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_tokenizer.py +0 -0
  76. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ace_step_vae.py +0 -0
  77. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/aesthetic.py +0 -0
  78. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/anima_dit.py +0 -0
  79. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/bioclip.py +0 -0
  80. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/boogu_image_dit.py +0 -0
  81. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/clip.py +0 -0
  82. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/demucs.py +0 -0
  83. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/diffsynth_music_dit.py +0 -0
  84. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/dinov3_image_encoder.py +0 -0
  85. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ernie_image_dit.py +0 -0
  86. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ernie_image_text_encoder.py +0 -0
  87. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/fid.py +0 -0
  88. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux2_dit.py +0 -0
  89. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux2_text_encoder.py +0 -0
  90. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux3_dit.py +0 -0
  91. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_controlnet.py +0 -0
  92. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_dit.py +0 -0
  93. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_infiniteyou.py +0 -0
  94. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_ipadapter.py +0 -0
  95. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_lora_encoder.py +0 -0
  96. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_lora_patcher.py +0 -0
  97. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_redux.py +0 -0
  98. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_text_encoder_clip.py +0 -0
  99. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_text_encoder_t5.py +0 -0
  100. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_vae.py +0 -0
  101. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/flux_value_control.py +0 -0
  102. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/general_modules.py +0 -0
  103. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/hidream_common.py +0 -0
  104. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/hidream_o1_image_dit.py +0 -0
  105. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/hpsv2.py +0 -0
  106. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/hpsv3.py +0 -0
  107. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ideogram4_dit.py +0 -0
  108. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ideogram4_text_encoder.py +0 -0
  109. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ideogram4_vae.py +0 -0
  110. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/image_reward.py +0 -0
  111. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/joyai_image_dit.py +0 -0
  112. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/krea2_dit.py +0 -0
  113. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/krea2_text_encoder.py +0 -0
  114. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/lingbot_video_dit.py +0 -0
  115. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/longcat_video_dit.py +0 -0
  116. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/lpips.py +0 -0
  117. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx25_diffusion_video_vae.py +0 -0
  118. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx25_duration_head.py +0 -0
  119. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx25_text_encoder.py +0 -0
  120. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_audio_vae.py +0 -0
  121. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_common.py +0 -0
  122. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_dit.py +0 -0
  123. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_text_encoder.py +0 -0
  124. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_upsampler.py +0 -0
  125. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/ltx2_video_vae.py +0 -0
  126. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_audio_vae.py +0 -0
  127. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_controlnet.py +0 -0
  128. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_dit.py +0 -0
  129. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_dit_comfy.py +0 -0
  130. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_dit_vdn.py +0 -0
  131. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_dit_vdn_fp8.py +0 -0
  132. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_text_encoder.py +0 -0
  133. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_h3_video_vae.py +0 -0
  134. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_music3_condition_encoder.py +0 -0
  135. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_music3_dit.py +0 -0
  136. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_music3_rvq_depth_decoder.py +0 -0
  137. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_music3_text_encoder.py +0 -0
  138. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/minimax_music3_vocoder.py +0 -0
  139. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/model_loader.py +0 -0
  140. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/moss_image_dit.py +0 -0
  141. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/moss_image_text_encoder.py +0 -0
  142. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/mova_audio_dit.py +0 -0
  143. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/mova_audio_vae.py +0 -0
  144. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/mova_dual_tower_bridge.py +0 -0
  145. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/nexus_gen.py +0 -0
  146. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/nexus_gen_ar_model.py +0 -0
  147. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/nexus_gen_projector.py +0 -0
  148. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/pickscore.py +0 -0
  149. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_21_controlnet.py +0 -0
  150. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_21_dit.py +0 -0
  151. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_21_text_encoder.py +0 -0
  152. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_21_vae.py +0 -0
  153. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_bench.py +0 -0
  154. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_controlnet.py +0 -0
  155. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_dit.py +0 -0
  156. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_image2lora.py +0 -0
  157. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_text_encoder.py +0 -0
  158. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_image_vae.py +0 -0
  159. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/qwen_video_edit_dit.py +0 -0
  160. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/sd_text_encoder.py +0 -0
  161. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/sensenova_u1_common.py +0 -0
  162. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/sensenova_u1_dit.py +0 -0
  163. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/siglip2_image_encoder.py +0 -0
  164. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/stable_diffusion_text_encoder.py +0 -0
  165. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/stable_diffusion_unet.py +0 -0
  166. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/stable_diffusion_vae.py +0 -0
  167. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/stable_diffusion_xl_text_encoder.py +0 -0
  168. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/stable_diffusion_xl_unet.py +0 -0
  169. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/step1x_connector.py +0 -0
  170. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/step1x_text_encoder.py +0 -0
  171. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/unified_reward_2.py +0 -0
  172. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/unified_reward_edit.py +0 -0
  173. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_animate_2_dit.py +0 -0
  174. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_animate_adapter.py +0 -0
  175. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_camera_controller.py +0 -0
  176. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_dit.py +0 -0
  177. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_dit_s2v.py +0 -0
  178. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_image_encoder.py +0 -0
  179. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_mot.py +0 -0
  180. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_motion_controller.py +0 -0
  181. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_text_encoder.py +0 -0
  182. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_vace.py +0 -0
  183. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wan_video_vae.py +0 -0
  184. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wantodance.py +0 -0
  185. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/wav2vec.py +0 -0
  186. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/yue2_mot.py +0 -0
  187. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/yue2_tokenizer.py +0 -0
  188. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/yue2_vae.py +0 -0
  189. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/z_image_controlnet.py +0 -0
  190. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/z_image_dit.py +0 -0
  191. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/z_image_image2lora.py +0 -0
  192. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/models/z_image_text_encoder.py +0 -0
  193. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/ace_step.py +0 -0
  194. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/anima_image.py +0 -0
  195. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/boogu_image.py +0 -0
  196. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/diffsynth_music.py +0 -0
  197. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/ernie_image.py +0 -0
  198. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/flux2_image.py +0 -0
  199. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/flux3_image.py +0 -0
  200. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/flux_image.py +0 -0
  201. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/hidream_o1_image.py +0 -0
  202. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/ideogram4.py +0 -0
  203. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/joyai_image.py +0 -0
  204. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/krea2.py +0 -0
  205. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/lingbot_video.py +0 -0
  206. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/ltx2_audio_video.py +0 -0
  207. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/minimax_h3_audio_video.py +0 -0
  208. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/minimax_music3.py +0 -0
  209. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/moss_image.py +0 -0
  210. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/mova_audio_video.py +0 -0
  211. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/qwen_image.py +0 -0
  212. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/qwen_image_21.py +0 -0
  213. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/qwen_video_edit.py +0 -0
  214. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/sensenova_u1_image.py +0 -0
  215. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/stable_diffusion.py +0 -0
  216. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/stable_diffusion_xl.py +0 -0
  217. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/wan_video.py +0 -0
  218. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/yue2.py +0 -0
  219. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/pipelines/z_image.py +0 -0
  220. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/controlnet/__init__.py +0 -0
  221. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/controlnet/annotator.py +0 -0
  222. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/controlnet/controlnet_input.py +0 -0
  223. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/data/__init__.py +0 -0
  224. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/data/audio.py +0 -0
  225. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/data/audio_video.py +0 -0
  226. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/data/media_io_ltx2.py +0 -0
  227. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/data/minimax_h3.py +0 -0
  228. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/demucs/__init__.py +0 -0
  229. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/dequantizer/__init__.py +0 -0
  230. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/__init__.py +0 -0
  231. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/flux.py +0 -0
  232. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/flux_timestep.py +0 -0
  233. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/general.py +0 -0
  234. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/krea2.py +0 -0
  235. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/merge.py +0 -0
  236. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/minimax_h3.py +0 -0
  237. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/reset_rank.py +0 -0
  238. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/lora/sdxl.py +0 -0
  239. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/music_tools/__init__.py +0 -0
  240. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/music_tools/click.py +0 -0
  241. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/music_tools/prosody.py +0 -0
  242. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/quant/serialization.py +0 -0
  243. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/ses/__init__.py +0 -0
  244. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/ses/ses.py +0 -0
  245. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/__init__.py +0 -0
  246. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ace_step_conditioner.py +0 -0
  247. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ace_step_dit.py +0 -0
  248. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ace_step_text_encoder.py +0 -0
  249. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ace_step_tokenizer.py +0 -0
  250. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/anima_dit.py +0 -0
  251. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/dino_v3.py +0 -0
  252. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ernie_image_text_encoder.py +0 -0
  253. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux2_text_encoder.py +0 -0
  254. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux3_dit.py +0 -0
  255. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_controlnet.py +0 -0
  256. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_dit.py +0 -0
  257. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_infiniteyou.py +0 -0
  258. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_ipadapter.py +0 -0
  259. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_text_encoder_clip.py +0 -0
  260. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_text_encoder_t5.py +0 -0
  261. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/flux_vae.py +0 -0
  262. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ideogram4_text_encoder.py +0 -0
  263. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/image_metrics.py +0 -0
  264. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/krea2_dit.py +0 -0
  265. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/krea2_text_encoder.py +0 -0
  266. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/lingbot_video_dit.py +0 -0
  267. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx25_diffusion_video_vae.py +0 -0
  268. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx25_duration_head.py +0 -0
  269. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx25_text_encoder.py +0 -0
  270. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx2_audio_vae.py +0 -0
  271. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx2_dit.py +0 -0
  272. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx2_text_encoder.py +0 -0
  273. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/ltx2_video_vae.py +0 -0
  274. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_audio_vae.py +0 -0
  275. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_controlnet.py +0 -0
  276. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_dit.py +0 -0
  277. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_dit_vdn.py +0 -0
  278. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_text_encoder.py +0 -0
  279. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_h3_video_vae.py +0 -0
  280. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/minimax_music3_text_encoder.py +0 -0
  281. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/moss_image_text_encoder.py +0 -0
  282. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/nexus_gen.py +0 -0
  283. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/nexus_gen_projector.py +0 -0
  284. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/qwen_image_21_text_encoder.py +0 -0
  285. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/qwen_image_text_encoder.py +0 -0
  286. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/qwen_video_edit.py +0 -0
  287. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/sdxl.py +0 -0
  288. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/sdxl_text_encoder.py +0 -0
  289. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/sdxl_text_encoder_2.py +0 -0
  290. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/sdxl_vae.py +0 -0
  291. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/stable_diffusion_text_encoder.py +0 -0
  292. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/stable_diffusion_vae.py +0 -0
  293. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/stable_diffusion_xl_text_encoder.py +0 -0
  294. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/step1x_connector.py +0 -0
  295. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_animate_adapter.py +0 -0
  296. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_dit.py +0 -0
  297. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_image_encoder.py +0 -0
  298. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_mot.py +0 -0
  299. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_vace.py +0 -0
  300. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wan_video_vae.py +0 -0
  301. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/wans2v_audio_encoder.py +0 -0
  302. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/z_image_dit.py +0 -0
  303. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/state_dict_converters/z_image_text_encoder.py +0 -0
  304. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/tile/__init__.py +0 -0
  305. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/tile/tile_worker.py +0 -0
  306. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/xfuser/__init__.py +0 -0
  307. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth/utils/xfuser/xdit_context_parallel.py +0 -0
  308. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth.egg-info/dependency_links.txt +0 -0
  309. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth.egg-info/requires.txt +0 -0
  310. {diffsynth-2.1.11 → diffsynth-2.1.12}/diffsynth.egg-info/top_level.txt +0 -0
  311. {diffsynth-2.1.11 → diffsynth-2.1.12}/pyproject.toml +0 -0
  312. {diffsynth-2.1.11 → diffsynth-2.1.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffsynth
3
- Version: 2.1.11
3
+ Version: 2.1.12
4
4
  Summary: Enjoy the magic of Diffusion models!
5
5
  Author: ModelScope Team
6
6
  License-Expression: Apache-2.0
@@ -114,6 +114,8 @@ See also:
114
114
 
115
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.
116
116
 
117
+ - **October 21, 2026** We now support Fibo 2.0, including unified text-to-image and image editing inference, masked and multi-reference editing, text rendering, low VRAM inference, and full/LoRA training for both text-to-image and image editing on [Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev). See the [documentation](/docs/en/Model_Details/Fibo.md) and [example code](/examples/fibo/).
118
+
117
119
  - **October 20, 2026** We now support MOSS-Image, including inference and training for [MOSS-Image-Base](https://modelscope.cn/models/openmoss/MOSS-Image-Base) and [MOSS-Image-SFT](https://modelscope.cn/models/openmoss/MOSS-Image-SFT). In addition, we provide an [EntroPack low-bit quantized model](https://www.modelscope.cn/models/DiffSynth-Studio/MOSS-Image-EntroPack), which can run the 3.5-bit quantized model with as little as 4 GB of VRAM; and an [accelerated model](https://modelscope.cn/models/DiffSynth-Studio/MOSS-Image-SFT-TurboLoRA) distillation-accelerated via [OPD training](https://diffsynth-studio-doc.readthedocs.io/en/latest/Training/Distillation.html), supporting 8-step ultra-fast inference.
118
120
 
119
121
  - **October 16, 2026** flux-3-image-klein open-sourced, welcome a new member to the image model family! Support includes text-to-image generation, multi-reference editing, layout control, low VRAM inference, and Base training capabilities. For details, please refer to the [documentation](/docs/en/Model_Details/FLUX.3.md) and [example code](/examples/flux3/). We quantized the model with [EntroPack](https://github.com/modelscope/entropack), providing pre-quantized models in 3-bit, 4-bit, and 6-bit versions at [DiffSynth-Studio/flux-3-image-klein-entropack](https://www.modelscope.cn/models/DiffSynth-Studio/flux-3-image-klein-entropack).
@@ -402,6 +404,8 @@ Quick start: experience popular and the latest models:
402
404
 
403
405
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
404
406
  |-|-|-|-|-|-|-|-|
407
+ | Fibo 2.0 | [briaai/Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev) | [code](/examples/fibo/model_inference/Fibo-2.0-dev.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-dev.py) | [code](/examples/fibo/model_training/full/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_full/Fibo-2.0-dev-T2I.py) | [code](/examples/fibo/model_training/lora/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_lora/Fibo-2.0-dev-T2I.py) |
408
+ | Fibo 2.0 | [briaai/Fibo-2.0-edit-turbo](https://www.modelscope.cn/models/briaai/Fibo-2.0-edit-turbo) | [code](/examples/fibo/model_inference/Fibo-2.0-edit-turbo.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-edit-turbo.py) | - | - | - | - |
405
409
  | 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) |
406
410
  | 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) |
407
411
  | 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) |
@@ -414,6 +418,7 @@ Quick start: experience popular and the latest models:
414
418
  Model overview:
415
419
 
416
420
  - Image generation
421
+ - Fibo 2.0: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Fibo.html), [Example code](/examples/fibo/)
417
422
  - MOSS-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MOSS-Image.html), [Example code](/examples/moss_image/)
418
423
  - FLUX.3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/FLUX.3.html), [Example code](/examples/flux3/)
419
424
  - 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/)
@@ -702,6 +707,8 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
702
707
 
703
708
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
704
709
  |-|-|-|-|-|-|-|-|
710
+ | Fibo 2.0 | [briaai/Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev) | [code](/examples/fibo/model_inference/Fibo-2.0-dev.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-dev.py) | [code](/examples/fibo/model_training/full/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_full/Fibo-2.0-dev-T2I.py) | [code](/examples/fibo/model_training/lora/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_lora/Fibo-2.0-dev-T2I.py) |
711
+ | Fibo 2.0 | [briaai/Fibo-2.0-edit-turbo](https://www.modelscope.cn/models/briaai/Fibo-2.0-edit-turbo) | [code](/examples/fibo/model_inference/Fibo-2.0-edit-turbo.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-edit-turbo.py) | - | - | - | - |
705
712
  | MOSS-Image | [openmoss/MOSS-Image-Base](https://www.modelscope.cn/models/openmoss/MOSS-Image-Base) | [code](/examples/moss_image/model_inference/MOSS-Image-Base.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-Base.py) | [code](/examples/moss_image/model_training/full/MOSS-Image-Base.sh) | [code](/examples/moss_image/model_training/validate_full/MOSS-Image-Base.py) | [code](/examples/moss_image/model_training/lora/MOSS-Image-Base.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-Base.py) |
706
713
  | MOSS-Image | [openmoss/MOSS-Image-SFT](https://www.modelscope.cn/models/openmoss/MOSS-Image-SFT) | [code](/examples/moss_image/model_inference/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_training/full/MOSS-Image-SFT.sh) | [code](/examples/moss_image/model_training/validate_full/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_training/lora/MOSS-Image-SFT.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-SFT.py) |
707
714
  | MOSS-Image | [DiffSynth-Studio/MOSS-Image-EntroPack](https://www.modelscope.cn/models/DiffSynth-Studio/MOSS-Image-EntroPack) | [code](/examples/moss_image/model_inference/MOSS-Image-EntroPack.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-EntroPack.py) | - | - | [code](/examples/moss_image/model_training/lora/MOSS-Image-entropack.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-entropack.py) |
@@ -41,6 +41,8 @@ See also:
41
41
 
42
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.
43
43
 
44
+ - **October 21, 2026** We now support Fibo 2.0, including unified text-to-image and image editing inference, masked and multi-reference editing, text rendering, low VRAM inference, and full/LoRA training for both text-to-image and image editing on [Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev). See the [documentation](/docs/en/Model_Details/Fibo.md) and [example code](/examples/fibo/).
45
+
44
46
  - **October 20, 2026** We now support MOSS-Image, including inference and training for [MOSS-Image-Base](https://modelscope.cn/models/openmoss/MOSS-Image-Base) and [MOSS-Image-SFT](https://modelscope.cn/models/openmoss/MOSS-Image-SFT). In addition, we provide an [EntroPack low-bit quantized model](https://www.modelscope.cn/models/DiffSynth-Studio/MOSS-Image-EntroPack), which can run the 3.5-bit quantized model with as little as 4 GB of VRAM; and an [accelerated model](https://modelscope.cn/models/DiffSynth-Studio/MOSS-Image-SFT-TurboLoRA) distillation-accelerated via [OPD training](https://diffsynth-studio-doc.readthedocs.io/en/latest/Training/Distillation.html), supporting 8-step ultra-fast inference.
45
47
 
46
48
  - **October 16, 2026** flux-3-image-klein open-sourced, welcome a new member to the image model family! Support includes text-to-image generation, multi-reference editing, layout control, low VRAM inference, and Base training capabilities. For details, please refer to the [documentation](/docs/en/Model_Details/FLUX.3.md) and [example code](/examples/flux3/). We quantized the model with [EntroPack](https://github.com/modelscope/entropack), providing pre-quantized models in 3-bit, 4-bit, and 6-bit versions at [DiffSynth-Studio/flux-3-image-klein-entropack](https://www.modelscope.cn/models/DiffSynth-Studio/flux-3-image-klein-entropack).
@@ -329,6 +331,8 @@ Quick start: experience popular and the latest models:
329
331
 
330
332
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
331
333
  |-|-|-|-|-|-|-|-|
334
+ | Fibo 2.0 | [briaai/Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev) | [code](/examples/fibo/model_inference/Fibo-2.0-dev.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-dev.py) | [code](/examples/fibo/model_training/full/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_full/Fibo-2.0-dev-T2I.py) | [code](/examples/fibo/model_training/lora/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_lora/Fibo-2.0-dev-T2I.py) |
335
+ | Fibo 2.0 | [briaai/Fibo-2.0-edit-turbo](https://www.modelscope.cn/models/briaai/Fibo-2.0-edit-turbo) | [code](/examples/fibo/model_inference/Fibo-2.0-edit-turbo.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-edit-turbo.py) | - | - | - | - |
332
336
  | 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) |
333
337
  | 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) |
334
338
  | 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) |
@@ -341,6 +345,7 @@ Quick start: experience popular and the latest models:
341
345
  Model overview:
342
346
 
343
347
  - Image generation
348
+ - Fibo 2.0: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/Fibo.html), [Example code](/examples/fibo/)
344
349
  - MOSS-Image: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/MOSS-Image.html), [Example code](/examples/moss_image/)
345
350
  - FLUX.3: [Documentation](https://diffsynth-studio-doc.readthedocs.io/en/latest/Model_Details/FLUX.3.html), [Example code](/examples/flux3/)
346
351
  - 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/)
@@ -629,6 +634,8 @@ https://github.com/Artiprocher/DiffSynth-Studio/assets/35051019/59fb2f7b-8de0-44
629
634
 
630
635
  | Architecture | Model ID | Inference | Low VRAM Inference | Full Training | Validation After Full Training | LoRA Training | Validation After LoRA Training |
631
636
  |-|-|-|-|-|-|-|-|
637
+ | Fibo 2.0 | [briaai/Fibo-2.0-dev](https://www.modelscope.cn/models/briaai/Fibo-2.0-dev) | [code](/examples/fibo/model_inference/Fibo-2.0-dev.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-dev.py) | [code](/examples/fibo/model_training/full/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_full/Fibo-2.0-dev-T2I.py) | [code](/examples/fibo/model_training/lora/Fibo-2.0-dev-T2I.sh) | [code](/examples/fibo/model_training/validate_lora/Fibo-2.0-dev-T2I.py) |
638
+ | Fibo 2.0 | [briaai/Fibo-2.0-edit-turbo](https://www.modelscope.cn/models/briaai/Fibo-2.0-edit-turbo) | [code](/examples/fibo/model_inference/Fibo-2.0-edit-turbo.py) | [code](/examples/fibo/model_inference_low_vram/Fibo-2.0-edit-turbo.py) | - | - | - | - |
632
639
  | MOSS-Image | [openmoss/MOSS-Image-Base](https://www.modelscope.cn/models/openmoss/MOSS-Image-Base) | [code](/examples/moss_image/model_inference/MOSS-Image-Base.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-Base.py) | [code](/examples/moss_image/model_training/full/MOSS-Image-Base.sh) | [code](/examples/moss_image/model_training/validate_full/MOSS-Image-Base.py) | [code](/examples/moss_image/model_training/lora/MOSS-Image-Base.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-Base.py) |
633
640
  | MOSS-Image | [openmoss/MOSS-Image-SFT](https://www.modelscope.cn/models/openmoss/MOSS-Image-SFT) | [code](/examples/moss_image/model_inference/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_training/full/MOSS-Image-SFT.sh) | [code](/examples/moss_image/model_training/validate_full/MOSS-Image-SFT.py) | [code](/examples/moss_image/model_training/lora/MOSS-Image-SFT.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-SFT.py) |
634
641
  | MOSS-Image | [DiffSynth-Studio/MOSS-Image-EntroPack](https://www.modelscope.cn/models/DiffSynth-Studio/MOSS-Image-EntroPack) | [code](/examples/moss_image/model_inference/MOSS-Image-EntroPack.py) | [code](/examples/moss_image/model_inference_low_vram/MOSS-Image-EntroPack.py) | - | - | [code](/examples/moss_image/model_training/lora/MOSS-Image-entropack.sh) | [code](/examples/moss_image/model_training/validate_lora/MOSS-Image-entropack.py) |
@@ -1843,9 +1843,19 @@ flux3_series = [
1843
1843
  },
1844
1844
  ]
1845
1845
 
1846
+ fibo_series = [
1847
+ {
1848
+ # Example: ModelConfig(model_id="briaai/Fibo-2.0-dev", origin_file_pattern="transformer/*.safetensors")
1849
+ # Example: ModelConfig(model_id="briaai/Fibo-2.0-edit-turbo", origin_file_pattern="transformer/*.safetensors")
1850
+ "model_hash": "39f09f95705fd6d9b20670f1923d3c12",
1851
+ "model_name": "fibo_dit",
1852
+ "model_class": "diffsynth.models.fibo_dit.FiboDiT",
1853
+ },
1854
+ ]
1855
+
1846
1856
  MODEL_CONFIGS = (
1847
1857
  stable_diffusion_xl_series + stable_diffusion_series + qwen_image_series + qwen_video_edit_series + wan_series + flux_series + flux2_series + ernie_image_series
1848
1858
  + z_image_series + ltx2_series + anima_series + mova_series + joyai_image_series + boogu_image_series + ace_step_series + hidream_o1_image_series
1849
1859
  + image_metrics_series + ideogram4_series + krea2_series + lingbot_video_series + minimax_h3_series + minimax_music3_series + sensenova_u1_series
1850
- + yue2_series + qwen_image_21_series + flux3_series + moss_image_series
1860
+ + yue2_series + qwen_image_21_series + flux3_series + moss_image_series + fibo_series
1851
1861
  )
@@ -256,6 +256,14 @@ VRAM_MANAGEMENT_MODULE_MAPS = {
256
256
  "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
257
257
  "torch.nn.Conv2d": "diffsynth.core.vram.layers.AutoWrappedModule",
258
258
  "torch.nn.GroupNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
259
+ "diffsynth.models.flux2_vae.Flux2VAELatentNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
260
+ },
261
+ "diffsynth.models.fibo_dit.FiboDiT": {
262
+ "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
263
+ "diffsynth.models.general_modules.RMSNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
264
+ "torch.nn.LayerNorm": "diffsynth.core.vram.layers.AutoWrappedModule",
265
+ "diffsynth.models.fibo_dit.FiboPerceiverResampler": "diffsynth.core.vram.layers.AutoWrappedModule",
266
+ "diffsynth.models.fibo_dit.FiboTransformerBlock": "diffsynth.core.vram.layers.AutoWrappedModule",
259
267
  },
260
268
  "diffsynth.models.z_image_text_encoder.ZImageTextEncoder": {
261
269
  "torch.nn.Linear": "diffsynth.core.vram.layers.AutoWrappedLinear",
@@ -1,4 +1,4 @@
1
- from dataclasses import dataclass
1
+ from dataclasses import dataclass, fields
2
2
 
3
3
  import torch
4
4
 
@@ -45,15 +45,20 @@ if ENTROPACK_AVAILABLE:
45
45
  @dataclass
46
46
  class EntroPackINT8CodedConfig(BackendConfig, ep.LatticeRANSConfig):
47
47
  linear_cls = ep.CompressedINT8Linear
48
+ use_convrot: bool = False
49
+ convrot_groupsize: int = 256
48
50
 
49
51
  @dataclass
50
52
  class EntroPackINT8RawConfig(BackendConfig, ep.RawConfig):
51
53
  linear_cls = ep.CompressedINT8Linear
54
+ use_convrot: bool = False
55
+ convrot_groupsize: int = 256
52
56
 
53
57
 
54
- def _graph_break_quantized_linear(module):
55
- module.forward = torch._dynamo.disable(module.forward)
56
- return module
58
+ def _patch_compile_graph_breaks():
59
+ for cls in (ep.CompressedLinear, ep.CompressedFP8Linear, ep.CompressedINT8Linear):
60
+ if not getattr(cls.forward, "_torchdynamo_disable", False):
61
+ cls.forward = torch._dynamo.disable(cls.forward)
57
62
 
58
63
 
59
64
  @register_quant_backend("entropack")
@@ -70,6 +75,7 @@ class EntroPackQuantBackend(QuantBackend):
70
75
  '`pip install "entropack[cuda13]"` (use `cuda12` for a CUDA 12 environment) '
71
76
  'or `pip install "diffsynth[quant]"`.'
72
77
  ) from _ENTROPACK_IMPORT_ERROR
78
+ _patch_compile_graph_breaks()
73
79
 
74
80
  def capabilities(self):
75
81
  return {
@@ -85,20 +91,44 @@ class EntroPackQuantBackend(QuantBackend):
85
91
  def unflatten_state_dict(self, state_dict, metadata):
86
92
  return state_dict
87
93
 
94
+ def _compression_config_cls(self):
95
+ for cls in type(self.config).__mro__:
96
+ if cls.__module__.startswith("entropack") and issubclass(cls, ep.CompressionConfig):
97
+ return cls
98
+ return None
99
+
100
+ def _compression_config(self):
101
+ cls = self._compression_config_cls()
102
+ if cls is None:
103
+ return self.config
104
+ names = {field.name for field in fields(cls) if field.init}
105
+ return cls(**{name: getattr(self.config, name) for name in names})
106
+
107
+ def linear_spec_configs(self):
108
+ cls = self._compression_config_cls()
109
+ if cls is None:
110
+ return {}
111
+ compression = {field.name for field in fields(cls)}
112
+ return {
113
+ field.name: getattr(self.config, field.name)
114
+ for field in fields(self.config)
115
+ if field.init and field.name not in compression
116
+ }
117
+
88
118
  def create_quantized_linear(self, linear, compute_device=None, model_device=None):
89
119
  linear.requires_grad_(False)
90
120
  if compute_device is not None:
91
121
  linear = linear.to(device=compute_device)
92
- quantized = self.config.linear_cls.from_linear(linear, config=self.config)
93
- quantized = quantized if model_device is None else quantized.to(device=model_device)
94
- return _graph_break_quantized_linear(quantized)
122
+ quantized = self.config.linear_cls.from_linear(
123
+ linear, config=self._compression_config(), **self.linear_spec_configs(),
124
+ )
125
+ return quantized if model_device is None else quantized.to(device=model_device)
95
126
 
96
127
  def create_quantized_linear_shell(self, linear, compute_dtype):
97
- shell = self.config.linear_cls(
128
+ return self.config.linear_cls(
98
129
  linear.in_features, linear.out_features, bias=linear.bias is not None,
99
- dtype=compute_dtype, config=self.config,
130
+ dtype=compute_dtype, config=self._compression_config(), **self.linear_spec_configs(),
100
131
  )
101
- return _graph_break_quantized_linear(shell)
102
132
 
103
133
  def dequantize_to_linear(self, module, compute_dtype, compute_device=None, model_device=None):
104
134
  if compute_device is not None:
@@ -246,10 +246,33 @@ class AutoWrappedNonRecurseModule(AutoWrappedModule):
246
246
  if self.disk_offload:
247
247
  self.required_params = [name for name, _ in self.module.named_parameters(recurse=False)]
248
248
 
249
+ def _copy_with_shared_children(self, module):
250
+ # Child wrappers own their DiskMap and devices; share them instead of copying.
251
+ shared = {id(child): child for child in module.modules() if isinstance(child, AutoTorchModule)}
252
+ return copy.deepcopy(module, shared), set(shared)
253
+
254
+ def _detach_shared_children(self, module, shared_ids):
255
+ detached = []
256
+ for parent in list(module.modules()):
257
+ if isinstance(parent, AutoTorchModule):
258
+ continue
259
+ original = parent._modules
260
+ filtered = type(original)(
261
+ (name, child) for name, child in original.items() if id(child) not in shared_ids
262
+ )
263
+ if len(filtered) != len(original):
264
+ parent._modules = filtered
265
+ detached.append((parent, original))
266
+ return detached
267
+
268
+ def _restore_shared_children(self, detached):
269
+ for parent, original in detached:
270
+ parent._modules = original
271
+
249
272
  @torch._dynamo.disable
250
273
  def load_from_disk(self, torch_dtype, device, copy_module=False):
251
274
  if copy_module:
252
- module = copy.deepcopy(self.module)
275
+ module, shared_ids = self._copy_with_shared_children(self.module)
253
276
  else:
254
277
  module = self.module
255
278
  state_dict = {}
@@ -257,7 +280,14 @@ class AutoWrappedNonRecurseModule(AutoWrappedModule):
257
280
  param = self.disk_map[self.param_name(name)]
258
281
  param = param.to(dtype=torch_dtype, device=device)
259
282
  state_dict[name] = param
260
- module.load_state_dict(state_dict, assign=True, strict=False)
283
+ if copy_module:
284
+ detached = self._detach_shared_children(module, shared_ids)
285
+ try:
286
+ module.load_state_dict(state_dict, assign=True, strict=False)
287
+ finally:
288
+ self._restore_shared_children(detached)
289
+ else:
290
+ module.load_state_dict(state_dict, assign=True, strict=False)
261
291
  return module
262
292
 
263
293
  def offload_to_disk(self, model: torch.nn.Module):
@@ -265,8 +295,13 @@ class AutoWrappedNonRecurseModule(AutoWrappedModule):
265
295
  getattr(self, name).to("meta")
266
296
 
267
297
  def cast_to(self, module, dtype, device):
268
- # Parameter casting is implemented in the model architecture.
269
- return module
298
+ result, shared_ids = self._copy_with_shared_children(module)
299
+ detached = self._detach_shared_children(result, shared_ids)
300
+ try:
301
+ result = result.to(dtype=dtype, device=device)
302
+ finally:
303
+ self._restore_shared_children(detached)
304
+ return result
270
305
 
271
306
  def __getattr__(self, name):
272
307
  if name in self.__dict__ or name == "module":
@@ -531,6 +566,7 @@ class AutoWrappedQuantizedModule(torch.nn.Linear, AutoTorchModule, LoRAHotLoadMi
531
566
  self.module.to(device=self.onload_device)
532
567
  self.state = 1
533
568
 
569
+ @torch._dynamo.disable
534
570
  def preparing(self):
535
571
  if self.state != 2:
536
572
  if self.disk_offload and self.preparing_device != "disk" and self.onload_device == "disk":
@@ -539,6 +575,7 @@ class AutoWrappedQuantizedModule(torch.nn.Linear, AutoTorchModule, LoRAHotLoadMi
539
575
  self.module.to(device=self.preparing_device)
540
576
  self.state = 2
541
577
 
578
+ @torch._dynamo.disable
542
579
  def computation_module(self):
543
580
  device = self.preparing_device if self.state == 2 else self.onload_device
544
581
  if device == self.computation_device:
@@ -5,7 +5,7 @@ from typing_extensions import Literal
5
5
 
6
6
  class FlowMatchScheduler():
7
7
 
8
- def __init__(self, template: Literal["FLUX.1", "Wan", "Qwen-Image", "FLUX.2", "FLUX.3", "Z-Image", "LTX-2", "Qwen-Image-Lightning", "ERNIE-Image", "MOSS-Image", "ACE-Step", "Ideogram4", "Krea-2", "Boogu", "MiniMax-H3", "MiniMax-Music3", "LingBot-Video", "SenseNova-U1", "YuE2"] = "FLUX.1"):
8
+ def __init__(self, template: Literal["FLUX.1", "Wan", "Qwen-Image", "FLUX.2", "FLUX.3", "Z-Image", "LTX-2", "Qwen-Image-Lightning", "ERNIE-Image", "MOSS-Image", "ACE-Step", "Ideogram4", "Krea-2", "Boogu", "MiniMax-H3", "MiniMax-Music3", "LingBot-Video", "SenseNova-U1", "YuE2", "Fibo"] = "FLUX.1"):
9
9
  self.set_timesteps_fn = {
10
10
  "FLUX.1": FlowMatchScheduler.set_timesteps_flux,
11
11
  "Wan": FlowMatchScheduler.set_timesteps_wan,
@@ -27,6 +27,7 @@ class FlowMatchScheduler():
27
27
  "LingBot-Video": FlowMatchScheduler.set_timesteps_lingbot_video,
28
28
  "SenseNova-U1": FlowMatchScheduler.set_timesteps_sensenova_u1,
29
29
  "YuE2": FlowMatchScheduler.set_timesteps_yue2,
30
+ "Fibo": FlowMatchScheduler.set_timesteps_fibo,
30
31
  }.get(template, FlowMatchScheduler.set_timesteps_flux)
31
32
  self.num_train_timesteps = 1000
32
33
 
@@ -168,6 +169,22 @@ class FlowMatchScheduler():
168
169
  timesteps = sigmas * num_train_timesteps
169
170
  return sigmas, timesteps
170
171
 
172
+ @staticmethod
173
+ def set_timesteps_fibo(num_inference_steps=30, denoising_strength=1.0, dynamic_shift_len=None):
174
+ sigma_min = 1 / num_inference_steps
175
+ sigma_max = 1.0
176
+ sigma_start = sigma_min + (sigma_max - sigma_min) * denoising_strength
177
+ sigmas = torch.linspace(sigma_start, sigma_min, num_inference_steps)
178
+ if dynamic_shift_len is None:
179
+ mu = 0.5
180
+ else:
181
+ mu = FlowMatchScheduler._calculate_shift_qwen_image(
182
+ dynamic_shift_len, base_seq_len=256, max_seq_len=4096, base_shift=0.5, max_shift=1.15
183
+ )
184
+ sigmas = math.exp(mu) / (math.exp(mu) + (1 / sigmas - 1))
185
+ timesteps = sigmas * 1000
186
+ return sigmas, timesteps
187
+
171
188
  @staticmethod
172
189
  def set_timesteps_flux3(num_inference_steps=16, denoising_strength=1.0, alpha=6.93, **kwargs):
173
190
  u = torch.linspace(denoising_strength, 0.0, num_inference_steps + 1)[:-1]