[diffusion] CI: deprecate WarmupRunner in CI (#18038)

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