[diffusion] model: Support TurboWan2.2-I2V SLA && add CI test for TurboWan (#16536)
This commit is contained in:
@@ -804,6 +804,27 @@
|
||||
"expected_avg_denoise_ms": 260.76,
|
||||
"expected_median_denoise_ms": 247.84
|
||||
},
|
||||
"turbo_wan2_1_t2v_1.3b": {
|
||||
"stages_ms": {
|
||||
"InputValidationStage": 0.06,
|
||||
"TextEncodingStage": 2508.95,
|
||||
"ConditioningStage": 0.04,
|
||||
"TimestepPreparationStage": 73.51,
|
||||
"LatentPreparationStage": 1.34,
|
||||
"DmdDenoisingStage": 1285.25,
|
||||
"DecodingStage": 805.04,
|
||||
"per_frame_generation": null
|
||||
},
|
||||
"denoise_step_ms": {
|
||||
"0": 897.62,
|
||||
"1": 126.04,
|
||||
"2": 126.52,
|
||||
"3": 128.26
|
||||
},
|
||||
"expected_e2e_ms": 4686.66,
|
||||
"expected_avg_denoise_ms": 319.61,
|
||||
"expected_median_denoise_ms": 127.39
|
||||
},
|
||||
"wan2_2_ti2v_5b": {
|
||||
"stages_ms": {
|
||||
"InputValidationStage": 96.27,
|
||||
@@ -1092,6 +1113,28 @@
|
||||
"expected_avg_denoise_ms": 2831.00,
|
||||
"expected_median_denoise_ms": 1600.09
|
||||
},
|
||||
"turbo_wan2_2_i2v_a14b_2gpu": {
|
||||
"stages_ms": {
|
||||
"InputValidationStage": 25.01,
|
||||
"TextEncodingStage": 5198.6,
|
||||
"ConditioningStage": 0.04,
|
||||
"TimestepPreparationStage": 56.26,
|
||||
"LatentPreparationStage": 1.4,
|
||||
"ImageVAEEncodingStage": 1001.89,
|
||||
"DmdDenoisingStage": 4487.79,
|
||||
"DecodingStage": 821.01,
|
||||
"per_frame_generation": null
|
||||
},
|
||||
"denoise_step_ms": {
|
||||
"0": 3042.56,
|
||||
"1": 485.88,
|
||||
"2": 477.59,
|
||||
"3": 475.58
|
||||
},
|
||||
"expected_e2e_ms": 11605.97,
|
||||
"expected_avg_denoise_ms": 1120.4,
|
||||
"expected_median_denoise_ms": 481.74
|
||||
},
|
||||
"wan2_1_i2v_14b_480P_2gpu": {
|
||||
"stages_ms": {
|
||||
"InputValidationStage": 38.23,
|
||||
|
||||
@@ -1078,7 +1078,11 @@ def get_generate_fn(
|
||||
prompt=sampling_params.prompt,
|
||||
size=sampling_params.output_size,
|
||||
seconds=video_seconds,
|
||||
extra_body={"reference_url": sampling_params.image_path},
|
||||
extra_body={
|
||||
"reference_url": sampling_params.image_path,
|
||||
"fps": sampling_params.fps,
|
||||
"num_frames": sampling_params.num_frames,
|
||||
},
|
||||
)
|
||||
|
||||
def generate_text_image_to_video(case_id, client) -> str:
|
||||
@@ -1102,6 +1106,10 @@ def get_generate_fn(
|
||||
size=output_size,
|
||||
seconds=video_seconds,
|
||||
input_reference=fh,
|
||||
extra_body={
|
||||
"fps": sampling_params.fps,
|
||||
"num_frames": sampling_params.num_frames,
|
||||
},
|
||||
)
|
||||
|
||||
if modality == "video":
|
||||
|
||||
@@ -25,6 +25,7 @@ from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import Sequence
|
||||
|
||||
from sglang.multimodal_gen.runtime.platforms import current_platform
|
||||
from sglang.multimodal_gen.runtime.utils.perf_logger import RequestPerfRecord
|
||||
|
||||
|
||||
@@ -300,6 +301,15 @@ TI2V_sampling_params = DiffusionSamplingParams(
|
||||
direct_url_test=True,
|
||||
)
|
||||
|
||||
TURBOWAN_I2V_sampling_params = DiffusionSamplingParams(
|
||||
prompt="The man in the picture slowly turns his head, his expression enigmatic and otherworldly. The camera performs a slow, cinematic dolly out, focusing on his face. Moody lighting, neon signs glowing in the background, shallow depth of field.",
|
||||
image_path="https://is1-ssl.mzstatic.com/image/thumb/Music114/v4/5f/fa/56/5ffa56c2-ea1f-7a17-6bad-192ff9b6476d/825646124206.jpg/600x600bb.jpg",
|
||||
direct_url_test=True,
|
||||
output_size="960x960",
|
||||
num_frames=4,
|
||||
fps=4,
|
||||
)
|
||||
|
||||
# All test cases with clean default values
|
||||
# To test different models, simply add more DiffusionCase entries
|
||||
ONE_GPU_CASES_A: list[DiffusionTestCase] = [
|
||||
@@ -496,6 +506,23 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [
|
||||
),
|
||||
]
|
||||
|
||||
# Skip turbowan because Triton requires 81920 shared memory, but AMD only has 65536.
|
||||
if not current_platform.is_hip():
|
||||
ONE_GPU_CASES_B.append(
|
||||
DiffusionTestCase(
|
||||
"turbo_wan2_1_t2v_1.3b",
|
||||
DiffusionServerArgs(
|
||||
model_path="IPostYellow/TurboWan2.1-T2V-1.3B-Diffusers",
|
||||
modality="video",
|
||||
warmup=0,
|
||||
custom_validator="video",
|
||||
),
|
||||
DiffusionSamplingParams(
|
||||
prompt=T2V_PROMPT,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
TWO_GPU_CASES_A = [
|
||||
DiffusionTestCase(
|
||||
"wan2_2_i2v_a14b_2gpu",
|
||||
@@ -551,6 +578,23 @@ TWO_GPU_CASES_A = [
|
||||
),
|
||||
]
|
||||
|
||||
# Skip turbowan because Triton requires 81920 shared memory, but AMD only has 65536.
|
||||
if not current_platform.is_hip():
|
||||
TWO_GPU_CASES_A.append(
|
||||
DiffusionTestCase(
|
||||
"turbo_wan2_2_i2v_a14b_2gpu",
|
||||
DiffusionServerArgs(
|
||||
model_path="IPostYellow/TurboWan2.2-I2V-A14B-Diffusers",
|
||||
modality="video",
|
||||
warmup=0,
|
||||
custom_validator="video",
|
||||
num_gpus=2,
|
||||
tp_size=2,
|
||||
),
|
||||
TURBOWAN_I2V_sampling_params,
|
||||
)
|
||||
)
|
||||
|
||||
TWO_GPU_CASES_B = [
|
||||
DiffusionTestCase(
|
||||
"wan2_1_i2v_14b_480P_2gpu",
|
||||
|
||||
Reference in New Issue
Block a user