From 26c69f43329ab3e99d87792fab328d80ab210f90 Mon Sep 17 00:00:00 2001 From: Joshna Medisetty Date: Fri, 27 Mar 2026 06:35:46 +0000 Subject: [PATCH 1/6] steps = 5 Signed-off-by: Joshna Medisetty --- .../online_serving/test_nextstep_expansion.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/e2e/online_serving/test_nextstep_expansion.py diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py new file mode 100644 index 00000000000..0a8503dada2 --- /dev/null +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -0,0 +1,71 @@ +""" +Online serving E2E for NextStep-1.1 text-to-image (tensor parallel). +""" + +import os + +import pytest + +from tests.conftest import ( + OmniServer, + OmniServerParams, + OpenAIClientHandler, + dummy_messages_from_mix_data, +) +from tests.utils import hardware_marks + +# L4: 4 GPUs + TP=4; XPU B60: 2 cards (use num_cards={"cuda": 4, "xpu": 4} if needed) +FOUR_CARD_MARKS = hardware_marks( + res={"cuda": "L4", "xpu": "B60"}, + num_cards={"cuda": 4, "xpu": 2}, +) + +POSITIVE_PROMPT = "A small red barn in a snowy field, simple illustration." +NEGATIVE_PROMPT = "blurry, low quality" + +_DEFAULT_MODEL = "stepfun-ai/NextStep-1.1" + + +def _get_diffusion_feature_cases(model: str): + """Single online config: TP=4, explicit pipeline class.""" + return [ + pytest.param( + OmniServerParams( + model=model, + server_args=[ + "--tensor-parallel-size", + "4", + "--model-class-name", + "NextStep11Pipeline", + ], + ), + id="nextstep_tp4_pipeline", + marks=FOUR_CARD_MARKS, + ), + ] + + +@pytest.mark.advanced_model +@pytest.mark.diffusion +@pytest.mark.parametrize( + "omni_server", + _get_diffusion_feature_cases(model=os.environ.get("VLLM_TEST_NEXTSTEP_MODEL", _DEFAULT_MODEL)), + indirect=True, +) +def test_nextstep_11(omni_server: OmniServer, openai_client: OpenAIClientHandler): + messages = dummy_messages_from_mix_data(content_text=POSITIVE_PROMPT) + request_config = { + "model": omni_server.model, + "messages": messages, + "extra_body": { + "height": 256, + "width": 256, + "num_inference_steps": 5, + "guidance_scale": 5.0, + "guidance_scale_2": 1.0, + "negative_prompt": NEGATIVE_PROMPT, + "seed": 42, + }, + } + + openai_client.send_diffusion_request(request_config) From d95881f70f229f2ec446cdbd3cbc58b4139d89c8 Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Fri, 27 Mar 2026 09:11:19 -0700 Subject: [PATCH 2/6] Update test_nextstep_expansion.py Signed-off-by: Joshna-Medisetty --- tests/e2e/online_serving/test_nextstep_expansion.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py index 0a8503dada2..7a675813c24 100644 --- a/tests/e2e/online_serving/test_nextstep_expansion.py +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -17,7 +17,7 @@ # L4: 4 GPUs + TP=4; XPU B60: 2 cards (use num_cards={"cuda": 4, "xpu": 4} if needed) FOUR_CARD_MARKS = hardware_marks( res={"cuda": "L4", "xpu": "B60"}, - num_cards={"cuda": 4, "xpu": 2}, + num_cards={"cuda": 2, "xpu": 2}, ) POSITIVE_PROMPT = "A small red barn in a snowy field, simple illustration." @@ -58,9 +58,9 @@ def test_nextstep_11(omni_server: OmniServer, openai_client: OpenAIClientHandler "model": omni_server.model, "messages": messages, "extra_body": { - "height": 256, - "width": 256, - "num_inference_steps": 5, + "height": 512, + "width": 512, + "num_inference_steps": 10, "guidance_scale": 5.0, "guidance_scale_2": 1.0, "negative_prompt": NEGATIVE_PROMPT, From 11f8f259a2849e13a36b4a5173259ee0cbefb437 Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Wed, 1 Apr 2026 10:21:02 -0700 Subject: [PATCH 3/6] Update test_nextstep_expansion.py Signed-off-by: Joshna-Medisetty --- tests/e2e/online_serving/test_nextstep_expansion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py index 7a675813c24..a77226bb491 100644 --- a/tests/e2e/online_serving/test_nextstep_expansion.py +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -27,14 +27,14 @@ def _get_diffusion_feature_cases(model: str): - """Single online config: TP=4, explicit pipeline class.""" + """Single online config: TP=2, explicit pipeline class.""" return [ pytest.param( OmniServerParams( model=model, server_args=[ "--tensor-parallel-size", - "4", + "2", "--model-class-name", "NextStep11Pipeline", ], From 4bdaaa647af7eabb9a524fc86df57e4000a748e9 Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Wed, 1 Apr 2026 11:19:49 -0700 Subject: [PATCH 4/6] Update test_nextstep_expansion.py Signed-off-by: Joshna-Medisetty --- tests/e2e/online_serving/test_nextstep_expansion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py index a77226bb491..7a675813c24 100644 --- a/tests/e2e/online_serving/test_nextstep_expansion.py +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -27,14 +27,14 @@ def _get_diffusion_feature_cases(model: str): - """Single online config: TP=2, explicit pipeline class.""" + """Single online config: TP=4, explicit pipeline class.""" return [ pytest.param( OmniServerParams( model=model, server_args=[ "--tensor-parallel-size", - "2", + "4", "--model-class-name", "NextStep11Pipeline", ], From abada76c25d59966ef87c5f7773f82de922e56ec Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Wed, 1 Apr 2026 12:29:23 -0700 Subject: [PATCH 5/6] Update test_nextstep_expansion.py Signed-off-by: Joshna-Medisetty --- tests/e2e/online_serving/test_nextstep_expansion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py index 7a675813c24..7971c5d30ea 100644 --- a/tests/e2e/online_serving/test_nextstep_expansion.py +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -60,7 +60,7 @@ def test_nextstep_11(omni_server: OmniServer, openai_client: OpenAIClientHandler "extra_body": { "height": 512, "width": 512, - "num_inference_steps": 10, + "num_inference_steps": 2, "guidance_scale": 5.0, "guidance_scale_2": 1.0, "negative_prompt": NEGATIVE_PROMPT, From 7ff00b380d0f826b572dab59650acc8ab3821bc9 Mon Sep 17 00:00:00 2001 From: Joshna-Medisetty Date: Tue, 14 Apr 2026 14:57:43 -0700 Subject: [PATCH 6/6] Update test_nextstep_expansion.py Signed-off-by: Joshna-Medisetty --- tests/e2e/online_serving/test_nextstep_expansion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/online_serving/test_nextstep_expansion.py b/tests/e2e/online_serving/test_nextstep_expansion.py index 7971c5d30ea..cd3d7f9bca8 100644 --- a/tests/e2e/online_serving/test_nextstep_expansion.py +++ b/tests/e2e/online_serving/test_nextstep_expansion.py @@ -34,7 +34,7 @@ def _get_diffusion_feature_cases(model: str): model=model, server_args=[ "--tensor-parallel-size", - "4", + "2", "--model-class-name", "NextStep11Pipeline", ],