diffsynth 2.1.3__tar.gz → 2.1.4__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-2.1.3 → diffsynth-2.1.4}/PKG-INFO +3 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/README.md +2 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/data/operators.py +2 -2
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/loader/file.py +17 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/loader/model.py +1 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/flow_match.py +1 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/training_module.py +19 -3
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/ltx2_audio_video.py +1 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/version.py +1 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth.egg-info/PKG-INFO +3 -1
- {diffsynth-2.1.3 → diffsynth-2.1.4}/LICENSE +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/configs/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/configs/model_configs.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/configs/vram_management_module_maps.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/attention/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/attention/attention.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/data/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/data/unified_dataset.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/device/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/device/npu_compatible_device.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/gradient/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/gradient/gradient_checkpoint.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/loader/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/loader/config.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/npu_patch/npu_fused_operator.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/offload_training/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/offload_training/manager.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/offload_training/memory_buffer.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/offload_training/offloader.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/backends/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/backends/bitsandbytes.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/backends/comfy_kitchen.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/backends/torchao.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/base.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/quant/config.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/vram/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/vram/disk_map.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/vram/initialization.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/core/vram/layers.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/base_pipeline.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/ddim_scheduler.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/dmd2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/logger.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/loss.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/parsers.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/runner.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/diffusion/template.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/aesthetic.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/base.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/bioclip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/clip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/fid.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/hpsv2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/hpsv3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/image_reward.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/lpips.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/pickscore.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/qwen_image_bench.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/unified_reward_2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/metrics/unified_reward_edit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_conditioner.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_residual_fsq.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_tokenizer.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ace_step_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/aesthetic.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/anima_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/bioclip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/boogu_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/clip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/demucs.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/dinov3_image_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ernie_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ernie_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/fid.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux2_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_controlnet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_infiniteyou.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_ipadapter.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_lora_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_lora_patcher.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_redux.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_text_encoder_clip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_text_encoder_t5.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/flux_value_control.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/general_modules.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/hidream_common.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/hidream_o1_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/hpsv2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/hpsv3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ideogram4_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ideogram4_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ideogram4_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/image_reward.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/joyai_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/joyai_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/krea2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/krea2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/lingbot_video_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/longcat_video_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/lpips.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_audio_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_common.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_upsampler.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/ltx2_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_h3_audio_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_h3_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_h3_dit_comfy.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_h3_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_h3_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_music3_condition_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_music3_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_music3_rvq_depth_decoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_music3_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/minimax_music3_vocoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/model_loader.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/mova_audio_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/mova_audio_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/mova_dual_tower_bridge.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/nexus_gen.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/nexus_gen_ar_model.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/nexus_gen_projector.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/pickscore.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_bench.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_controlnet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_image2lora.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/qwen_image_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/sd_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/siglip2_image_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/stable_diffusion_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/stable_diffusion_unet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/stable_diffusion_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/stable_diffusion_xl_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/stable_diffusion_xl_unet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/step1x_connector.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/step1x_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/unified_reward_2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/unified_reward_edit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_animate_2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_animate_adapter.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_camera_controller.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_dit_s2v.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_image_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_mot.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_motion_controller.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_vace.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wan_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wantodance.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/wav2vec.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/z_image_controlnet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/z_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/z_image_image2lora.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/models/z_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/ace_step.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/anima_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/boogu_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/ernie_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/flux2_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/flux_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/hidream_o1_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/ideogram4.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/joyai_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/krea2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/lingbot_video.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/minimax_h3_audio_video.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/minimax_music3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/mova_audio_video.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/qwen_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/stable_diffusion.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/stable_diffusion_xl.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/wan_video.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/pipelines/z_image.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/controlnet/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/controlnet/annotator.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/controlnet/controlnet_input.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/data/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/data/audio.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/data/audio_video.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/data/media_io_ltx2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/data/minimax_h3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/demucs/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/dequantizer/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/flux.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/flux_timestep.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/general.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/krea2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/merge.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/minimax_h3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/reset_rank.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/lora/sdxl.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/quant/serialization.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/ses/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/ses/ses.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ace_step_conditioner.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ace_step_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ace_step_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ace_step_tokenizer.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/anima_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/dino_v3.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ernie_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_controlnet.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_infiniteyou.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_ipadapter.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_text_encoder_clip.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_text_encoder_t5.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/flux_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ideogram4_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/image_metrics.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/joyai_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/krea2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/krea2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/lingbot_video_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ltx2_audio_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ltx2_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ltx2_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/ltx2_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/minimax_h3_audio_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/minimax_h3_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/minimax_h3_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/minimax_music3_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/nexus_gen.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/nexus_gen_projector.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/qwen_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/sdxl.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/sdxl_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/sdxl_text_encoder_2.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/sdxl_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/stable_diffusion_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/stable_diffusion_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/stable_diffusion_xl_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/step1x_connector.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_animate_adapter.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_image_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_mot.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_vace.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wan_video_vae.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/wans2v_audio_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/z_image_dit.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/state_dict_converters/z_image_text_encoder.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/tile/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/tile/tile_worker.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/xfuser/__init__.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth/utils/xfuser/xdit_context_parallel.py +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth.egg-info/SOURCES.txt +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth.egg-info/dependency_links.txt +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth.egg-info/requires.txt +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/diffsynth.egg-info/top_level.txt +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/pyproject.toml +0 -0
- {diffsynth-2.1.3 → diffsynth-2.1.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffsynth
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.4
|
|
4
4
|
Summary: Enjoy the magic of Diffusion models!
|
|
5
5
|
Author: ModelScope Team
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -107,6 +107,8 @@ See also:
|
|
|
107
107
|
|
|
108
108
|
> Currently, the development personnel of this project are limited, with most of the work handled by [Artiprocher](https://github.com/Artiprocher) and [mi804](https://github.com/mi804). Therefore, the progress of new feature development will be relatively slow, and the speed of responding to and resolving issues is limited. We apologize for this and ask developers to understand.
|
|
109
109
|
|
|
110
|
+
- **August 25, 2026** We have open-sourced [DiffSynth-WebUI](https://github.com/modelscope/DiffSynth-WebUI), enabling one-click private deployment of LoRA training services. Combined with the model quantization feature, you can train large models even with consumer-grade GPUs.
|
|
111
|
+
|
|
110
112
|
- **August 19, 2026** We have released the model quantization feature. It provides a unified `QuantizeConfig` entry point supporting multiple quantization backends including bitsandbytes, torchao, and comfy-kitchen, with capabilities such as online quantization, loading pre-quantized weights, mixed quantization, saving quantized models, and quantization + LoRA training. For details, please refer to the [documentation](/docs/en/Pipeline_Usage/Quantization.md).
|
|
111
113
|
|
|
112
114
|
- **August 17, 2026** MiniMax-Music3 open-sourced, welcome a new member to the audio model family! Support includes text-to-music generation and low VRAM inference. For details, please refer to the [documentation](/docs/en/Model_Details/MiniMax-Music3.md) and [example code](/examples/minimax_music3/).
|
|
@@ -40,6 +40,8 @@ See also:
|
|
|
40
40
|
|
|
41
41
|
> Currently, the development personnel of this project are limited, with most of the work handled by [Artiprocher](https://github.com/Artiprocher) and [mi804](https://github.com/mi804). Therefore, the progress of new feature development will be relatively slow, and the speed of responding to and resolving issues is limited. We apologize for this and ask developers to understand.
|
|
42
42
|
|
|
43
|
+
- **August 25, 2026** We have open-sourced [DiffSynth-WebUI](https://github.com/modelscope/DiffSynth-WebUI), enabling one-click private deployment of LoRA training services. Combined with the model quantization feature, you can train large models even with consumer-grade GPUs.
|
|
44
|
+
|
|
43
45
|
- **August 19, 2026** We have released the model quantization feature. It provides a unified `QuantizeConfig` entry point supporting multiple quantization backends including bitsandbytes, torchao, and comfy-kitchen, with capabilities such as online quantization, loading pre-quantized weights, mixed quantization, saving quantized models, and quantization + LoRA training. For details, please refer to the [documentation](/docs/en/Pipeline_Usage/Quantization.md).
|
|
44
46
|
|
|
45
47
|
- **August 17, 2026** MiniMax-Music3 open-sourced, welcome a new member to the audio model family! Support includes text-to-music generation and low VRAM inference. For details, please refer to the [documentation](/docs/en/Model_Details/MiniMax-Music3.md) and [example code](/examples/minimax_music3/).
|
|
@@ -307,8 +307,8 @@ class LoadAudioWithTorchaudio(DataProcessingOperator, FrameSamplerByRateMixin):
|
|
|
307
307
|
padding = target_samples - current_samples
|
|
308
308
|
waveform = torch.nn.functional.pad(waveform, (0, padding))
|
|
309
309
|
return waveform, sample_rate
|
|
310
|
-
except:
|
|
311
|
-
warnings.warn(f"Cannot load audio in {data}. The audio will be `None`.")
|
|
310
|
+
except Exception as e:
|
|
311
|
+
warnings.warn(f"Cannot load audio in {data} due to {e}. The audio will be `None`.")
|
|
312
312
|
return None
|
|
313
313
|
|
|
314
314
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from safetensors import safe_open
|
|
2
|
-
import torch, hashlib
|
|
2
|
+
import torch, hashlib, json
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
def load_state_dict(file_path, torch_dtype=None, device="cpu", pin_memory=False, verbose=0):
|
|
@@ -34,10 +34,26 @@ def load_state_dict_from_safetensors(file_path, torch_dtype=None, device="cpu"):
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def load_metadata_from_safetensors(file_path):
|
|
37
|
+
if isinstance(file_path, list):
|
|
38
|
+
metadata = {}
|
|
39
|
+
for file_path_ in file_path:
|
|
40
|
+
for key, value in load_metadata_from_safetensors(file_path_).items():
|
|
41
|
+
metadata[key] = merge_metadata_value(metadata[key], value) if key in metadata else value
|
|
42
|
+
return metadata
|
|
37
43
|
with safe_open(file_path, framework="pt", device="cpu") as f:
|
|
38
44
|
return f.metadata() or {}
|
|
39
45
|
|
|
40
46
|
|
|
47
|
+
def merge_metadata_value(old_value, new_value):
|
|
48
|
+
try:
|
|
49
|
+
old_items, new_items = json.loads(old_value), json.loads(new_value)
|
|
50
|
+
except (json.JSONDecodeError, TypeError):
|
|
51
|
+
return new_value
|
|
52
|
+
if isinstance(old_items, list) and isinstance(new_items, list):
|
|
53
|
+
return json.dumps(old_items + [i for i in new_items if i not in old_items])
|
|
54
|
+
return new_value
|
|
55
|
+
|
|
56
|
+
|
|
41
57
|
def load_state_dict_from_bin(file_path, torch_dtype=None, device="cpu"):
|
|
42
58
|
state_dict = torch.load(file_path, map_location=device, weights_only=True)
|
|
43
59
|
if len(state_dict) == 1:
|
|
@@ -37,7 +37,7 @@ def load_model(model_class, path, config=None, torch_dtype=torch.bfloat16, devic
|
|
|
37
37
|
devices = [vram_config[k] for k in ("offload_device", "onload_device", "preparing_device", "computation_device")]
|
|
38
38
|
load_device = [d for d in devices if d != "disk"][0]
|
|
39
39
|
disk_map = DiskMap(path, load_device, torch_dtype=None, state_dict_converter=state_dict_converter)
|
|
40
|
-
metadata = load_metadata_from_safetensors(path
|
|
40
|
+
metadata = load_metadata_from_safetensors(path)
|
|
41
41
|
model = quantize.prepare_for_prequantized_load(model, compute_dtype=vram_config["computation_dtype"])
|
|
42
42
|
model = enable_vram_management(model, module_map, vram_config=vram_config, disk_map=disk_map, vram_limit=vram_limit, quantize=quantize, metadata=metadata)
|
|
43
43
|
else:
|
|
@@ -302,7 +302,7 @@ class FlowMatchScheduler():
|
|
|
302
302
|
num_train_timesteps = 1000
|
|
303
303
|
if special_case == "stage2":
|
|
304
304
|
sigmas = torch.Tensor([0.909375, 0.725, 0.421875])
|
|
305
|
-
elif special_case == "
|
|
305
|
+
elif special_case == "distilled_stage1":
|
|
306
306
|
sigmas = torch.Tensor([1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875])
|
|
307
307
|
else:
|
|
308
308
|
dynamic_shift_len = dynamic_shift_len or 4096
|
|
@@ -193,9 +193,25 @@ class DiffusionTrainingModule(torch.nn.Module):
|
|
|
193
193
|
quant_config = QuantizeConfig(method=method, exclude_modules=exclude_modules)
|
|
194
194
|
if not quant_config.backend.capabilities().get("is_differentiable", True):
|
|
195
195
|
raise ValueError(f"Quantization method `{method}` is not differentiable, so it cannot be used for training (frozen quantized layers must pass gradients through to LoRA branches). Choose a method whose backend declares `is_differentiable=True`.")
|
|
196
|
-
quant_map[model_string] = quant_config
|
|
196
|
+
quant_map[self.normalize_quant_key(model_string)] = quant_config
|
|
197
197
|
return quant_map
|
|
198
198
|
|
|
199
|
+
def normalize_quant_key(self, model_string):
|
|
200
|
+
if isinstance(model_string, str) and model_string.startswith("[") and model_string.endswith("]"):
|
|
201
|
+
try:
|
|
202
|
+
model_string = json.loads(model_string)
|
|
203
|
+
except json.JSONDecodeError:
|
|
204
|
+
raise ValueError(f"Failed to parse quant option model string: `{model_string}`. A multi-file model must be written as a JSON list of files, matching its `--model_paths` entry.")
|
|
205
|
+
if isinstance(model_string, list):
|
|
206
|
+
return tuple(model_string)
|
|
207
|
+
return model_string
|
|
208
|
+
|
|
209
|
+
def get_quant_config(self, quant_map, model_string):
|
|
210
|
+
quant_config = quant_map.get(self.normalize_quant_key(model_string))
|
|
211
|
+
if quant_config is None and len(quant_map) > 0:
|
|
212
|
+
print(f"No quant option matches `{model_string}`. This model is loaded without quantization. Parsed quant options: {({key: config.method for key, config in quant_map.items()})}.")
|
|
213
|
+
return quant_config
|
|
214
|
+
|
|
199
215
|
def parse_model_configs(self, model_paths, model_id_with_origin_paths, fp8_models=None, offload_models=None, quant_options=None, device="cpu"):
|
|
200
216
|
fp8_models = [] if fp8_models is None else fp8_models.split(",")
|
|
201
217
|
offload_models = [] if offload_models is None else offload_models.split(",")
|
|
@@ -209,7 +225,7 @@ class DiffusionTrainingModule(torch.nn.Module):
|
|
|
209
225
|
offload=path in offload_models,
|
|
210
226
|
device=device
|
|
211
227
|
)
|
|
212
|
-
model_configs.append(ModelConfig(path=path, quantize=
|
|
228
|
+
model_configs.append(ModelConfig(path=path, quantize=self.get_quant_config(quant_map, path), **vram_config))
|
|
213
229
|
if model_id_with_origin_paths is not None:
|
|
214
230
|
model_id_with_origin_paths = model_id_with_origin_paths.split(",")
|
|
215
231
|
for model_id_with_origin_path in model_id_with_origin_paths:
|
|
@@ -219,7 +235,7 @@ class DiffusionTrainingModule(torch.nn.Module):
|
|
|
219
235
|
device=device
|
|
220
236
|
)
|
|
221
237
|
config = self.parse_path_or_model_id(model_id_with_origin_path)
|
|
222
|
-
model_configs.append(ModelConfig(model_id=config.model_id, origin_file_pattern=config.origin_file_pattern, quantize=
|
|
238
|
+
model_configs.append(ModelConfig(model_id=config.model_id, origin_file_pattern=config.origin_file_pattern, quantize=self.get_quant_config(quant_map, model_id_with_origin_path), **vram_config))
|
|
223
239
|
return model_configs
|
|
224
240
|
|
|
225
241
|
|
|
@@ -213,7 +213,7 @@ class LTX2AudioVideoPipeline(BasePipeline):
|
|
|
213
213
|
progress_bar_cmd=tqdm,
|
|
214
214
|
):
|
|
215
215
|
# Scheduler
|
|
216
|
-
self.scheduler.set_timesteps(num_inference_steps, denoising_strength=denoising_strength, special_case="
|
|
216
|
+
self.scheduler.set_timesteps(num_inference_steps, denoising_strength=denoising_strength, special_case="distilled_stage1" if use_distilled_pipeline else None)
|
|
217
217
|
# Inputs
|
|
218
218
|
inputs_posi = {
|
|
219
219
|
"prompt": prompt,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Make sure to modify __release_datetime__ to release time when making official release.
|
|
2
|
-
__version__ = '2.1.
|
|
2
|
+
__version__ = '2.1.4'
|
|
3
3
|
# default release datetime for branches under active development is set
|
|
4
4
|
# to be a time far-far-away-into-the-future
|
|
5
5
|
__release_datetime__ = '2099-10-13 08:56:12'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffsynth
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.4
|
|
4
4
|
Summary: Enjoy the magic of Diffusion models!
|
|
5
5
|
Author: ModelScope Team
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -107,6 +107,8 @@ See also:
|
|
|
107
107
|
|
|
108
108
|
> Currently, the development personnel of this project are limited, with most of the work handled by [Artiprocher](https://github.com/Artiprocher) and [mi804](https://github.com/mi804). Therefore, the progress of new feature development will be relatively slow, and the speed of responding to and resolving issues is limited. We apologize for this and ask developers to understand.
|
|
109
109
|
|
|
110
|
+
- **August 25, 2026** We have open-sourced [DiffSynth-WebUI](https://github.com/modelscope/DiffSynth-WebUI), enabling one-click private deployment of LoRA training services. Combined with the model quantization feature, you can train large models even with consumer-grade GPUs.
|
|
111
|
+
|
|
110
112
|
- **August 19, 2026** We have released the model quantization feature. It provides a unified `QuantizeConfig` entry point supporting multiple quantization backends including bitsandbytes, torchao, and comfy-kitchen, with capabilities such as online quantization, loading pre-quantized weights, mixed quantization, saving quantized models, and quantization + LoRA training. For details, please refer to the [documentation](/docs/en/Pipeline_Usage/Quantization.md).
|
|
111
113
|
|
|
112
114
|
- **August 17, 2026** MiniMax-Music3 open-sourced, welcome a new member to the audio model family! Support includes text-to-music generation and low VRAM inference. For details, please refer to the [documentation](/docs/en/Model_Details/MiniMax-Music3.md) and [example code](/examples/minimax_music3/).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|