Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions tests/entrypoints/openai_api/test_image_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@
import base64
import io
from argparse import Namespace
from types import SimpleNamespace

import pytest
from fastapi.testclient import TestClient
from PIL import Image
from pytest_mock import MockerFixture
from vllm import SamplingParams
from vllm.entrypoints.openai.models.protocol import BaseModelPath

from vllm_omni.entrypoints.openai.image_api_utils import (
encode_image_base64,
Expand Down Expand Up @@ -243,6 +245,30 @@ def test_models_endpoint_no_engine():
assert len(data["data"]) == 0


def test_get_engine_and_model_reads_base_model_paths_in_diffusion_mode():
"""Regression test for pure diffusion servers exposing base_model_paths."""
from vllm_omni.entrypoints.openai.api_server import (
_DiffusionServingModels,
_get_engine_and_model,
)

engine_client = SimpleNamespace(stage_list=["diffusion"])
state = SimpleNamespace(
engine_client=engine_client,
stage_configs=[{"stage_type": "diffusion"}],
openai_serving_models=_DiffusionServingModels(
[BaseModelPath(name="tencent/HunyuanImage-3.0-Instruct", model_path="/models/hunyuan")]
),
)
raw_request = SimpleNamespace(app=SimpleNamespace(state=state))

returned_engine, model_name, stage_types = _get_engine_and_model(raw_request)

assert returned_engine is engine_client
assert model_name == "tencent/HunyuanImage-3.0-Instruct"
assert stage_types == ["diffusion"]


def test_generate_single_image(test_client):
"""Test generating a single image"""
response = test_client.post(
Expand Down
4 changes: 4 additions & 0 deletions vllm_omni/entrypoints/openai/api_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,10 @@ class _DiffusionServingModels:
def __init__(self, base_model_paths: list[BaseModelPath]) -> None:
self._base_model_paths = base_model_paths

@property
def base_model_paths(self) -> list[BaseModelPath]:
return self._base_model_paths

async def show_available_models(self) -> ModelList:
return ModelList(
data=[
Expand Down