[diffusion] CI: restore public Qwen-Image 2.1 TP2 E2E coverage (#40507)

Co-authored-by: Mick Qian <mickqian@users.noreply.github.com>
This commit is contained in:
Mick
2026-09-22 10:38:00 +08:00
committed by GitHub
co-authored by Mick Qian
parent 15eba3b464
commit a1b2b976fe
4 changed files with 26 additions and 26 deletions
@@ -105,12 +105,10 @@ replay only matching warmup signatures, including condition-prefix length;
other shapes run eagerly. VAE tiling is opt-in and can change numerical results. other shapes run eagerly. VAE tiling is opt-in and can change numerical results.
Do not infer compatibility from the older Qwen-Image row. Do not infer compatibility from the older Qwen-Image row.
Use an authorized local checkpoint with `--model-id Qwen-Image-2.1`. Use the public `Qwen/Qwen-Image-2.1` checkpoint; no Hugging Face token is required.
See the [Qwen-Image 2.1 cookbook](/cookbook/diffusion/Qwen-Image/Qwen-Image-2.1) See the [Qwen-Image 2.1 cookbook](/cookbook/diffusion/Qwen-Image/Qwen-Image-2.1)
for checkpoint layout and usage. This entry does not assert public weight for checkpoint layout and usage. The standard two-GPU E2E suite includes `qwen_image21_t2i_tp2`
availability. The standard two-GPU E2E suite includes `qwen_image21_t2i_tp2`
with TP2, 1024px/40-step generation, two requests, and image consistency checks. with TP2, 1024px/40-step generation, two requests, and image consistency checks.
Its runners need access to `Qwen/Qwen-Image-2.1`.
The additional opt-in HTTP cases check repeated generation, editing, and real The additional opt-in HTTP cases check repeated generation, editing, and real
RGBA alpha output from a local checkpoint: RGBA alpha output from a local checkpoint:
@@ -49,6 +49,7 @@ from sglang.multimodal_gen.test.test_utils import (
DEFAULT_FLUX_2_KLEIN_BASE_4B_MODEL_NAME_FOR_TEST, DEFAULT_FLUX_2_KLEIN_BASE_4B_MODEL_NAME_FOR_TEST,
DEFAULT_JOYAI_IMAGE_EDIT_MODEL_NAME_FOR_TEST, DEFAULT_JOYAI_IMAGE_EDIT_MODEL_NAME_FOR_TEST,
DEFAULT_MOVA_360P_MODEL_NAME_FOR_TEST, DEFAULT_MOVA_360P_MODEL_NAME_FOR_TEST,
DEFAULT_QWEN_IMAGE_21_MODEL_NAME_FOR_TEST,
DEFAULT_QWEN_IMAGE_EDIT_2509_MODEL_NAME_FOR_TEST, DEFAULT_QWEN_IMAGE_EDIT_2509_MODEL_NAME_FOR_TEST,
DEFAULT_QWEN_IMAGE_EDIT_2511_MODEL_NAME_FOR_TEST, DEFAULT_QWEN_IMAGE_EDIT_2511_MODEL_NAME_FOR_TEST,
DEFAULT_QWEN_IMAGE_EDIT_MODEL_NAME_FOR_TEST, DEFAULT_QWEN_IMAGE_EDIT_MODEL_NAME_FOR_TEST,
@@ -1141,26 +1142,25 @@ TWO_GPU_CASES = [
ring_degree=2, ring_degree=2,
), ),
), ),
# TODO: re-enable when the checkpoint is accessible to fork PR CI DiffusionTestCase(
# DiffusionTestCase( "qwen_image21_t2i_tp2",
# "qwen_image21_t2i_tp2", DiffusionServerArgs(
# DiffusionServerArgs( model_path=DEFAULT_QWEN_IMAGE_21_MODEL_NAME_FOR_TEST,
# model_path="Qwen/Qwen-Image-2.1", tp_size=2,
# tp_size=2, ulysses_degree=1,
# ulysses_degree=1, ring_degree=1,
# ring_degree=1, ),
# ), replace(
# replace( T2I_sampling_params,
# T2I_sampling_params, output_size="1024x1024",
# output_size="1024x1024", output_format="png",
# output_format="png", extras={"num_inference_steps": 40, "guidance_scale": 1, "seed": 42},
# extras={"num_inference_steps": 40, "guidance_scale": 1, "seed": 42}, ),
# ), perf_repeat_requests=2,
# perf_repeat_requests=2, run_perf_check=False,
# run_perf_check=False, run_component_accuracy_check=False,
# run_component_accuracy_check=False, run_t2v_input_reference_check=False,
# run_t2v_input_reference_check=False, ),
# ),
DiffusionTestCase( DiffusionTestCase(
"qwen_image_t2i_2_gpus_extra_high", "qwen_image_t2i_2_gpus_extra_high",
DiffusionServerArgs( DiffusionServerArgs(
@@ -206,9 +206,11 @@
"estimated_full_test_time_s": 65.6 "estimated_full_test_time_s": 65.6
}, },
"qwen_image21_t2i_tp2": { "qwen_image21_t2i_tp2": {
"expected_load_ms": 45596.77,
"notes": "H100 CI run 35549625911 attempt 3, job 106188864502, PR head 044e71f5ecb507ffdf66729f934b51c3dc68b59f; request 1 after server warmup, complete cached public model snapshot b3179ad355be050328e483a9dfdd9e60cd62adfa. Existing tolerances are unchanged.",
"stages_ms": {}, "stages_ms": {},
"denoise_step_ms": {}, "denoise_step_ms": {},
"expected_e2e_ms": 0.0, "expected_e2e_ms": 2914.82,
"expected_avg_denoise_ms": 0.0, "expected_avg_denoise_ms": 0.0,
"expected_median_denoise_ms": 0.0, "expected_median_denoise_ms": 0.0,
"estimated_full_test_time_s": 300.0 "estimated_full_test_time_s": 300.0
@@ -40,7 +40,7 @@ logger = init_logger(__name__)
# NPU/ascend) is read from sgl-project/ci-data-diffusion, where the GT-gen workflows # NPU/ascend) is read from sgl-project/ci-data-diffusion, where the GT-gen workflows
# publish. # publish.
SGL_TEST_FILES_CI_DATA_REPO = "sgl-project/ci-data-diffusion" SGL_TEST_FILES_CI_DATA_REPO = "sgl-project/ci-data-diffusion"
SGL_TEST_FILES_CI_DATA_REVISION = "252710158cd4c74b7604808a385e93f7bced6d28" SGL_TEST_FILES_CI_DATA_REVISION = "38ba32bd812b2dfb0eccc83ef063096c089e3389"
# The NPU pin is kept as a separate branch so ascend GT can be bumped independently # The NPU pin is kept as a separate branch so ascend GT can be bumped independently
# when it's regenerated on its own cadence. # when it's regenerated on its own cadence.