[diffusion] fix: fix ZImage SP sharding for 5D latents and unpad frames (#16418)
Signed-off-by: Chi <chixie.mcisaac@gmail.com>
This commit is contained in:
@@ -14,6 +14,7 @@ from sglang.multimodal_gen.configs.models.vaes.flux import FluxVAEConfig
|
|||||||
from sglang.multimodal_gen.configs.pipeline_configs.base import (
|
from sglang.multimodal_gen.configs.pipeline_configs.base import (
|
||||||
ImagePipelineConfig,
|
ImagePipelineConfig,
|
||||||
ModelTaskType,
|
ModelTaskType,
|
||||||
|
PipelineConfig,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -69,8 +70,24 @@ class ZImagePipelineConfig(ImagePipelineConfig):
|
|||||||
)
|
)
|
||||||
return inputs
|
return inputs
|
||||||
|
|
||||||
|
def shard_latents_for_sp(self, batch, latents):
|
||||||
|
if latents.dim() == 5:
|
||||||
|
return PipelineConfig.shard_latents_for_sp(self, batch, latents)
|
||||||
|
return super().shard_latents_for_sp(batch, latents)
|
||||||
|
|
||||||
|
def gather_latents_for_sp(self, latents):
|
||||||
|
if latents.dim() == 5:
|
||||||
|
return PipelineConfig.gather_latents_for_sp(self, latents)
|
||||||
|
return super().gather_latents_for_sp(latents)
|
||||||
|
|
||||||
def post_denoising_loop(self, latents, batch):
|
def post_denoising_loop(self, latents, batch):
|
||||||
bs, channels, num_frames, height, width = latents.shape
|
bs, channels, num_frames, height, width = latents.shape
|
||||||
|
raw_latent_shape = getattr(batch, "raw_latent_shape", None)
|
||||||
|
if raw_latent_shape is not None and num_frames > raw_latent_shape[2]:
|
||||||
|
latents = latents[:, :, : raw_latent_shape[2], :, :]
|
||||||
|
num_frames = raw_latent_shape[2]
|
||||||
|
if num_frames != 1:
|
||||||
|
return latents[:, :, 0, :, :]
|
||||||
return latents.view(bs, channels, height, width)
|
return latents.view(bs, channels, height, width)
|
||||||
|
|
||||||
def get_freqs_cis(self, prompt_embeds, width, height, device, rotary_emb, batch):
|
def get_freqs_cis(self, prompt_embeds, width, height, device, rotary_emb, batch):
|
||||||
|
|||||||
@@ -529,6 +529,31 @@
|
|||||||
"expected_avg_denoise_ms": 94.15,
|
"expected_avg_denoise_ms": 94.15,
|
||||||
"expected_median_denoise_ms": 102.03
|
"expected_median_denoise_ms": 102.03
|
||||||
},
|
},
|
||||||
|
"zimage_image_t2i_2_gpus": {
|
||||||
|
"stages_ms": {
|
||||||
|
"InputValidationStage": 0.08,
|
||||||
|
"TextEncodingStage": 118.66,
|
||||||
|
"ConditioningStage": 0.01,
|
||||||
|
"TimestepPreparationStage": 1.5,
|
||||||
|
"LatentPreparationStage": 0.12,
|
||||||
|
"DenoisingStage": 1304.07,
|
||||||
|
"DecodingStage": 37.83
|
||||||
|
},
|
||||||
|
"denoise_step_ms": {
|
||||||
|
"0": 49.76,
|
||||||
|
"1": 155.22,
|
||||||
|
"2": 155.98,
|
||||||
|
"3": 156.16,
|
||||||
|
"4": 157.04,
|
||||||
|
"5": 156.54,
|
||||||
|
"6": 156.29,
|
||||||
|
"7": 157.36,
|
||||||
|
"8": 156.05
|
||||||
|
},
|
||||||
|
"expected_e2e_ms": 1464.87,
|
||||||
|
"expected_avg_denoise_ms": 144.49,
|
||||||
|
"expected_median_denoise_ms": 156.16
|
||||||
|
},
|
||||||
"zimage_image_t2i_warmup": {
|
"zimage_image_t2i_warmup": {
|
||||||
"stages_ms": {
|
"stages_ms": {
|
||||||
"InputValidationStage": 0.02,
|
"InputValidationStage": 0.02,
|
||||||
|
|||||||
@@ -578,6 +578,16 @@ TWO_GPU_CASES_B = [
|
|||||||
),
|
),
|
||||||
T2I_sampling_params,
|
T2I_sampling_params,
|
||||||
),
|
),
|
||||||
|
DiffusionTestCase(
|
||||||
|
"zimage_image_t2i_2_gpus",
|
||||||
|
DiffusionServerArgs(
|
||||||
|
model_path="Tongyi-MAI/Z-Image-Turbo",
|
||||||
|
modality="image",
|
||||||
|
num_gpus=2,
|
||||||
|
ulysses_degree=2,
|
||||||
|
),
|
||||||
|
T2I_sampling_params,
|
||||||
|
),
|
||||||
DiffusionTestCase(
|
DiffusionTestCase(
|
||||||
"flux_image_t2i_2_gpus",
|
"flux_image_t2i_2_gpus",
|
||||||
DiffusionServerArgs(
|
DiffusionServerArgs(
|
||||||
|
|||||||
Reference in New Issue
Block a user