From 0849c5efd87404b6e27f4df2c43d2b7baab83990 Mon Sep 17 00:00:00 2001 From: Lingfeng Zhang <48312954+lcukyfuture@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:21:04 +0800 Subject: [PATCH] [Test] Add L4 diffusion feature test for LongCat-Image (#1970) Signed-off-by: lcukyfuture Signed-off-by: Lingfeng Zhang <48312954+lcukyfuture@users.noreply.github.com> --- .../test_longcat_image_expansion.py | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tests/e2e/online_serving/test_longcat_image_expansion.py diff --git a/tests/e2e/online_serving/test_longcat_image_expansion.py b/tests/e2e/online_serving/test_longcat_image_expansion.py new file mode 100644 index 000000000..161e7cd2e --- /dev/null +++ b/tests/e2e/online_serving/test_longcat_image_expansion.py @@ -0,0 +1,83 @@ +""" +Recommended tests of diffusion features that are available in online serving mode +and are supported by the following model: +- LongCat-Image: text-to-image with single prompt input +Coverage: +- CPU offloading (model-level sequential offload via --enable-cpu-offload) +- Cache-DiT +- SP (Ulysses) + +This validates: + - Successful image generation at the expected 768x1344 resolution with recommended feature combinations +""" + +import pytest + +from tests.conftest import ( + OmniServer, + OmniServerParams, + OpenAIClientHandler, + dummy_messages_from_mix_data, +) +from tests.utils import hardware_marks + +TEXT_TO_IMAGE_PROMPT = ( + "A cinematic illustration of a cat typing on a silver laptop, soft window light, highly detailed." +) +NEGATIVE_PROMPT = "blurry, low quality, distorted, oversaturated" +SINGLE_CARD_FEATURE_MARKS = hardware_marks(res={"cuda": "H100"}) +PARALLEL_FEATURE_MARKS = hardware_marks(res={"cuda": "H100"}, num_cards=2) + + +def _get_diffusion_feature_cases(model: str): + """Return diffusion feature cases for LongCat-Image.""" + return [ + pytest.param( + OmniServerParams( + model=model, + server_args=["--enable-cpu-offload"], + ), + id="single_card_001", + marks=SINGLE_CARD_FEATURE_MARKS, + ), + pytest.param( + OmniServerParams( + model=model, + server_args=[ + "--cache-backend", + "cache_dit", + "--ulysses-degree", + "2", + ], + ), + id="parallel_001", + marks=PARALLEL_FEATURE_MARKS, + ), + ] + + +@pytest.mark.advanced_model +@pytest.mark.diffusion +@pytest.mark.parametrize( + "omni_server", + _get_diffusion_feature_cases("meituan-longcat/LongCat-Image"), + indirect=True, +) +def test_longcat_image(omni_server: OmniServer, openai_client: OpenAIClientHandler): + """Test the recommended feature combinations for LongCat-Image.""" + messages = dummy_messages_from_mix_data(content_text=TEXT_TO_IMAGE_PROMPT) + + request_config = { + "model": omni_server.model, + "messages": messages, + "extra_body": { + "height": 768, + "width": 1344, + "num_inference_steps": 2, + "negative_prompt": NEGATIVE_PROMPT, + "guidance_scale": 4.0, + "seed": 42, + }, + } + + openai_client.send_diffusion_request(request_config)