From e2cdfac28e75b8b780ae3d41a840baa313645926 Mon Sep 17 00:00:00 2001 From: huanghao Date: Wed, 28 Aug 2024 15:10:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?SD3=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../built-in/foundation/stable_diffusion_3/export_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py index 3608813b1e..35dcf2e898 100644 --- a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py +++ b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py @@ -70,7 +70,7 @@ def parse_arguments() -> Namespace: parser.add_argument("--use_cache", action="store_true", help="Use cache during inference.") parser.add_argument("-p", "--parallel", action="store_true", help="Export the unet of bs=1 for parallel inferencing.") - parser.add_argument("--soc", choices=["Duo", "A2"], default="A2", help="soc_version.") + parser.add_argument("--soc", help="soc_version.") parser.add_argument( "--device", default=0, -- Gitee From c2ec5bc6146eba14d113b9ee7aa10a6589bf291f Mon Sep 17 00:00:00 2001 From: huanghao Date: Mon, 2 Sep 2024 17:43:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?SD3=E4=BF=AE=E5=A4=8DDUO=E5=8D=A1=E5=A4=9Ab?= =?UTF-8?q?atch=E5=9C=BA=E6=99=AF=E4=B8=8B=E6=8E=A8=E7=90=86=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../foundation/stable_diffusion_3/background_runtime.py | 2 +- .../built-in/foundation/stable_diffusion_3/export_model.py | 4 ++-- .../stable_diffusion_3/stable_diffusion3_pipeline.py | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/background_runtime.py b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/background_runtime.py index 6f4935af2d..482d82309c 100644 --- a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/background_runtime.py +++ b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/background_runtime.py @@ -177,7 +177,7 @@ class BackgroundRuntime: for i, _ in enumerate(output_arrays): output = output_cpu.numpy() - output_arrays[i][:] = output[i][:] + output_arrays[i][:] = output[:] infer_num += 1 sync_pipe.send('') diff --git a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py index 35dcf2e898..1cda87042f 100644 --- a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py +++ b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/export_model.py @@ -195,7 +195,7 @@ def export_dit(sd_pipeline, args): [batch_size, max_position_embeddings, encoder_hidden_size * 2], dtype=torch.float32 ), torch.ones([batch_size, encoder_hidden_size], dtype=torch.float32), - torch.ones([batch_size], dtype=torch.int64) + torch.ones([1], dtype=torch.int64) ) dit = DiTExport(dit_model).eval() torch.jit.trace(dit, dummy_input).save(dit_pt_path) @@ -212,7 +212,7 @@ def export_dit(sd_pipeline, args): dtype=mindietorch.dtype.FLOAT), mindietorch.Input((batch_size, encoder_hidden_size), dtype=mindietorch.dtype.FLOAT), - mindietorch.Input((batch_size,), dtype=mindietorch.dtype.INT64)] + mindietorch.Input((1,), dtype=mindietorch.dtype.INT64)] compile_dit(model, inputs, dit_compiled_path, args.soc) else: logging.info("dit_compiled_path already exists.") diff --git a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/stable_diffusion3_pipeline.py b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/stable_diffusion3_pipeline.py index e5cea8855a..5415517f7e 100644 --- a/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/stable_diffusion3_pipeline.py +++ b/MindIE/MindIE-Torch/built-in/foundation/stable_diffusion_3/stable_diffusion3_pipeline.py @@ -190,7 +190,7 @@ class AIEStableDiffusion3Pipeline(StableDiffusion3Pipeline): (batch_size, in_channels, sample_size, sample_size), (batch_size, max_position_embeddings, encoder_hidden_size * 2), (batch_size, encoder_hidden_size), - (batch_size,), + (1,), ], input_dtypes=[np.float32, np.float32, np.float32, np.int64], output_shapes=[(batch_size, in_channels, sample_size, sample_size)], @@ -534,8 +534,7 @@ class AIEStableDiffusion3Pipeline(StableDiffusion3Pipeline): if not self.use_parallel_inferencing and self.do_classifier_free_guidance: latent_model_input = torch.cat([latents] * 2) # broadcast to batch dimension in a way that's compatible with ONNX/Core ML - timestep = t.expand(latent_model_input.shape[0]).to(torch.int64) - timestep_npu = timestep.to(f"npu:{self.device_0}") + timestep = t.to(torch.int64)[None].to(f"npu:{self.device_0}") else: latent_model_input = latents timestep = t.to(torch.int64) -- Gitee