Fix: Enable /v1/models endpoint for pure diffusion mode (#805)

Signed-off-by: majiayu000 <1835304752@qq.com>
This commit is contained in:
lif authored and GitHub committed 2026-03-28 22:17:38 +08:00
1 parent eced989b40
commit 1414195fbb
2 files changed
+14 -30

No files matched your search

@@ -168,7 +168,13 @@ def test_client(mock_async_diffusion):
app.state.engine_client = mock_async_diffusion
app.state.diffusion_engine = mock_async_diffusion # Also set for health endpoint
app.state.stage_configs = [SimpleNamespace(stage_type="diffusion")]
app.state.diffusion_model_name = "Qwen/Qwen-Image" # For models endpoint
from vllm.entrypoints.openai.models.protocol import BaseModelPath
from vllm_omni.entrypoints.openai.api_server import _DiffusionServingModels
app.state.openai_serving_models = _DiffusionServingModels(
[BaseModelPath(name="Qwen/Qwen-Image", model_path="Qwen/Qwen-Image")]
)
app.state.args = Namespace(
default_sampling_params='{"0": {"num_inference_steps":4, "guidance_scale":7.5}}',
max_generated_image_size=4096, # 64*64
+7 -29
View File
@@ -1207,38 +1207,16 @@ _remove_route_from_router(router, "/v1/models")
@router.get("/v1/models")
async def show_available_models(raw_request: Request) -> JSONResponse:
"""Show available models endpoint that works for both LLM and diffusion modes.
"""Show available models for both LLM and diffusion modes.
Returns model information in OpenAI-compatible format.
Delegates to state.openai_serving_models which is set to either
OpenAIServingModels (LLM) or _DiffusionServingModels (pure diffusion).
"""
# Check if we're in diffusion mode
diffusion_model_name = getattr(raw_request.app.state, "diffusion_model_name", None)
if diffusion_model_name is not None:
# Diffusion mode - return the loaded model
return JSONResponse(
content={
"object": "list",
"data": [
{
"id": diffusion_model_name,
"object": "model",
"created": 0,
"owned_by": "vllm-omni",
"permission": [],
}
],
}
)
# LLM mode - delegate to openai_serving_models
openai_serving_models = getattr(raw_request.app.state, "openai_serving_models", None)
if openai_serving_models is not None:
models = await openai_serving_models.show_available_models()
handler = getattr(raw_request.app.state, "openai_serving_models", None)
if handler is not None:
models = await handler.show_available_models()
return JSONResponse(content=models.model_dump())
return JSONResponse(
content={"object": "list", "data": []},
)
return JSONResponse(content={"object": "list", "data": []})
# Image generation API endpoints