diff --git a/python/sglang/multimodal_gen/runtime/managers/gpu_worker.py b/python/sglang/multimodal_gen/runtime/managers/gpu_worker.py index 945134523..55536832b 100644 --- a/python/sglang/multimodal_gen/runtime/managers/gpu_worker.py +++ b/python/sglang/multimodal_gen/runtime/managers/gpu_worker.py @@ -186,7 +186,9 @@ class GPUWorker: # TODO: extract to avoid duplication if req.perf_dump_path is not None or envs.SGLANG_DIFFUSION_STAGE_LOGGING: - PerformanceLogger.log_request_summary(timings=output_batch.timings) + # Avoid logging warmup perf records that share the same request_id. + if not req.is_warmup: + PerformanceLogger.log_request_summary(timings=output_batch.timings) except Exception as e: logger.error( f"Error executing request {req.request_id}: {e}", exc_info=True diff --git a/python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py b/python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py index 12473faab..c914e4cd2 100644 --- a/python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py +++ b/python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py @@ -10,8 +10,6 @@ from openai import OpenAI from sglang.multimodal_gen.test.server.test_server_utils import ( ServerManager, - WarmupRunner, - download_image_from_url, get_generate_fn, ) from sglang.multimodal_gen.test.server.testcase_configs import ( @@ -20,7 +18,6 @@ from sglang.multimodal_gen.test.server.testcase_configs import ( ) from sglang.multimodal_gen.test.test_utils import ( get_dynamic_server_port, - is_image_url, wait_for_req_perf_record, ) @@ -68,8 +65,8 @@ def _build_server_extra_args(case: DiffusionTestCase) -> str: a += f" --ring-degree {server_args.ring_degree}" if server_args.lora_path: a += f" --lora-path {server_args.lora_path}" - if server_args.enable_warmup: - a += " --enable-warmup" + if server_args.warmup: + a += " --warmup" return a @@ -110,35 +107,6 @@ def _run_case(case: DiffusionTestCase) -> dict: try: sp = case.sampling_params output_size = os.environ.get("SGLANG_TEST_OUTPUT_SIZE", sp.output_size) - w = WarmupRunner( - port=ctx.port, - model=case.server_args.model_path, - prompt=sp.prompt or "A colorful raccoon icon", - output_size=output_size, - output_format=sp.output_format, - ) - if case.server_args.warmup > 0: - if sp.image_path and sp.prompt: - image_path_list = sp.image_path - if not isinstance(image_path_list, list): - image_path_list = [image_path_list] - new_image_path_list = [] - for p in image_path_list: - if is_image_url(p): - new_image_path_list.append(download_image_from_url(str(p))) - else: - pp = Path(p) - if not pp.exists(): - raise FileNotFoundError(str(pp)) - new_image_path_list.append(pp) - w.run_edit_warmups( - count=case.server_args.warmup, - edit_prompt=sp.prompt, - image_path=new_image_path_list, - ) - else: - w.run_text_warmups(case.server_args.warmup) - client = _openai_client(ctx.port) gen = get_generate_fn( model_path=case.server_args.model_path, diff --git a/python/sglang/multimodal_gen/test/server/perf_baselines.json b/python/sglang/multimodal_gen/test/server/perf_baselines.json index e0187c4b5..4e0f64f83 100644 --- a/python/sglang/multimodal_gen/test/server/perf_baselines.json +++ b/python/sglang/multimodal_gen/test/server/perf_baselines.json @@ -31,11 +31,7 @@ 0.6, 0.8, 1.0 - ], - "warmup_requests": { - "text": 1, - "image_edit": 0 - } + ] }, "scenarios": { "qwen_image_t2i": { @@ -53,7 +49,7 @@ "DecodingStage": 751.1 }, "denoise_step_ms": { - "0": 1077.77, + "0": 400.06, "1": 345.13, "2": 413.8, "3": 405.49, @@ -182,8 +178,8 @@ "DecodingStage": 653.03 }, "denoise_step_ms": { - "0": 165.27, - "1": 58.88, + "0": 58.88, + "1": 165.27, "2": 166.85, "3": 166.51, "4": 166.77, @@ -249,8 +245,8 @@ "DecodingStage": 489.8 }, "denoise_step_ms": { - "0": 511.3, - "1": 132.57, + "0": 68.7, + "1": 511.3, "2": 541.19, "3": 518.93, "4": 541.2, @@ -470,8 +466,8 @@ "DecodingStage": 381.56 }, "denoise_step_ms": { - "0": 166.27, - "1": 59.6, + "0": 73.27, + "1": 166.6, "2": 167.31, "3": 168.7, "4": 168.83, @@ -703,56 +699,56 @@ "DecodingStage": 52.24 }, "denoise_step_ms": { - "0": 239.28, - "1": 285.07, - "2": 286.65, - "3": 299.09, - "4": 191.11, - "5": 101.8, - "6": 51.77, - "7": 147.26, - "8": 101.68, - "9": 51.4, - "10": 150.58, - "11": 106.56, - "12": 53.7, - "13": 7.33, - "14": 148.41, - "15": 102.08, - "16": 52.04, - "17": 7.3, - "18": 145.91, - "19": 100.31, - "20": 51.68, - "21": 7.27, - "22": 145.92, - "23": 104.35, - "24": 54.33, - "25": 7.46, - "26": 150.96, - "27": 104.39, - "28": 53.21, - "29": 7.22, - "30": 148.3, - "31": 102.06, - "32": 51.88, - "33": 7.31, - "34": 145.8, - "35": 101.95, - "36": 52.15, - "37": 7.42, - "38": 148.87, - "39": 103.01, - "40": 52.21, - "41": 7.28, - "42": 147.39, - "43": 103.89, - "44": 51.44, - "45": 7.12, - "46": 144.78, - "47": 100.34, - "48": 195.54, - "49": 246.97 + "0": 227.68, + "1": 277.41, + "2": 276.7, + "3": 291.52, + "4": 52.8, + "5": 6.58, + "6": 231.58, + "7": 52.55, + "8": 7.69, + "9": 230.59, + "10": 52.58, + "11": 7.14, + "12": 6.95, + "13": 234.71, + "14": 53.28, + "15": 7.09, + "16": 6.63, + "17": 233.93, + "18": 52.71, + "19": 6.64, + "20": 6.5, + "21": 231.37, + "22": 52.28, + "23": 6.61, + "24": 6.48, + "25": 232.86, + "26": 54.92, + "27": 7.51, + "28": 7.19, + "29": 233.51, + "30": 52.97, + "31": 6.72, + "32": 7.02, + "33": 233.14, + "34": 52.47, + "35": 6.66, + "36": 6.52, + "37": 233.84, + "38": 51.49, + "39": 6.87, + "40": 6.74, + "41": 233.75, + "42": 52.65, + "43": 6.62, + "44": 6.55, + "45": 233.45, + "46": 52.33, + "47": 6.55, + "48": 232.58, + "49": 52.84 }, "expected_e2e_ms": 5982.78, "expected_avg_denoise_ms": 104.84, @@ -770,7 +766,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 879.71, + "0": 240.71, "1": 248.13, "2": 246.48, "3": 247.87, @@ -837,7 +833,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 879.71, + "0": 224.71, "1": 248.13, "2": 246.48, "3": 247.87, @@ -971,7 +967,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 1069.91, + "0": 266.91, "1": 211.32, "2": 206.59, "3": 208.12, @@ -1237,22 +1233,22 @@ "fastwan2_2_ti2v_5b": { "stages_ms": { "InputValidationStage": 300.00, - "TextEncodingStage": 2327.87, + "TextEncodingStage": 843.86, "ConditioningStage": 0.01, "TimestepPreparationStage": 58.66, "LatentPreparationStage": 28.55, - "DmdDenoisingStage": 4438.3, - "DecodingStage": 14177.77, + "DmdDenoisingStage": 499.34, + "DecodingStage": 1924.01, "per_frame_generation": null }, "denoise_step_ms": { - "0": 2022.21, - "1": 1263.17, - "2": 1149.59 + "0": 164.76, + "1": 165.6, + "2": 165.84 }, - "expected_e2e_ms": 21133.36, - "expected_avg_denoise_ms": 1478.32, - "expected_median_denoise_ms": 1263.17 + "expected_e2e_ms": 7722.91, + "expected_avg_denoise_ms": 165.42, + "expected_median_denoise_ms": 165.66 }, "fast_hunyuan_video": { "stages_ms": { @@ -1266,12 +1262,12 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 2518.62, - "1": 578.59, - "2": 1485.76, - "3": 1490.86, - "4": 1489.93, - "5": 1487.02 + "0": 485.99, + "1": 1399.84, + "2": 1399.91, + "3": 1397.79, + "4": 1400.61, + "5": 1402.53 }, "expected_e2e_ms": 16672.15, "expected_avg_denoise_ms": 1608.46, @@ -1290,7 +1286,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 15659.6, + "0": 1525.6, "1": 1582.6, "2": 1597.84, "3": 1601.34, @@ -1687,7 +1683,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 1964.07, + "0": 233.29, "1": 265.02, "2": 257.83, "3": 260.27, @@ -1756,7 +1752,7 @@ "per_frame_generation": null }, "denoise_step_ms": { - "0": 7828.3, + "0": 6680.62, "1": 3765.8, "2": 3774.63, "3": 3772.93, diff --git a/python/sglang/multimodal_gen/test/server/test_server_common.py b/python/sglang/multimodal_gen/test/server/test_server_common.py index a29f0606c..7cb1c713d 100644 --- a/python/sglang/multimodal_gen/test/server/test_server_common.py +++ b/python/sglang/multimodal_gen/test/server/test_server_common.py @@ -8,7 +8,6 @@ If the actual run is significantly better than the baseline, the improved cases from __future__ import annotations import os -from pathlib import Path from typing import Any, Callable import openai @@ -25,8 +24,6 @@ from sglang.multimodal_gen.test.server.test_server_utils import ( PerformanceValidator, ServerContext, ServerManager, - WarmupRunner, - download_image_from_url, get_generate_fn, ) from sglang.multimodal_gen.test.server.testcase_configs import ( @@ -37,7 +34,6 @@ from sglang.multimodal_gen.test.server.testcase_configs import ( ) from sglang.multimodal_gen.test.test_utils import ( get_dynamic_server_port, - is_image_url, wait_for_req_perf_record, ) @@ -91,8 +87,8 @@ def diffusion_server(case: DiffusionTestCase) -> ServerContext: if server_args.lora_path: extra_args += f" --lora-path {server_args.lora_path}" - if server_args.enable_warmup: - extra_args += f" --enable-warmup" + if server_args.warmup: + extra_args += f" --warmup" # Build custom environment variables env_vars = {} @@ -115,41 +111,6 @@ def diffusion_server(case: DiffusionTestCase) -> ServerContext: output_size = os.environ.get( "SGLANG_TEST_OUTPUT_SIZE", sampling_params.output_size ) - warmup = WarmupRunner( - port=ctx.port, - model=server_args.model_path, - prompt=sampling_params.prompt or "A colorful raccoon icon", - output_size=output_size, - output_format=sampling_params.output_format, - ) - if server_args.warmup > 0: - if sampling_params.image_path and case.sampling_params.prompt: - # Handle URL or local path - image_path_list = sampling_params.image_path - if not isinstance(image_path_list, list): - image_path_list = [image_path_list] - - new_image_path_list = [] - for image_path in image_path_list: - if is_image_url(image_path): - new_image_path_list.append( - download_image_from_url(str(image_path)) - ) - else: - path_obj = Path(image_path) - if not path_obj.exists(): - pytest.skip(f"{case.id}: file missing: {image_path}") - new_image_path_list.append(path_obj) - - image_path_list = new_image_path_list - - warmup.run_edit_warmups( - count=server_args.warmup, - edit_prompt=sampling_params.prompt, - image_path=image_path_list, - ) - else: - warmup.run_text_warmups(server_args.warmup) except Exception as exc: logger.error("Warm-up failed for %s: %s", case.id, exc) ctx.cleanup() diff --git a/python/sglang/multimodal_gen/test/server/test_server_utils.py b/python/sglang/multimodal_gen/test/server/test_server_utils.py index f20e9e9e0..5cbb364d6 100644 --- a/python/sglang/multimodal_gen/test/server/test_server_utils.py +++ b/python/sglang/multimodal_gen/test/server/test_server_utils.py @@ -18,7 +18,7 @@ from typing import Any, Callable, Sequence from urllib.request import urlopen import pytest -from openai import Client, OpenAI +from openai import Client from sglang.multimodal_gen.benchmarks.compare_perf import calculate_upper_bound from sglang.multimodal_gen.runtime.platforms import current_platform @@ -451,81 +451,6 @@ class ServerManager: return "" -class WarmupRunner: - """Handles warmup requests for a server.""" - - def __init__( - self, - port: int, - model: str, - prompt: str, - output_size: str, - output_format: str = None, - ): - self.client = OpenAI( - api_key="sglang-anything", - base_url=f"http://localhost:{port}/v1", - ) - self.model = model - self.prompt = prompt - self.output_size = output_size - self.output_format = output_format - - def run_text_warmups(self, count: int) -> None: - """Run text-to-image warmup requests.""" - if count <= 0: - return - - logger.info("[server-test] Running %s text warm-up(s)", count) - for _ in range(count): - result = self.client.images.generate( - model=self.model, - prompt=self.prompt, - n=1, - size=self.output_size, - response_format="b64_json", - ) - validate_image(result.data[0].b64_json) - - def run_edit_warmups( - self, - count: int, - edit_prompt: str, - image_path: Path, - ) -> None: - """Run image-edit warmup requests.""" - if count <= 0: - return - - if not isinstance(image_path, list): - image_path = [image_path] - - for image in image_path: - if not image.exists(): - logger.warning( - "[server-test] Skipping edit warmup: image missing at %s", image - ) - return - - logger.info("[server-test] Running %s edit warm-up(s)", count) - for _ in range(count): - images = [open(image, "rb") for image in image_path] - try: - result = self.client.images.edit( - model=self.model, - image=images, - prompt=edit_prompt, - n=1, - size=self.output_size, - response_format="b64_json", - output_format=self.output_format, - ) - finally: - for img in images: - img.close() - validate_image(result.data[0].b64_json) - - class PerformanceValidator: """Validates performance metrics against expectations.""" diff --git a/python/sglang/multimodal_gen/test/server/testcase_configs.py b/python/sglang/multimodal_gen/test/server/testcase_configs.py index 91743050e..07d12d5ad 100644 --- a/python/sglang/multimodal_gen/test/server/testcase_configs.py +++ b/python/sglang/multimodal_gen/test/server/testcase_configs.py @@ -98,7 +98,6 @@ class BaselineConfig: scenarios: dict[str, ScenarioConfig] step_fractions: Sequence[float] - warmup_defaults: dict[str, int] tolerances: ToleranceConfig improvement_threshold: float @@ -127,7 +126,6 @@ class BaselineConfig: return cls( scenarios=scenarios, step_fractions=tuple(data["sampling"]["step_fractions"]), - warmup_defaults=data["sampling"].get("warmup_requests", {}), tolerances=tolerances, improvement_threshold=data.get("improvement_reporting", {}).get( "threshold", 0.2 @@ -142,7 +140,6 @@ class DiffusionServerArgs: model_path: str # HF repo or local path modality: str = "image" # "image" or "video" or "3d" - warmup: int = 1 # number of warmup requests custom_validator: str | None = None # optional custom validator name # resources num_gpus: int = 1 @@ -161,7 +158,7 @@ class DiffusionServerArgs: None # Second LoRA adapter path for multi-LoRA testing ) # misc - enable_warmup: bool = False + warmup: bool = False dit_layerwise_offload: bool = False dit_offload_prefetch_size: int | float | None = None @@ -325,6 +322,7 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Qwen/Qwen-Image", modality="image", + warmup=True, ), T2I_sampling_params, ), @@ -334,22 +332,21 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ model_path="Qwen/Qwen-Image", modality="image", enable_cache_dit=True, + warmup=True, ), T2I_sampling_params, ), DiffusionTestCase( "flux_image_t2i", DiffusionServerArgs( - model_path="black-forest-labs/FLUX.1-dev", - modality="image", + model_path="black-forest-labs/FLUX.1-dev", modality="image", warmup=True ), T2I_sampling_params, ), DiffusionTestCase( "flux_2_image_t2i", DiffusionServerArgs( - model_path="black-forest-labs/FLUX.2-dev", - modality="image", + model_path="black-forest-labs/FLUX.2-dev", modality="image", warmup=True ), T2I_sampling_params, ), @@ -358,6 +355,7 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="black-forest-labs/FLUX.2-klein-4B", modality="image", + warmup=True, ), T2I_sampling_params, ), @@ -371,21 +369,21 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ modality="image", dit_layerwise_offload=True, dit_offload_prefetch_size=2, + warmup=True, ), T2I_sampling_params, ), DiffusionTestCase( "zimage_image_t2i", DiffusionServerArgs( - model_path="Tongyi-MAI/Z-Image-Turbo", - modality="image", + model_path="Tongyi-MAI/Z-Image-Turbo", modality="image", warmup=True ), T2I_sampling_params, ), DiffusionTestCase( "zimage_image_t2i_warmup", DiffusionServerArgs( - model_path="Tongyi-MAI/Z-Image-Turbo", modality="image", enable_warmup=True + model_path="Tongyi-MAI/Z-Image-Turbo", modality="image", warmup=True ), T2I_sampling_params, ), @@ -397,6 +395,7 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ modality="image", lora_path="reverentelusarca/elusarca-anime-style-lora-z-image-turbo", second_lora_path="tarn59/pixel_art_style_lora_z_image_turbo", + warmup=True, ), T2I_sampling_params, ), @@ -404,32 +403,28 @@ ONE_GPU_CASES_A: list[DiffusionTestCase] = [ DiffusionTestCase( "qwen_image_edit_ti2i", DiffusionServerArgs( - model_path="Qwen/Qwen-Image-Edit", - modality="image", + model_path="Qwen/Qwen-Image-Edit", modality="image", warmup=True ), TI2I_sampling_params, ), DiffusionTestCase( "qwen_image_edit_2509_ti2i", DiffusionServerArgs( - model_path="Qwen/Qwen-Image-Edit-2509", - modality="image", + model_path="Qwen/Qwen-Image-Edit-2509", modality="image", warmup=True ), MULTI_IMAGE_TI2I_sampling_params, ), DiffusionTestCase( "qwen_image_edit_2511_ti2i", DiffusionServerArgs( - model_path="Qwen/Qwen-Image-Edit-2511", - modality="image", + model_path="Qwen/Qwen-Image-Edit-2511", modality="image", warmup=True ), TI2I_sampling_params, ), DiffusionTestCase( "qwen_image_layered_i2i", DiffusionServerArgs( - model_path="Qwen/Qwen-Image-Layered", - modality="image", + model_path="Qwen/Qwen-Image-Layered", modality="image", warmup=True ), MULTI_FRAME_I2I_sampling_params, ), @@ -442,8 +437,8 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -454,9 +449,9 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", text_encoder_cpu_offload=True, + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -468,8 +463,8 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -484,10 +479,10 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=1, dynamic_lora_path="Cseti/Wan-LoRA-Arcane-Jinx-v1", + warmup=True, ), DiffusionSamplingParams( prompt="csetiarcane Nfj1nx with blue hair, a woman walking in a cyberpunk city at night", @@ -508,8 +503,7 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionTestCase( "flux_2_ti2i", DiffusionServerArgs( - model_path="black-forest-labs/FLUX.2-dev", - modality="image", + model_path="black-forest-labs/FLUX.2-dev", modality="image", warmup=True ), TI2I_sampling_params, ), @@ -518,8 +512,8 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="FastVideo/FastHunyuan-diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -531,8 +525,8 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.2-TI2V-5B-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), TI2V_sampling_params, ), @@ -541,8 +535,8 @@ ONE_GPU_CASES_B: list[DiffusionTestCase] = [ DiffusionServerArgs( model_path="FastVideo/FastWan2.2-TI2V-5B-FullAttn-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), TI2V_sampling_params, ), @@ -556,8 +550,8 @@ if not current_platform.is_hip(): DiffusionServerArgs( model_path="IPostYellow/TurboWan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -571,8 +565,8 @@ TWO_GPU_CASES_A = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.2-I2V-A14B-Diffusers", modality="video", - warmup=0, custom_validator="video", + warmup=True, ), TI2V_sampling_params, ), @@ -581,9 +575,9 @@ TWO_GPU_CASES_A = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.2-T2V-A14B-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -595,10 +589,10 @@ TWO_GPU_CASES_A = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.2-T2V-A14B-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, lora_path="Cseti/wan2.2-14B-Arcane_Jinx-lora-v1", + warmup=True, ), DiffusionSamplingParams( prompt="Nfj1nx with blue hair, a woman walking in a cyberpunk city at night", @@ -608,10 +602,10 @@ TWO_GPU_CASES_A = [ "wan2_1_t2v_14b_2gpu", DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-14B-Diffusers", - warmup=0, modality="video", num_gpus=2, custom_validator="video", + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -623,10 +617,10 @@ TWO_GPU_CASES_A = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-T2V-1.3B-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, cfg_parallel=True, + warmup=True, ), DiffusionSamplingParams( prompt=T2V_PROMPT, @@ -642,10 +636,10 @@ if not current_platform.is_hip(): DiffusionServerArgs( model_path="IPostYellow/TurboWan2.2-I2V-A14B-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, tp_size=2, + warmup=True, ), TURBOWAN_I2V_sampling_params, ) @@ -656,10 +650,10 @@ TWO_GPU_CASES_B = [ "wan2_1_i2v_14b_480P_2gpu", DiffusionServerArgs( model_path="Wan-AI/Wan2.1-I2V-14B-480P-Diffusers", - warmup=0, modality="video", custom_validator="video", num_gpus=2, + warmup=True, ), TI2V_sampling_params, ), @@ -669,10 +663,10 @@ TWO_GPU_CASES_B = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-I2V-14B-720P-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, lora_path="starsfriday/Wan2.1-Divine-Power-LoRA", + warmup=True, ), TI2V_sampling_params, ), @@ -681,9 +675,9 @@ TWO_GPU_CASES_B = [ DiffusionServerArgs( model_path="Wan-AI/Wan2.1-I2V-14B-720P-Diffusers", modality="video", - warmup=0, custom_validator="video", num_gpus=2, + warmup=True, ), TI2V_sampling_params, ), @@ -696,6 +690,7 @@ TWO_GPU_CASES_B = [ # test ring attn ulysses_degree=1, ring_degree=2, + warmup=True, ), T2I_sampling_params, ), @@ -706,6 +701,7 @@ TWO_GPU_CASES_B = [ modality="image", num_gpus=2, ulysses_degree=2, + warmup=True, ), T2I_sampling_params, ), @@ -715,6 +711,7 @@ TWO_GPU_CASES_B = [ model_path="black-forest-labs/FLUX.1-dev", modality="image", num_gpus=2, + warmup=True, ), T2I_sampling_params, ), @@ -725,6 +722,7 @@ TWO_GPU_CASES_B = [ modality="image", num_gpus=2, tp_size=2, + warmup=True, ), T2I_sampling_params, ),