diffsynth-engine 0.4.4.dev2__tar.gz → 0.4.4.dev4__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.
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/.gitignore +2 -1
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/PKG-INFO +1 -1
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/__init__.py +20 -16
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/configs/__init__.py +6 -2
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/configs/pipeline.py +43 -28
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/base.py +3 -5
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/lora.py +26 -22
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_controlnet.py +8 -6
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_dit.py +11 -10
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_dit_fbcache.py +8 -11
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_ipadapter.py +4 -7
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_redux.py +2 -8
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_text_encoder.py +4 -5
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_vae.py +4 -5
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/qwen_image/qwen2_5_vl.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/qwen_image/qwen_image_dit.py +33 -30
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/qwen_image/qwen_image_dit_fbcache.py +8 -11
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/qwen_image/qwen_image_vae.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd/sd_controlnet.py +3 -4
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd/sd_text_encoder.py +12 -13
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd/sd_unet.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd/sd_vae.py +8 -7
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd3/sd3_dit.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd3/sd3_text_encoder.py +4 -4
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd3/sd3_vae.py +8 -7
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +24 -25
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sdxl/sdxl_unet.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sdxl/sdxl_vae.py +8 -7
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/text_encoder/t5.py +2 -4
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/vae/vae.py +37 -38
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/wan/wan_dit.py +10 -5
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/wan/wan_image_encoder.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/wan/wan_text_encoder.py +2 -4
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/wan/wan_vae.py +2 -3
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/flux_image.py +47 -45
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/qwen_image.py +54 -50
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/sd_image.py +21 -24
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/sdxl_image.py +27 -34
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/wan_video.py +105 -62
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tools/flux_inpainting_tool.py +8 -16
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tools/flux_outpainting_tool.py +10 -18
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tools/flux_reference_tool.py +8 -16
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tools/flux_replace_tool.py +9 -19
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/memory/memory_predcit_model.py +3 -4
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/offload.py +6 -9
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/parallel.py +86 -44
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/platform.py +6 -1
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine.egg-info/PKG-INFO +1 -1
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine.egg-info/SOURCES.txt +0 -1
- diffsynth_engine-0.4.4.dev2/diffsynth_engine/models/utils.py +0 -53
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/.gitattributes +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/.pre-commit-config.yaml +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/LICENSE +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/MANIFEST.in +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/README.md +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/assets/dingtalk.png +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/assets/showcase.jpeg +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/components/vae.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/qwen_image/qwen2_5_vl_vision_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/qwen_image/qwen_image_vae_keymap.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.1-flf2v-14b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.1-i2v-14b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-1.3b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.1-t2v-14b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.2-i2v-a14b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.2-t2v-a14b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/dit/wan2.2-ti2v-5b.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/vae/wan-vae-keymap.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/vae/wan2.1-vae.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/models/wan/vae/wan2.2-vae.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/qwen2_vl_image_processor.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/added_tokens.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/qwen_image/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/configs/controlnet.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/kernels/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/attention.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/timestep.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/unet_helper.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/dino_image_encoder.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/hunyuan3d_dit.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/hunyuan3d_vae.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/moe.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/surface_extractor.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/hunyuan3d/volume_decoder.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/qwen_image/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sd3/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sdxl/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/sdxl/sdxl_controlnet.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/text_encoder/clip.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/vae/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/wan/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/base.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/hunyuan3d_shape.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/pipelines/utils.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/processor/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/processor/canny_processor.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/processor/depth_processor.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/base.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/clip.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/qwen2.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/qwen2_vl_image_processor.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/qwen2_vl_processor.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/t5.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tokenizers/wan.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/tools/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/cache.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/constants.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/download.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/env.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/flag.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/fp8_linear.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/gguf.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/image.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/loader.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/lock.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/logging.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/memory/__init__.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/memory/linear_regression.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/onnx.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/prompt.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/utils/video.py +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine.egg-info/requires.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine.egg-info/top_level.txt +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/docs/tutorial.md +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/docs/tutorial_zh.md +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/pyproject.toml +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/setup.cfg +0 -0
- {diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/setup.py +0 -0
|
@@ -4,17 +4,19 @@ from .configs import (
|
|
|
4
4
|
FluxPipelineConfig,
|
|
5
5
|
WanPipelineConfig,
|
|
6
6
|
QwenImagePipelineConfig,
|
|
7
|
+
HunyuanPipelineConfig,
|
|
7
8
|
SDStateDicts,
|
|
8
9
|
SDXLStateDicts,
|
|
9
10
|
FluxStateDicts,
|
|
11
|
+
WanStateDicts,
|
|
10
12
|
QwenImageStateDicts,
|
|
11
13
|
ControlNetParams,
|
|
12
14
|
ControlType,
|
|
13
15
|
)
|
|
14
16
|
from .pipelines import (
|
|
15
|
-
FluxImagePipeline,
|
|
16
|
-
SDXLImagePipeline,
|
|
17
17
|
SDImagePipeline,
|
|
18
|
+
SDXLImagePipeline,
|
|
19
|
+
FluxImagePipeline,
|
|
18
20
|
WanVideoPipeline,
|
|
19
21
|
QwenImagePipeline,
|
|
20
22
|
Hunyuan3DShapePipeline,
|
|
@@ -22,6 +24,13 @@ from .pipelines import (
|
|
|
22
24
|
from .models.flux import FluxControlNet, FluxIPAdapter, FluxRedux
|
|
23
25
|
from .models.sd import SDControlNet
|
|
24
26
|
from .models.sdxl import SDXLControlNetUnion
|
|
27
|
+
from .tools import (
|
|
28
|
+
FluxInpaintingTool,
|
|
29
|
+
FluxOutpaintingTool,
|
|
30
|
+
FluxIPAdapterRefTool,
|
|
31
|
+
FluxReduxRefTool,
|
|
32
|
+
FluxReplaceByControlTool,
|
|
33
|
+
)
|
|
25
34
|
from .utils.download import (
|
|
26
35
|
fetch_model,
|
|
27
36
|
fetch_modelscope_model,
|
|
@@ -30,32 +39,29 @@ from .utils.download import (
|
|
|
30
39
|
reset_fetch_modelscope_model,
|
|
31
40
|
)
|
|
32
41
|
from .utils.video import load_video, save_video
|
|
33
|
-
from .tools import (
|
|
34
|
-
FluxInpaintingTool,
|
|
35
|
-
FluxOutpaintingTool,
|
|
36
|
-
FluxIPAdapterRefTool,
|
|
37
|
-
FluxReduxRefTool,
|
|
38
|
-
FluxReplaceByControlTool,
|
|
39
|
-
)
|
|
40
42
|
|
|
41
43
|
__all__ = [
|
|
42
44
|
"SDPipelineConfig",
|
|
43
45
|
"SDXLPipelineConfig",
|
|
44
46
|
"FluxPipelineConfig",
|
|
45
47
|
"WanPipelineConfig",
|
|
48
|
+
"QwenImagePipelineConfig",
|
|
49
|
+
"HunyuanPipelineConfig",
|
|
46
50
|
"SDStateDicts",
|
|
47
51
|
"SDXLStateDicts",
|
|
48
52
|
"FluxStateDicts",
|
|
53
|
+
"WanStateDicts",
|
|
49
54
|
"QwenImageStateDicts",
|
|
55
|
+
"ControlNetParams",
|
|
56
|
+
"ControlType",
|
|
57
|
+
"SDImagePipeline",
|
|
58
|
+
"SDControlNet",
|
|
59
|
+
"SDXLImagePipeline",
|
|
60
|
+
"SDXLControlNetUnion",
|
|
50
61
|
"FluxImagePipeline",
|
|
51
|
-
"QwenImagePipelineConfig",
|
|
52
62
|
"FluxControlNet",
|
|
53
63
|
"FluxIPAdapter",
|
|
54
64
|
"FluxRedux",
|
|
55
|
-
"SDControlNet",
|
|
56
|
-
"SDXLControlNetUnion",
|
|
57
|
-
"SDXLImagePipeline",
|
|
58
|
-
"SDImagePipeline",
|
|
59
65
|
"WanVideoPipeline",
|
|
60
66
|
"QwenImagePipeline",
|
|
61
67
|
"Hunyuan3DShapePipeline",
|
|
@@ -64,8 +70,6 @@ __all__ = [
|
|
|
64
70
|
"FluxIPAdapterRefTool",
|
|
65
71
|
"FluxReplaceByControlTool",
|
|
66
72
|
"FluxReduxRefTool",
|
|
67
|
-
"ControlNetParams",
|
|
68
|
-
"ControlType",
|
|
69
73
|
"fetch_model",
|
|
70
74
|
"fetch_modelscope_model",
|
|
71
75
|
"register_fetch_modelscope_model",
|
{diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/configs/__init__.py
RENAMED
|
@@ -8,10 +8,12 @@ from .pipeline import (
|
|
|
8
8
|
FluxPipelineConfig,
|
|
9
9
|
WanPipelineConfig,
|
|
10
10
|
QwenImagePipelineConfig,
|
|
11
|
+
HunyuanPipelineConfig,
|
|
11
12
|
BaseStateDicts,
|
|
12
13
|
SDStateDicts,
|
|
13
14
|
SDXLStateDicts,
|
|
14
15
|
FluxStateDicts,
|
|
16
|
+
WanStateDicts,
|
|
15
17
|
QwenImageStateDicts,
|
|
16
18
|
)
|
|
17
19
|
from .controlnet import ControlType, ControlNetParams
|
|
@@ -26,11 +28,13 @@ __all__ = [
|
|
|
26
28
|
"FluxPipelineConfig",
|
|
27
29
|
"WanPipelineConfig",
|
|
28
30
|
"QwenImagePipelineConfig",
|
|
29
|
-
"
|
|
30
|
-
"ControlNetParams",
|
|
31
|
+
"HunyuanPipelineConfig",
|
|
31
32
|
"BaseStateDicts",
|
|
32
33
|
"SDStateDicts",
|
|
33
34
|
"SDXLStateDicts",
|
|
34
35
|
"FluxStateDicts",
|
|
36
|
+
"WanStateDicts",
|
|
35
37
|
"QwenImageStateDicts",
|
|
38
|
+
"ControlType",
|
|
39
|
+
"ControlNetParams",
|
|
36
40
|
]
|
{diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/configs/pipeline.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import torch
|
|
3
3
|
from dataclasses import dataclass, field
|
|
4
|
-
from typing import List, Tuple, Optional
|
|
4
|
+
from typing import List, Dict, Tuple, Optional
|
|
5
5
|
|
|
6
6
|
from diffsynth_engine.configs.controlnet import ControlType
|
|
7
7
|
|
|
@@ -127,7 +127,7 @@ class FluxPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Ba
|
|
|
127
127
|
model_path=model_path,
|
|
128
128
|
device=device,
|
|
129
129
|
parallelism=parallelism,
|
|
130
|
-
use_fsdp=True,
|
|
130
|
+
use_fsdp=True if parallelism > 1 else False,
|
|
131
131
|
offload_mode=offload_mode,
|
|
132
132
|
offload_to_disk=offload_to_disk,
|
|
133
133
|
)
|
|
@@ -174,8 +174,8 @@ class WanPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Bas
|
|
|
174
174
|
image_encoder_path=image_encoder_path,
|
|
175
175
|
device=device,
|
|
176
176
|
parallelism=parallelism,
|
|
177
|
-
use_cfg_parallel=True,
|
|
178
|
-
use_fsdp=True,
|
|
177
|
+
use_cfg_parallel=True if parallelism > 1 else False,
|
|
178
|
+
use_fsdp=True if parallelism > 1 else False,
|
|
179
179
|
offload_mode=offload_mode,
|
|
180
180
|
offload_to_disk=offload_to_disk,
|
|
181
181
|
)
|
|
@@ -184,16 +184,6 @@ class WanPipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, Bas
|
|
|
184
184
|
init_parallel_config(self)
|
|
185
185
|
|
|
186
186
|
|
|
187
|
-
@dataclass
|
|
188
|
-
class HunyuanPipelineConfig(BaseConfig):
|
|
189
|
-
model_path: str | os.PathLike | List[str | os.PathLike]
|
|
190
|
-
model_dtype: torch.dtype = torch.float16
|
|
191
|
-
vae_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
192
|
-
vae_dtype: torch.dtype = torch.float16
|
|
193
|
-
image_encoder_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
194
|
-
image_encoder_dtype: torch.dtype = torch.float16
|
|
195
|
-
|
|
196
|
-
|
|
197
187
|
@dataclass
|
|
198
188
|
class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfig, BaseConfig):
|
|
199
189
|
model_path: str | os.PathLike | List[str | os.PathLike]
|
|
@@ -228,8 +218,8 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
|
|
|
228
218
|
encoder_path=encoder_path,
|
|
229
219
|
vae_path=vae_path,
|
|
230
220
|
parallelism=parallelism,
|
|
231
|
-
use_cfg_parallel=True,
|
|
232
|
-
use_fsdp=True,
|
|
221
|
+
use_cfg_parallel=True if parallelism > 1 else False,
|
|
222
|
+
use_fsdp=True if parallelism > 1 else False,
|
|
233
223
|
offload_mode=offload_mode,
|
|
234
224
|
offload_to_disk=offload_to_disk,
|
|
235
225
|
)
|
|
@@ -238,32 +228,57 @@ class QwenImagePipelineConfig(AttentionConfig, OptimizationConfig, ParallelConfi
|
|
|
238
228
|
init_parallel_config(self)
|
|
239
229
|
|
|
240
230
|
|
|
231
|
+
@dataclass
|
|
232
|
+
class HunyuanPipelineConfig(BaseConfig):
|
|
233
|
+
model_path: str | os.PathLike | List[str | os.PathLike]
|
|
234
|
+
model_dtype: torch.dtype = torch.float16
|
|
235
|
+
vae_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
236
|
+
vae_dtype: torch.dtype = torch.float16
|
|
237
|
+
image_encoder_path: Optional[str | os.PathLike | List[str | os.PathLike]] = None
|
|
238
|
+
image_encoder_dtype: torch.dtype = torch.float16
|
|
239
|
+
|
|
240
|
+
|
|
241
241
|
@dataclass
|
|
242
242
|
class BaseStateDicts:
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
pass
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
@dataclass
|
|
247
|
+
class SDStateDicts:
|
|
248
|
+
model: Dict[str, torch.Tensor]
|
|
249
|
+
clip: Dict[str, torch.Tensor]
|
|
250
|
+
vae: Dict[str, torch.Tensor]
|
|
245
251
|
|
|
246
252
|
|
|
247
253
|
@dataclass
|
|
248
|
-
class
|
|
249
|
-
|
|
254
|
+
class SDXLStateDicts:
|
|
255
|
+
model: Dict[str, torch.Tensor]
|
|
256
|
+
clip_l: Dict[str, torch.Tensor]
|
|
257
|
+
clip_g: Dict[str, torch.Tensor]
|
|
258
|
+
vae: Dict[str, torch.Tensor]
|
|
250
259
|
|
|
251
260
|
|
|
252
261
|
@dataclass
|
|
253
|
-
class
|
|
254
|
-
|
|
255
|
-
|
|
262
|
+
class FluxStateDicts:
|
|
263
|
+
model: Dict[str, torch.Tensor]
|
|
264
|
+
t5: Dict[str, torch.Tensor]
|
|
265
|
+
clip: Dict[str, torch.Tensor]
|
|
266
|
+
vae: Dict[str, torch.Tensor]
|
|
256
267
|
|
|
257
268
|
|
|
258
269
|
@dataclass
|
|
259
|
-
class
|
|
260
|
-
|
|
261
|
-
|
|
270
|
+
class WanStateDicts:
|
|
271
|
+
model: Dict[str, torch.Tensor] | Dict[str, Dict[str, torch.Tensor]]
|
|
272
|
+
t5: Dict[str, torch.Tensor]
|
|
273
|
+
vae: Dict[str, torch.Tensor]
|
|
274
|
+
image_encoder: Optional[Dict[str, torch.Tensor]] = None
|
|
262
275
|
|
|
263
276
|
|
|
264
277
|
@dataclass
|
|
265
|
-
class QwenImageStateDicts
|
|
266
|
-
|
|
278
|
+
class QwenImageStateDicts:
|
|
279
|
+
model: Dict[str, torch.Tensor]
|
|
280
|
+
encoder: Dict[str, torch.Tensor]
|
|
281
|
+
vae: Dict[str, torch.Tensor]
|
|
267
282
|
|
|
268
283
|
|
|
269
284
|
def init_parallel_config(config: FluxPipelineConfig | QwenImagePipelineConfig | WanPipelineConfig):
|
|
@@ -4,7 +4,6 @@ import torch.nn as nn
|
|
|
4
4
|
from typing import Dict, Union, List, Any
|
|
5
5
|
from diffsynth_engine.utils.loader import load_file
|
|
6
6
|
from diffsynth_engine.models.basic.lora import LoRALinear, LoRAConv2d
|
|
7
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
class StateDictConverter:
|
|
@@ -33,10 +32,9 @@ class PreTrainedModel(nn.Module):
|
|
|
33
32
|
|
|
34
33
|
@classmethod
|
|
35
34
|
def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype, **kwargs):
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
model.
|
|
39
|
-
model.load_state_dict(state_dict)
|
|
35
|
+
model = cls(device="meta", dtype=dtype, **kwargs)
|
|
36
|
+
model.requires_grad_(False)
|
|
37
|
+
model.load_state_dict(state_dict, assign=True)
|
|
40
38
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
41
39
|
return model
|
|
42
40
|
|
{diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/basic/lora.py
RENAMED
|
@@ -74,14 +74,13 @@ class LoRALinear(nn.Linear):
|
|
|
74
74
|
|
|
75
75
|
@staticmethod
|
|
76
76
|
def from_linear(linear: nn.Linear):
|
|
77
|
-
lora_linear =
|
|
78
|
-
LoRALinear,
|
|
77
|
+
lora_linear = LoRALinear(
|
|
79
78
|
linear.in_features,
|
|
80
79
|
linear.out_features,
|
|
81
80
|
linear.bias is not None,
|
|
82
|
-
device=
|
|
81
|
+
device="meta",
|
|
83
82
|
dtype=linear.weight.dtype,
|
|
84
|
-
)
|
|
83
|
+
).to_empty(device=linear.weight.device)
|
|
85
84
|
lora_linear.weight = linear.weight
|
|
86
85
|
lora_linear.bias = linear.bias
|
|
87
86
|
return lora_linear
|
|
@@ -98,12 +97,20 @@ class LoRALinear(nn.Linear):
|
|
|
98
97
|
dtype: torch.dtype,
|
|
99
98
|
**kwargs,
|
|
100
99
|
):
|
|
101
|
-
up_linear =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
up_linear = nn.Linear(
|
|
101
|
+
up.shape[1],
|
|
102
|
+
up.shape[0],
|
|
103
|
+
bias=False,
|
|
104
|
+
device="meta",
|
|
105
|
+
dtype=dtype,
|
|
106
|
+
).to_empty(device=device)
|
|
107
|
+
down_linear = nn.Linear(
|
|
108
|
+
down.shape[0],
|
|
109
|
+
down.shape[1],
|
|
110
|
+
bias=False,
|
|
111
|
+
device="meta",
|
|
112
|
+
dtype=dtype,
|
|
113
|
+
).to_empty(device=device)
|
|
107
114
|
up_linear.weight.data = up
|
|
108
115
|
down_linear.weight.data = down
|
|
109
116
|
lora = LoRA(scale, rank, alpha, up_linear, down_linear, device, dtype)
|
|
@@ -182,8 +189,7 @@ class LoRAConv2d(nn.Conv2d):
|
|
|
182
189
|
|
|
183
190
|
@staticmethod
|
|
184
191
|
def from_conv2d(conv2d: nn.Conv2d):
|
|
185
|
-
lora_conv2d =
|
|
186
|
-
LoRAConv2d,
|
|
192
|
+
lora_conv2d = LoRAConv2d(
|
|
187
193
|
conv2d.in_channels,
|
|
188
194
|
conv2d.out_channels,
|
|
189
195
|
conv2d.kernel_size,
|
|
@@ -193,9 +199,9 @@ class LoRAConv2d(nn.Conv2d):
|
|
|
193
199
|
conv2d.groups,
|
|
194
200
|
conv2d.bias is not None,
|
|
195
201
|
conv2d.padding_mode,
|
|
196
|
-
device=
|
|
202
|
+
device="meta",
|
|
197
203
|
dtype=conv2d.weight.dtype,
|
|
198
|
-
)
|
|
204
|
+
).to_empty(device=conv2d.weight.device)
|
|
199
205
|
lora_conv2d.weight = conv2d.weight
|
|
200
206
|
lora_conv2d.bias = conv2d.bias
|
|
201
207
|
return lora_conv2d
|
|
@@ -211,31 +217,29 @@ class LoRAConv2d(nn.Conv2d):
|
|
|
211
217
|
device: str,
|
|
212
218
|
dtype: torch.dtype,
|
|
213
219
|
):
|
|
214
|
-
down_conv =
|
|
215
|
-
nn.Conv2d,
|
|
220
|
+
down_conv = nn.Conv2d(
|
|
216
221
|
self.in_channels,
|
|
217
222
|
rank,
|
|
218
223
|
kernel_size=self.kernel_size,
|
|
219
224
|
stride=self.stride,
|
|
220
225
|
padding=self.padding,
|
|
221
226
|
bias=False,
|
|
222
|
-
device=
|
|
227
|
+
device="meta",
|
|
223
228
|
dtype=dtype,
|
|
224
|
-
)
|
|
229
|
+
).to_empty(device=device)
|
|
225
230
|
down_conv.weight.data = down
|
|
226
231
|
# according to the official kohya_ss trainer kernel_size are always fixed for the up layer
|
|
227
232
|
# see: https://github.com/bmaltais/kohya_ss/blob/2accb1305979ba62f5077a23aabac23b4c37e935/networks/lora_diffusers.py#L129
|
|
228
233
|
# refer from diffusers
|
|
229
|
-
up_conv =
|
|
230
|
-
nn.Conv2d,
|
|
234
|
+
up_conv = nn.Conv2d(
|
|
231
235
|
rank,
|
|
232
236
|
self.out_channels,
|
|
233
237
|
kernel_size=(1, 1),
|
|
234
238
|
stride=(1, 1),
|
|
235
239
|
bias=False,
|
|
236
|
-
device=
|
|
240
|
+
device="meta",
|
|
237
241
|
dtype=dtype,
|
|
238
|
-
)
|
|
242
|
+
).to_empty(device=device)
|
|
239
243
|
up_conv.weight.data = up
|
|
240
244
|
|
|
241
245
|
lora = LoRA(scale, rank, alpha, up_conv, down_conv, device, dtype)
|
|
@@ -8,7 +8,6 @@ from diffsynth_engine.models.flux.flux_dit import (
|
|
|
8
8
|
RoPEEmbedding,
|
|
9
9
|
TimestepEmbeddings,
|
|
10
10
|
)
|
|
11
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
class FluxControlNetStateDictConverter(StateDictConverter):
|
|
@@ -164,10 +163,13 @@ class FluxControlNet(PreTrainedModel):
|
|
|
164
163
|
else:
|
|
165
164
|
condition_channels = 64
|
|
166
165
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
166
|
+
model = cls(
|
|
167
|
+
condition_channels=condition_channels,
|
|
168
|
+
attn_kwargs=attn_kwargs,
|
|
169
|
+
device="meta",
|
|
170
|
+
dtype=dtype,
|
|
171
|
+
)
|
|
172
|
+
model.requires_grad_(False)
|
|
173
|
+
model.load_state_dict(state_dict, assign=True)
|
|
172
174
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
173
175
|
return model
|
{diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_dit.py
RENAMED
|
@@ -14,7 +14,6 @@ from diffsynth_engine.models.basic.transformer_helper import (
|
|
|
14
14
|
from diffsynth_engine.models.basic.timestep import TimestepEmbeddings
|
|
15
15
|
from diffsynth_engine.models.base import PreTrainedModel, StateDictConverter
|
|
16
16
|
from diffsynth_engine.models.basic import attention as attention_ops
|
|
17
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
18
17
|
from diffsynth_engine.utils.gguf import gguf_inference
|
|
19
18
|
from diffsynth_engine.utils.fp8_linear import fp8_inference
|
|
20
19
|
from diffsynth_engine.utils.constants import FLUX_DIT_CONFIG_FILE
|
|
@@ -503,18 +502,20 @@ class FluxDiT(PreTrainedModel):
|
|
|
503
502
|
in_channel: int = 64,
|
|
504
503
|
attn_kwargs: Optional[Dict[str, Any]] = None,
|
|
505
504
|
):
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
)
|
|
514
|
-
model = model.requires_grad_(False) # for loading gguf
|
|
505
|
+
model = cls(
|
|
506
|
+
device="meta",
|
|
507
|
+
dtype=dtype,
|
|
508
|
+
in_channel=in_channel,
|
|
509
|
+
attn_kwargs=attn_kwargs,
|
|
510
|
+
)
|
|
511
|
+
model = model.requires_grad_(False)
|
|
515
512
|
model.load_state_dict(state_dict, assign=True)
|
|
516
513
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
517
514
|
return model
|
|
518
515
|
|
|
516
|
+
def compile_repeated_blocks(self, *args, **kwargs):
|
|
517
|
+
for block in self.blocks:
|
|
518
|
+
block.compile(*args, **kwargs)
|
|
519
|
+
|
|
519
520
|
def get_fsdp_modules(self):
|
|
520
521
|
return ["blocks", "single_blocks"]
|
|
@@ -2,7 +2,6 @@ import torch
|
|
|
2
2
|
import numpy as np
|
|
3
3
|
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
6
5
|
from diffsynth_engine.utils.gguf import gguf_inference
|
|
7
6
|
from diffsynth_engine.utils.fp8_linear import fp8_inference
|
|
8
7
|
from diffsynth_engine.utils.parallel import (
|
|
@@ -190,16 +189,14 @@ class FluxDiTFBCache(FluxDiT):
|
|
|
190
189
|
attn_kwargs: Optional[Dict[str, Any]] = None,
|
|
191
190
|
relative_l1_threshold: float = 0.05,
|
|
192
191
|
):
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
)
|
|
202
|
-
model = model.requires_grad_(False) # for loading gguf
|
|
192
|
+
model = cls(
|
|
193
|
+
device="meta",
|
|
194
|
+
dtype=dtype,
|
|
195
|
+
in_channel=in_channel,
|
|
196
|
+
attn_kwargs=attn_kwargs,
|
|
197
|
+
relative_l1_threshold=relative_l1_threshold,
|
|
198
|
+
)
|
|
199
|
+
model = model.requires_grad_(False)
|
|
203
200
|
model.load_state_dict(state_dict, assign=True)
|
|
204
201
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
205
202
|
return model
|
|
@@ -4,7 +4,6 @@ from torch import nn
|
|
|
4
4
|
from PIL import Image
|
|
5
5
|
from typing import Any, Dict, List, Optional
|
|
6
6
|
from functools import partial
|
|
7
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
8
7
|
from diffsynth_engine.models.text_encoder.siglip import SiglipImageEncoder
|
|
9
8
|
from diffsynth_engine.models.basic.transformer_helper import RMSNorm
|
|
10
9
|
from diffsynth_engine.models.basic.attention import attention
|
|
@@ -39,9 +38,8 @@ class FluxIPAdapterAttention(nn.Module):
|
|
|
39
38
|
|
|
40
39
|
@classmethod
|
|
41
40
|
def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype, **kwargs):
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
model.to_empty(device=device)
|
|
41
|
+
model = cls(device="meta", dtype=dtype, **kwargs)
|
|
42
|
+
model.requires_grad_(False)
|
|
45
43
|
model.load_state_dict(state_dict, assign=True)
|
|
46
44
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
47
45
|
return model
|
|
@@ -74,9 +72,8 @@ class FluxIPAdapterMLP(torch.nn.Module):
|
|
|
74
72
|
|
|
75
73
|
@classmethod
|
|
76
74
|
def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype, **kwargs):
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
model.to_empty(device=device)
|
|
75
|
+
model = cls(device="meta", dtype=dtype, **kwargs)
|
|
76
|
+
model.requires_grad_(False)
|
|
80
77
|
model.load_state_dict(state_dict, assign=True)
|
|
81
78
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
82
79
|
return model
|
|
@@ -4,7 +4,6 @@ import torch.nn as nn
|
|
|
4
4
|
from typing import Dict
|
|
5
5
|
from diffsynth_engine.utils.download import fetch_model
|
|
6
6
|
from diffsynth_engine.models.base import PreTrainedModel
|
|
7
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
8
7
|
from diffsynth_engine.models.text_encoder.siglip import SiglipImageEncoder
|
|
9
8
|
|
|
10
9
|
|
|
@@ -30,13 +29,8 @@ class FluxReduxImageEmbedder(nn.Module):
|
|
|
30
29
|
device: str,
|
|
31
30
|
dtype: torch.dtype,
|
|
32
31
|
):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
cls,
|
|
36
|
-
device=device,
|
|
37
|
-
dtype=dtype,
|
|
38
|
-
)
|
|
39
|
-
model = model.requires_grad_(False) # for loading gguf
|
|
32
|
+
model = cls(device="meta", dtype=dtype)
|
|
33
|
+
model = model.requires_grad_(False)
|
|
40
34
|
model.load_state_dict(state_dict, assign=True)
|
|
41
35
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
42
36
|
return model
|
|
@@ -5,7 +5,6 @@ from typing import Dict
|
|
|
5
5
|
from diffsynth_engine.models.sd import SDTextEncoder
|
|
6
6
|
from diffsynth_engine.models.text_encoder.t5 import T5EncoderModel
|
|
7
7
|
from diffsynth_engine.models.base import StateDictConverter
|
|
8
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
9
8
|
from diffsynth_engine.utils.constants import FLUX_TEXT_ENCODER_CONFIG_FILE
|
|
10
9
|
from diffsynth_engine.utils import logging
|
|
11
10
|
|
|
@@ -61,10 +60,10 @@ class FluxTextEncoder1(SDTextEncoder):
|
|
|
61
60
|
def from_state_dict(
|
|
62
61
|
cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype, vocab_size: int = 49408
|
|
63
62
|
):
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
model.load_state_dict(state_dict)
|
|
67
|
-
model.to(device=device, dtype=dtype)
|
|
63
|
+
model = cls(device="meta", dtype=dtype, vocab_size=vocab_size)
|
|
64
|
+
model.requires_grad_(False)
|
|
65
|
+
model.load_state_dict(state_dict, assign=True)
|
|
66
|
+
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
68
67
|
return model
|
|
69
68
|
|
|
70
69
|
|
{diffsynth_engine-0.4.4.dev2 → diffsynth_engine-0.4.4.dev4}/diffsynth_engine/models/flux/flux_vae.py
RENAMED
|
@@ -3,7 +3,6 @@ import torch
|
|
|
3
3
|
from typing import Dict
|
|
4
4
|
|
|
5
5
|
from diffsynth_engine.models.vae import VAEDecoder, VAEEncoder, VAEStateDictConverter
|
|
6
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
7
6
|
from diffsynth_engine.utils.constants import FLUX_VAE_CONFIG_FILE
|
|
8
7
|
from diffsynth_engine.utils import logging
|
|
9
8
|
|
|
@@ -51,8 +50,8 @@ class FluxVAEEncoder(VAEEncoder):
|
|
|
51
50
|
|
|
52
51
|
@classmethod
|
|
53
52
|
def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype):
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
model = cls(device="meta", dtype=dtype)
|
|
54
|
+
model.requires_grad_(False)
|
|
56
55
|
model.load_state_dict(state_dict, assign=True)
|
|
57
56
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
58
57
|
return model
|
|
@@ -73,8 +72,8 @@ class FluxVAEDecoder(VAEDecoder):
|
|
|
73
72
|
|
|
74
73
|
@classmethod
|
|
75
74
|
def from_state_dict(cls, state_dict: Dict[str, torch.Tensor], device: str, dtype: torch.dtype):
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
model = cls(device="meta", dtype=dtype)
|
|
76
|
+
model.requires_grad_(False)
|
|
78
77
|
model.load_state_dict(state_dict, assign=True)
|
|
79
78
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
80
79
|
return model
|
|
@@ -8,7 +8,6 @@ from typing import Any, Dict, List, Tuple, Optional
|
|
|
8
8
|
from diffsynth_engine.models.base import PreTrainedModel
|
|
9
9
|
from diffsynth_engine.models.basic.transformer_helper import RMSNorm
|
|
10
10
|
from diffsynth_engine.models.basic import attention as attention_ops
|
|
11
|
-
from diffsynth_engine.models.utils import no_init_weights
|
|
12
11
|
from diffsynth_engine.utils.cache import Cache, DynamicCache
|
|
13
12
|
from diffsynth_engine.utils import logging
|
|
14
13
|
|
|
@@ -968,8 +967,8 @@ class Qwen2_5_VLForConditionalGeneration(PreTrainedModel):
|
|
|
968
967
|
device: str = "cuda:0",
|
|
969
968
|
dtype: torch.dtype = torch.bfloat16,
|
|
970
969
|
):
|
|
971
|
-
|
|
972
|
-
|
|
970
|
+
model = cls(vision_config=vision_config, config=config, device="meta", dtype=dtype)
|
|
971
|
+
model.requires_grad_(False)
|
|
973
972
|
model.load_state_dict(state_dict, assign=True)
|
|
974
973
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
975
974
|
return model
|