[Bugfix] Keep --no-guardrails out of diffusion stage config (#7917)

Signed-off-by: levius <2114377220@qq.com>
This commit is contained in:
Sun authored and GitHub committed 2026-09-21 19:18:30 +00:00
1 parent 473da2cf82
commit 381b12fa87
2 files changed
+26 -2

No files matched your search

+24 -1
View File
@@ -15,7 +15,10 @@ import pytest
from pytest_mock import MockerFixture
from vllm.v1.engine.utils import EngineZmqAddresses
from vllm_omni.config.omni_config import VllmOmniDiffusionStageConfig
from vllm_omni.config.omni_config import (
VllmOmniDiffusionStageConfig,
normalize_and_validate_diffusion_engine_ingress_kwargs,
)
from vllm_omni.config.resolver import OmniConfigResolution
from vllm_omni.engine.stage_engine_startup import StageReplicaResources
from vllm_omni.engine.stage_runtime import StageEngineLaunch
@@ -87,6 +90,26 @@ def _parse_serve_args(argv: list[str]) -> TrackingNamespace:
return parser.parse_args(argv)
def test_no_guardrails_is_only_forwarded_as_model_config(mocker: MockerFixture) -> None:
"""The CLI alias must not reach the strict diffusion config validator."""
parser = TrackingArgumentParser()
subparsers = parser.add_subparsers(dest="subparser")
OmniServeCommand().subparser_init(subparsers)
args = parser.parse_args(["serve", "fake-model", "--omni", "--no-guardrails"])
assert args.get_explicit_kwargs_dict()["no_guardrails"] is True
# Keep the real CLI parser and config validator, but do not start a server.
args.headless = True
mocker.patch.dict("os.environ", {"VLLM_DISABLE_LOG_LOGO": "1"})
mocker.patch("vllm_omni.entrypoints.cli.serve.run_headless")
OmniServeCommand.cmd(args)
explicit = args.get_explicit_kwargs_dict()
normalized = normalize_and_validate_diffusion_engine_ingress_kwargs(explicit, stage_id=0)
assert normalized["model_config"]["guardrails"] is False
assert "no_guardrails" not in explicit
def test_omni_serve_requires_model_when_none_provided() -> None:
"""Regression for https://github.com/vllm-project/vllm-omni/issues/4158:
``vllm serve --omni`` with no model must fail fast instead of silently
+2 -1
View File
@@ -149,7 +149,8 @@ class OmniServeCommand(CLISubcommand):
args.model_config = model_config
explicit_keys = getattr(args, "explicit_keys", None)
if explicit_keys is not None:
args.explicit_keys = explicit_keys | {"model_config"}
# --no-guardrails is a CLI-only alias, not a diffusion engine arg.
args.explicit_keys = (explicit_keys - {"no_guardrails"}) | {"model_config"}
if args.headless:
run_headless(args)