diff --git a/scripts/ci/utils/diffusion/comparison_configs.json b/scripts/ci/utils/diffusion/comparison_configs.json index 95d4a4f6e..8c198e1bf 100644 --- a/scripts/ci/utils/diffusion/comparison_configs.json +++ b/scripts/ci/utils/diffusion/comparison_configs.json @@ -186,6 +186,34 @@ "extra_env": {} } } + }, + { + "id": "minimax_h3_t2va_5s", + "model": "MiniMaxAI/MiniMax-H3", + "task": "text-to-video", + "prompt": "At night, while their owner sleeps in a bedroom, three cats march in loudly playing tiny brass instruments, then abruptly file out.", + "width": 1344, + "height": 768, + "num_frames": 124, + "fps": 24, + "num_inference_steps": 50, + "seed": 1101, + "num_gpus": 4, + "sglang_request_extra": { + "task": "t2va", + "conditions": [], + "target": {"short_edge": 768, "aspect_ratio": "16:9", "duration_seconds": 5.0}, + "flow_shift": 12.0, + "audio_flow_shift": 3.0, + "num_frames": null, + "fps": null + }, + "frameworks": { + "sglang": { + "serve_args": "--warmup-mode server --model-variant fl2va --tp-size 2 --ulysses-degree 2 --performance-mode speed --enable-torch-compile false", + "extra_env": {} + } + } } ] } diff --git a/scripts/ci/utils/diffusion/run_comparison.py b/scripts/ci/utils/diffusion/run_comparison.py index 6bfe6dd0b..62c64c963 100644 --- a/scripts/ci/utils/diffusion/run_comparison.py +++ b/scripts/ci/utils/diffusion/run_comparison.py @@ -362,6 +362,16 @@ def _build_sglang_payload(case: dict) -> dict: ): if key in case: payload[key] = case[key] + + # Model-specific request fields outside the common schema -- MiniMax-H3 + # derives its shape from `target` and rejects an explicit num_frames, so a + # case needs to both add keys and drop common ones. A null value removes + # the key rather than sending null. + for key, value in (case.get("sglang_request_extra") or {}).items(): + if value is None: + payload.pop(key, None) + else: + payload[key] = value return payload