diffsynth-engine 0.2.8__tar.gz → 0.3.0__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.2.8 → diffsynth_engine-0.3.0}/PKG-INFO +1 -1
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_vae.py +27 -9
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/base.py +4 -1
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/wan_video.py +17 -2
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_outpainting_tool.py +3 -1
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_replace_tool.py +3 -1
- diffsynth_engine-0.3.0/diffsynth_engine/utils/logging.py +16 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/onnx.py +2 -2
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/parallel.py +38 -55
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/PKG-INFO +1 -1
- diffsynth_engine-0.2.8/diffsynth_engine/utils/logging.py +0 -12
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/.gitignore +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/.pre-commit-config.yaml +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/LICENSE +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/MANIFEST.in +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/README.md +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/assets/dingtalk.png +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/assets/showcase.jpeg +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/base_scheduler.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_beta.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/flow_match/flow_ddim.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/flow_match/recifited_flow.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/beta.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/ddim.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/exponential.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/karras.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/linear.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/noise_scheduler/stable_diffusion/sgm_uniform.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/flow_match/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/flow_match/flow_match_euler.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/brownian_tree.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/ddpm.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/deis.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_2m_sde.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/dpmpp_3m_sde.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/epsilon.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/stable_diffusion/euler_ancestral.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/components/vae.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/flux/flux_dit.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/flux/flux_text_encoder.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/flux/flux_vae.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd/sd_text_encoder.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd/sd_unet.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd3/sd3_dit.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd3/sd3_text_encoder.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sdxl/sdxl_text_encoder.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/1.3b-t2v.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/14b-flf2v.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/14b-i2v.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/14b-t2v.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/merges.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/special_tokens_map.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/tokenizer_config.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_1/vocab.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/spiece.model +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/flux/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/merges.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/special_tokens_map.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/tokenizer_config.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer/vocab.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/merges.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/special_tokens_map.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/tokenizer_config.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/sdxl/tokenizer_2/vocab.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/special_tokens_map.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/spiece.model +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/tokenizers/wan/umt5-xxl/tokenizer_config.json +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/kernels/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/base.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/attention.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/lora.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/relative_position_emb.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/timestep.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/transformer_helper.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/unet_helper.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_controlnet.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_dit.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_ipadapter.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_redux.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_text_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_vae.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd/sd_text_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd/sd_unet.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd/sd_vae.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd3/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd3/sd3_dit.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd3/sd3_text_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd3/sd3_vae.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sdxl/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sdxl/sdxl_unet.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sdxl/sdxl_vae.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/clip.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/siglip.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/t5.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/utils.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/vae/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/vae/vae.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_dit.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_image_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_text_encoder.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/flux_image.py +2 -2
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/sd_image.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/pipelines/sdxl_image.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/processor/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/processor/canny_processor.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/processor/depth_processor.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tokenizers/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tokenizers/base.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tokenizers/clip.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tokenizers/t5.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tokenizers/wan.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_inpainting_tool.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_reference_tool.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/__init__.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/constants.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/download.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/env.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/flag.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/fp8_linear.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/gguf.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/image.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/loader.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/lock.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/offload.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/platform.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/prompt.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/utils/video.py +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/SOURCES.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/dependency_links.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/requires.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/top_level.txt +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/docs/tutorial.md +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/docs/tutorial_zh.md +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/pyproject.toml +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/setup.cfg +0 -0
- {diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/setup.py +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import torch
|
|
2
2
|
import torch.nn as nn
|
|
3
3
|
import torch.nn.functional as F
|
|
4
|
+
import torch.distributed as dist
|
|
4
5
|
from einops import rearrange, repeat
|
|
5
6
|
from tqdm import tqdm
|
|
6
7
|
|
|
@@ -514,7 +515,7 @@ class WanVideoVAEStateDictConverter(StateDictConverter):
|
|
|
514
515
|
class WanVideoVAE(PreTrainedModel):
|
|
515
516
|
converter = WanVideoVAEStateDictConverter()
|
|
516
517
|
|
|
517
|
-
def __init__(self, z_dim=16, device: str = "cuda:0", dtype: torch.dtype = torch.float32):
|
|
518
|
+
def __init__(self, z_dim=16, parallelism: int = 1, device: str = "cuda:0", dtype: torch.dtype = torch.float32):
|
|
518
519
|
super().__init__()
|
|
519
520
|
|
|
520
521
|
mean = [
|
|
@@ -560,11 +561,12 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
560
561
|
# init model
|
|
561
562
|
self.model = VideoVAE(z_dim=z_dim).eval().requires_grad_(False)
|
|
562
563
|
self.upsampling_factor = 8
|
|
564
|
+
self.parallelism = parallelism
|
|
563
565
|
|
|
564
566
|
@classmethod
|
|
565
|
-
def from_state_dict(cls, state_dict, device="cuda:0", dtype=torch.float32) -> "WanVideoVAE":
|
|
567
|
+
def from_state_dict(cls, state_dict, parallelism=1, device="cuda:0", dtype=torch.float32) -> "WanVideoVAE":
|
|
566
568
|
with no_init_weights():
|
|
567
|
-
model = torch.nn.utils.skip_init(cls, device=device, dtype=dtype)
|
|
569
|
+
model = torch.nn.utils.skip_init(cls, parallelism=parallelism, device=device, dtype=dtype)
|
|
568
570
|
model.load_state_dict(state_dict, assign=True)
|
|
569
571
|
model.to(device=device, dtype=dtype, non_blocking=True)
|
|
570
572
|
return model
|
|
@@ -605,7 +607,7 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
605
607
|
h_, w_ = h + size_h, w + size_w
|
|
606
608
|
tasks.append((h, h_, w, w_))
|
|
607
609
|
|
|
608
|
-
data_device = "cpu"
|
|
610
|
+
data_device = device if self.parallelism > 1 else "cpu"
|
|
609
611
|
computation_device = device
|
|
610
612
|
|
|
611
613
|
out_T = T * 4 - 3
|
|
@@ -620,7 +622,10 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
620
622
|
device=data_device,
|
|
621
623
|
)
|
|
622
624
|
|
|
623
|
-
|
|
625
|
+
hide_progress_bar = self.parallelism > 1 and dist.get_rank() != 0
|
|
626
|
+
for i, (h, h_, w, w_) in enumerate(tqdm(tasks, desc="VAE DECODING", disable=hide_progress_bar)):
|
|
627
|
+
if self.parallelism > 1 and (i % dist.get_world_size() != dist.get_rank()):
|
|
628
|
+
continue
|
|
624
629
|
hidden_states_batch = hidden_states[:, :, :, h:h_, w:w_].to(computation_device)
|
|
625
630
|
hidden_states_batch = self.model.decode(hidden_states_batch, self.scale).to(data_device)
|
|
626
631
|
|
|
@@ -649,8 +654,13 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
649
654
|
target_h : target_h + hidden_states_batch.shape[3],
|
|
650
655
|
target_w : target_w + hidden_states_batch.shape[4],
|
|
651
656
|
] += mask
|
|
652
|
-
if progress_callback is not None:
|
|
657
|
+
if progress_callback is not None and not hide_progress_bar:
|
|
653
658
|
progress_callback(i + 1, len(tasks), "VAE DECODING")
|
|
659
|
+
if progress_callback is not None and not hide_progress_bar:
|
|
660
|
+
progress_callback(len(tasks), len(tasks), "VAE DECODING")
|
|
661
|
+
if self.parallelism > 1:
|
|
662
|
+
dist.all_reduce(values)
|
|
663
|
+
dist.all_reduce(weight)
|
|
654
664
|
values = values / weight
|
|
655
665
|
values = values.float().clamp_(-1, 1)
|
|
656
666
|
return values
|
|
@@ -671,7 +681,7 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
671
681
|
h_, w_ = h + size_h, w + size_w
|
|
672
682
|
tasks.append((h, h_, w, w_))
|
|
673
683
|
|
|
674
|
-
data_device = "cpu"
|
|
684
|
+
data_device = device if self.parallelism > 1 else "cpu"
|
|
675
685
|
computation_device = device
|
|
676
686
|
|
|
677
687
|
out_T = (T + 3) // 4
|
|
@@ -686,7 +696,10 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
686
696
|
device=data_device,
|
|
687
697
|
)
|
|
688
698
|
|
|
689
|
-
|
|
699
|
+
hide_progress_bar = self.parallelism > 1 and dist.get_rank() != 0
|
|
700
|
+
for i, (h, h_, w, w_) in enumerate(tqdm(tasks, desc="VAE ENCODING", disable=hide_progress_bar)):
|
|
701
|
+
if self.parallelism > 1 and (i % dist.get_world_size() != dist.get_rank()):
|
|
702
|
+
continue
|
|
690
703
|
hidden_states_batch = video[:, :, :, h:h_, w:w_].to(computation_device)
|
|
691
704
|
hidden_states_batch = self.model.encode(hidden_states_batch, self.scale).to(data_device)
|
|
692
705
|
|
|
@@ -715,8 +728,13 @@ class WanVideoVAE(PreTrainedModel):
|
|
|
715
728
|
target_h : target_h + hidden_states_batch.shape[3],
|
|
716
729
|
target_w : target_w + hidden_states_batch.shape[4],
|
|
717
730
|
] += mask
|
|
718
|
-
if progress_callback is not None:
|
|
731
|
+
if progress_callback is not None and not hide_progress_bar:
|
|
719
732
|
progress_callback(i + 1, len(tasks), "VAE ENCODING")
|
|
733
|
+
if progress_callback is not None and not hide_progress_bar:
|
|
734
|
+
progress_callback(len(tasks), len(tasks), "VAE ENCODING")
|
|
735
|
+
if self.parallelism > 1:
|
|
736
|
+
dist.all_reduce(values)
|
|
737
|
+
dist.all_reduce(weight)
|
|
720
738
|
values = values / weight
|
|
721
739
|
values = values.float()
|
|
722
740
|
return values
|
|
@@ -258,7 +258,7 @@ class BasePipeline:
|
|
|
258
258
|
valid_offload_mode = ("cpu_offload", "sequential_cpu_offload")
|
|
259
259
|
if offload_mode not in valid_offload_mode:
|
|
260
260
|
raise ValueError(f"offload_mode must be one of {valid_offload_mode}, but got {offload_mode}")
|
|
261
|
-
if self.device == "cpu":
|
|
261
|
+
if self.device == "cpu" or self.device == "mps":
|
|
262
262
|
logger.warning("must set an non cpu device for pipeline before calling enable_cpu_offload")
|
|
263
263
|
return
|
|
264
264
|
if offload_mode == "cpu_offload":
|
|
@@ -274,6 +274,9 @@ class BasePipeline:
|
|
|
274
274
|
self.offload_mode = "cpu_offload"
|
|
275
275
|
|
|
276
276
|
def enable_sequential_cpu_offload(self):
|
|
277
|
+
if self.device == "cpu" or self.device == "mps":
|
|
278
|
+
logger.warning("must set an non cpu device for pipeline before calling enable_sequential_cpu_offload")
|
|
279
|
+
return
|
|
277
280
|
for model_name in self.model_names:
|
|
278
281
|
model = getattr(self, model_name)
|
|
279
282
|
if model is not None:
|
|
@@ -442,8 +442,6 @@ class WanVideoPipeline(BasePipeline):
|
|
|
442
442
|
tokenizer = WanT5Tokenizer(WAN_TOKENIZER_CONF_PATH, seq_len=512, clean="whitespace")
|
|
443
443
|
text_encoder = WanTextEncoder.from_state_dict(t5_state_dict, device=init_device, dtype=model_config.t5_dtype)
|
|
444
444
|
|
|
445
|
-
vae = WanVideoVAE.from_state_dict(vae_state_dict, device=init_device, dtype=model_config.vae_dtype)
|
|
446
|
-
|
|
447
445
|
image_encoder = None
|
|
448
446
|
if model_config.image_encoder_path is not None:
|
|
449
447
|
logger.info(f"loading state dict from {model_config.image_encoder_path} ...")
|
|
@@ -480,6 +478,20 @@ class WanVideoPipeline(BasePipeline):
|
|
|
480
478
|
tp_degree = parallel_config["tp_degree"]
|
|
481
479
|
use_fsdp = parallel_config["use_fsdp"]
|
|
482
480
|
batch_cfg = True if use_cfg_parallel else batch_cfg
|
|
481
|
+
|
|
482
|
+
vae = WanVideoVAE.from_state_dict(
|
|
483
|
+
vae_state_dict, parallelism=parallelism, device="cpu", dtype=model_config.vae_dtype
|
|
484
|
+
)
|
|
485
|
+
vae = ParallelModel(
|
|
486
|
+
vae,
|
|
487
|
+
cfg_degree=1,
|
|
488
|
+
sp_ulysses_degree=parallelism, # not real sequence parallel
|
|
489
|
+
sp_ring_degree=1,
|
|
490
|
+
tp_degree=1,
|
|
491
|
+
master_port=29501,
|
|
492
|
+
device="cuda",
|
|
493
|
+
)
|
|
494
|
+
|
|
483
495
|
with LoRAContext():
|
|
484
496
|
dit = WanDiT.from_state_dict(
|
|
485
497
|
dit_state_dict,
|
|
@@ -499,6 +511,8 @@ class WanVideoPipeline(BasePipeline):
|
|
|
499
511
|
device="cuda",
|
|
500
512
|
)
|
|
501
513
|
else:
|
|
514
|
+
vae = WanVideoVAE.from_state_dict(vae_state_dict, device=init_device, dtype=model_config.vae_dtype)
|
|
515
|
+
|
|
502
516
|
with LoRAContext():
|
|
503
517
|
dit = WanDiT.from_state_dict(
|
|
504
518
|
dit_state_dict,
|
|
@@ -526,4 +540,5 @@ class WanVideoPipeline(BasePipeline):
|
|
|
526
540
|
return pipe
|
|
527
541
|
|
|
528
542
|
def __del__(self):
|
|
543
|
+
del self.vae
|
|
529
544
|
del self.dit
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_outpainting_tool.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from diffsynth_engine import fetch_model, FluxControlNet, ControlNetParams, FluxImagePipeline
|
|
2
|
-
from typing import List, Tuple, Optional
|
|
2
|
+
from typing import List, Tuple, Optional, Callable
|
|
3
3
|
from PIL import Image
|
|
4
4
|
import torch
|
|
5
5
|
|
|
@@ -34,6 +34,7 @@ class FluxOutpaintingTool:
|
|
|
34
34
|
inpainting_scale: float = 0.9,
|
|
35
35
|
seed: int = 42,
|
|
36
36
|
num_inference_steps: int = 20,
|
|
37
|
+
progress_callback: Optional[Callable] = None,
|
|
37
38
|
):
|
|
38
39
|
assert scaling_factor >= 1.0, "scale must be >= 1.0"
|
|
39
40
|
width, height = image.width, image.height
|
|
@@ -57,4 +58,5 @@ class FluxOutpaintingTool:
|
|
|
57
58
|
mask=mask,
|
|
58
59
|
scale=inpainting_scale,
|
|
59
60
|
),
|
|
61
|
+
progress_callback=progress_callback,
|
|
60
62
|
)
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_replace_tool.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from diffsynth_engine import ControlNetParams, FluxControlNet, FluxImagePipeline, FluxRedux, fetch_model
|
|
2
|
-
from typing import List, Tuple, Optional
|
|
2
|
+
from typing import List, Tuple, Optional, Callable
|
|
3
3
|
from PIL import Image
|
|
4
4
|
import torch
|
|
5
5
|
|
|
@@ -45,6 +45,7 @@ class FluxReplaceByControlTool:
|
|
|
45
45
|
ref_scale: float = 1.0,
|
|
46
46
|
seed: int = 42,
|
|
47
47
|
num_inference_steps: int = 20,
|
|
48
|
+
progress_callback: Optional[Callable] = None,
|
|
48
49
|
):
|
|
49
50
|
assert image.size == mask.size
|
|
50
51
|
self.pipe.redux.set_scale(ref_scale)
|
|
@@ -68,5 +69,6 @@ class FluxReplaceByControlTool:
|
|
|
68
69
|
mask=mask,
|
|
69
70
|
scale=inpainting_scale,
|
|
70
71
|
),
|
|
72
|
+
progress_callback=progress_callback,
|
|
71
73
|
)
|
|
72
74
|
return result.resize((width, height))
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def get_logger(name: Optional[str] = None) -> logging.Logger:
|
|
6
|
+
handler = logging.StreamHandler()
|
|
7
|
+
handler.setLevel(logging.INFO)
|
|
8
|
+
formatter = logging.Formatter(
|
|
9
|
+
"%(asctime)s - %(levelname)s - %(message)s",
|
|
10
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
|
11
|
+
)
|
|
12
|
+
handler.setFormatter(formatter)
|
|
13
|
+
logger = logging.getLogger(name)
|
|
14
|
+
logger.addHandler(handler)
|
|
15
|
+
logger.setLevel(logging.INFO)
|
|
16
|
+
return logger
|
|
@@ -228,7 +228,6 @@ def parallelize_module(
|
|
|
228
228
|
|
|
229
229
|
NCCL_TIMEOUT_SEC = int(os.environ.get("NCCL_TIMEOUT_SEC", 600))
|
|
230
230
|
PARALLEL_FWD_TIMEOUT_SEC = int(os.environ.get("PARALLEL_FWD_TIMEOUT_SEC", 300))
|
|
231
|
-
PARALLEL_LORA_TIMEOUT_SEC = int(os.environ.get("PARALLEL_LORA_TIMEOUT_SEC ", 60))
|
|
232
231
|
|
|
233
232
|
|
|
234
233
|
def _worker_loop(
|
|
@@ -285,28 +284,26 @@ def _worker_loop(
|
|
|
285
284
|
|
|
286
285
|
while True:
|
|
287
286
|
if rank == 0:
|
|
288
|
-
|
|
289
|
-
data = [kwargs]
|
|
287
|
+
data = queue_in.get()
|
|
290
288
|
else:
|
|
291
|
-
data = [None]
|
|
289
|
+
data = [None, None, None]
|
|
292
290
|
dist.broadcast_object_list(data, src=0)
|
|
293
|
-
kwargs = clone(data
|
|
291
|
+
name, args, kwargs = clone(data)
|
|
294
292
|
del data
|
|
295
293
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
y = gathered
|
|
294
|
+
if not hasattr(module, name):
|
|
295
|
+
raise AttributeError(f'{module.__class__.__name__} has no attribute "{name}"')
|
|
296
|
+
if name != "load_loras":
|
|
297
|
+
args = split_and_get(to_device(args, device), get_cfg_world_size(), 0, get_cfg_rank())
|
|
298
|
+
kwargs = split_and_get(to_device(kwargs, device), get_cfg_world_size(), 0, get_cfg_rank())
|
|
299
|
+
with torch.no_grad():
|
|
300
|
+
y = getattr(module, name)(*args, **kwargs)
|
|
301
|
+
|
|
302
|
+
is_rank_zero_in_cfg_group = get_cfg_world_size() > 1 and get_sp_rank() == 0 and get_tp_rank() == 0
|
|
303
|
+
if y is not None and is_rank_zero_in_cfg_group:
|
|
304
|
+
gathered = torch.zeros((get_cfg_world_size(), *y.shape[1:]), dtype=y.dtype, device=y.device)
|
|
305
|
+
dist.all_gather_into_tensor(gathered, y, group=get_cfg_group())
|
|
306
|
+
y = gathered
|
|
310
307
|
|
|
311
308
|
if rank == 0:
|
|
312
309
|
queue_out.put(y)
|
|
@@ -359,42 +356,9 @@ class ParallelModel(nn.Module):
|
|
|
359
356
|
join=False,
|
|
360
357
|
)
|
|
361
358
|
|
|
362
|
-
def
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
"method": "load_loras",
|
|
366
|
-
"lora_args": lora_args,
|
|
367
|
-
"fused": fused,
|
|
368
|
-
}
|
|
369
|
-
)
|
|
370
|
-
try:
|
|
371
|
-
res = self.queue_out.get(timeout=PARALLEL_LORA_TIMEOUT_SEC)
|
|
372
|
-
if isinstance(res, Exception):
|
|
373
|
-
raise res
|
|
374
|
-
except Empty:
|
|
375
|
-
logger.error("ParallelModel load LoRA timeout")
|
|
376
|
-
raise RuntimeError("ParallelModel load LoRA timeout")
|
|
377
|
-
except Exception as e:
|
|
378
|
-
logger.error(f"ParallelModel load LoRA error: {e}")
|
|
379
|
-
raise RuntimeError(f"ParallelModel load LoRA error: {e}")
|
|
380
|
-
logger.info("ParallelModel load LoRA done")
|
|
381
|
-
|
|
382
|
-
def unload_loras(self):
|
|
383
|
-
self.queue_in.put({"method": "unload_loras"})
|
|
384
|
-
try:
|
|
385
|
-
res = self.queue_out.get(timeout=PARALLEL_LORA_TIMEOUT_SEC)
|
|
386
|
-
if isinstance(res, Exception):
|
|
387
|
-
raise res
|
|
388
|
-
except Empty:
|
|
389
|
-
logger.error("ParallelModel unload LoRA timeout")
|
|
390
|
-
raise RuntimeError("ParallelModel unload LoRA timeout")
|
|
391
|
-
except Exception as e:
|
|
392
|
-
logger.error(f"ParallelModel unload LoRA error: {e}")
|
|
393
|
-
raise RuntimeError(f"ParallelModel unload LoRA error: {e}")
|
|
394
|
-
logger.info("ParallelModel unload LoRA done")
|
|
395
|
-
|
|
396
|
-
def forward(self, **kwargs):
|
|
397
|
-
self.queue_in.put(kwargs)
|
|
359
|
+
def forward(self, *args, **kwargs):
|
|
360
|
+
data = ["forward", args, kwargs]
|
|
361
|
+
self.queue_in.put(data)
|
|
398
362
|
try:
|
|
399
363
|
res = self.queue_out.get(timeout=PARALLEL_FWD_TIMEOUT_SEC)
|
|
400
364
|
if isinstance(res, Exception):
|
|
@@ -407,6 +371,25 @@ class ParallelModel(nn.Module):
|
|
|
407
371
|
raise RuntimeError(f"ParallelModel forward error: {e}")
|
|
408
372
|
return res
|
|
409
373
|
|
|
374
|
+
def __getattr__(self, name):
|
|
375
|
+
def wrapped_func(*args, **kwargs):
|
|
376
|
+
data = [name, args, kwargs]
|
|
377
|
+
self.queue_in.put(data)
|
|
378
|
+
try:
|
|
379
|
+
res = self.queue_out.get(timeout=PARALLEL_FWD_TIMEOUT_SEC)
|
|
380
|
+
if isinstance(res, Exception):
|
|
381
|
+
raise res
|
|
382
|
+
except Empty:
|
|
383
|
+
logger.error(f"ParallelModel {name} timeout")
|
|
384
|
+
raise RuntimeError(f"ParallelModel {name} timeout")
|
|
385
|
+
except Exception as e:
|
|
386
|
+
logger.error(f"ParallelModel {name} error: {e}")
|
|
387
|
+
raise RuntimeError(f"ParallelModel {name} error: {e}")
|
|
388
|
+
logger.info(f"ParallelModel {name} done")
|
|
389
|
+
return res
|
|
390
|
+
|
|
391
|
+
return wrapped_func
|
|
392
|
+
|
|
410
393
|
def __del__(self):
|
|
411
394
|
# Send terminate signal to all workers
|
|
412
395
|
for p in self.ctx.processes:
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from typing import Optional
|
|
3
|
-
|
|
4
|
-
logging.basicConfig(
|
|
5
|
-
level=logging.INFO,
|
|
6
|
-
format="%(asctime)s - %(levelname)s - %(message)s",
|
|
7
|
-
datefmt="%Y-%m-%d %H:%M:%S",
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def get_logger(name: Optional[str] = None) -> logging.Logger:
|
|
12
|
-
return logging.getLogger(name)
|
|
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
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/algorithm/sampler/__init__.py
RENAMED
|
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
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/components/vae.json
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/flux/flux_dit.json
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/flux/flux_vae.json
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd/sd_unet.json
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sd3/sd3_dit.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/sdxl/sdxl_unet.json
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/1.3b-t2v.json
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/14b-i2v.json
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/conf/models/wan/dit/14b-t2v.json
RENAMED
|
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
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/attention.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/basic/unet_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_controlnet.py
RENAMED
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_ipadapter.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_redux.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/flux/flux_text_encoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd/sd_text_encoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sd3/sd3_text_encoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/sdxl/sdxl_text_encoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/__init__.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/clip.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/siglip.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/text_encoder/t5.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_image_encoder.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/models/wan/wan_text_encoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -801,13 +801,13 @@ class FluxImagePipeline(BasePipeline):
|
|
|
801
801
|
controlnet_params: List[ControlNetParams] | ControlNetParams = [],
|
|
802
802
|
progress_callback: Optional[Callable] = None, # def progress_callback(current, total, status)
|
|
803
803
|
):
|
|
804
|
+
if not isinstance(controlnet_params, list):
|
|
805
|
+
controlnet_params = [controlnet_params]
|
|
804
806
|
if self.control_type != ControlType.normal:
|
|
805
807
|
assert controlnet_params and len(controlnet_params) == 1, "bfl_controlnet must have one controlnet"
|
|
806
808
|
|
|
807
809
|
if input_image is not None:
|
|
808
810
|
width, height = input_image.size
|
|
809
|
-
if not isinstance(controlnet_params, list):
|
|
810
|
-
controlnet_params = [controlnet_params]
|
|
811
811
|
self.validate_image_size(height, width, minimum=64, multiple_of=16)
|
|
812
812
|
|
|
813
813
|
noise = self.generate_noise((1, 16, height // 8, width // 8), seed=seed, device="cpu", dtype=self.dtype).to(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/processor/canny_processor.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/processor/depth_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_inpainting_tool.py
RENAMED
|
File without changes
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine/tools/flux_reference_tool.py
RENAMED
|
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
|
{diffsynth_engine-0.2.8 → diffsynth_engine-0.3.0}/diffsynth_engine.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|