+13








776c3a794e
Signed-off-by: JaredforReal <w13431838023@gmail.com> Signed-off-by: root <root@hk01dgx039.cm.cluster> Signed-off-by: tzhouam <tzhouam@connect.ust.hk> Signed-off-by: Taichang Zhou <tzhouam@connect.ust.hk> Signed-off-by: TangPeng <85704592@qq.com> Signed-off-by: XU Mingshi <91017482+mxuax@users.noreply.github.com> Signed-off-by: mxuax <mxuax@connect.ust.hk> Signed-off-by: Sihyeon Jang <sihyeon.jang@navercorp.com> Signed-off-by: zjy0516 <riverclouds.zhu@qq.com> Signed-off-by: iwzbi <wzbi@zju.edu.cn> Signed-off-by: ZeldaHuang <hzm414167@alibaba-inc.com> Signed-off-by: Yuhan Liu <30294295+liuyuhanalex@users.noreply.github.com> Signed-off-by: Alicia <115451386+congw729@users.noreply.github.com> Signed-off-by: samithuang <285365963@qq.com> Signed-off-by: linyueqian <linyueqian@outlook.com> Signed-off-by: David Chen <530634352@qq.com> Signed-off-by: yinpeiqi <yinpeiqi809@gmail.com> Signed-off-by: Didan Deng <33117903+wtomin@users.noreply.github.com> Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com> Signed-off-by: wangyu31577 <wangyu31577@hundsun.com> Signed-off-by: princepride <wangzhipeng628@gmail.com> Signed-off-by: John Liu BUAA <liukecheng97@gmail.com> Signed-off-by: Dinesh G <G.Dinesh@ibm.com> Signed-off-by: gDINESH13 <dinesh13g@gmail.com> Signed-off-by: root <root@hk01dgx028.cm.cluster> Signed-off-by: Zhou Taichang <tzhouam@connect.ust.hk> Co-authored-by: JaredforReal <w13431838023@gmail.com> Co-authored-by: root <root@hk01dgx039.cm.cluster> Co-authored-by: JustQJ <37905360+JustQJ@users.noreply.github.com> Co-authored-by: XU Mingshi <91017482+mxuax@users.noreply.github.com> Co-authored-by: Sihyeon Jang <uneedsihyeon@gmail.com> Co-authored-by: Jiangyun Zhu <riverclouds.zhu@qq.com> Co-authored-by: catcat <108673086+iwzbi@users.noreply.github.com> Co-authored-by: Ziming Huang <hzm414167@alibaba-inc.com> Co-authored-by: Yuhan Liu <30294295+liuyuhanalex@users.noreply.github.com> Co-authored-by: Alicia <115451386+congw729@users.noreply.github.com> Co-authored-by: Samit <285365963@qq.com> Co-authored-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com> Co-authored-by: WeiQing Chen <40507679+david6666666@users.noreply.github.com> Co-authored-by: Peiqi Yin <60515999+yinpeiqi@users.noreply.github.com> Co-authored-by: Didan Deng <33117903+wtomin@users.noreply.github.com> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com> Co-authored-by: wangyu <53896905+yenuo26@users.noreply.github.com> Co-authored-by: wangyu31577 <wangyu31577@hundsun.com> Co-authored-by: 汪志鹏 <wangzhipeng628@gmail.com> Co-authored-by: John Liu BUAA <liukecheng97@gmail.com> Co-authored-by: D!NE$H <67671800+gDINESH13@users.noreply.github.com> Co-authored-by: root <root@hk01dgx028.cm.cluster>
64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
import sys
|
|
from pathlib import Path
|
|
|
|
import numpy as np
|
|
import pytest
|
|
import torch
|
|
|
|
from vllm_omni.outputs import OmniRequestOutput
|
|
|
|
# ruff: noqa: E402
|
|
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
if str(REPO_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(REPO_ROOT))
|
|
|
|
from vllm_omni import Omni
|
|
|
|
# Use random weights model for CI testing (small, no authentication required)
|
|
models = ["linyueqian/stable_audio_random"]
|
|
|
|
|
|
@pytest.mark.parametrize("model_name", models)
|
|
def test_stable_audio_model(model_name: str):
|
|
m = Omni(model=model_name)
|
|
|
|
# Use minimal settings for testing
|
|
# Generate a short 2-second audio clip with minimal inference steps
|
|
audio_start_in_s = 0.0
|
|
audio_end_in_s = 2.0 # Short duration for fast testing
|
|
sample_rate = 44100 # Stable Audio uses 44100 Hz
|
|
|
|
outputs = m.generate(
|
|
"The sound of a dog barking",
|
|
negative_prompt="Low quality.",
|
|
num_inference_steps=4, # Minimal steps for speed
|
|
guidance_scale=7.0,
|
|
generator=torch.Generator("cuda").manual_seed(42),
|
|
num_outputs_per_prompt=1,
|
|
extra={
|
|
"audio_start_in_s": audio_start_in_s,
|
|
"audio_end_in_s": audio_end_in_s,
|
|
},
|
|
)
|
|
|
|
# Extract audio from OmniRequestOutput
|
|
assert outputs is not None
|
|
first_output = outputs[0]
|
|
assert first_output.final_output_type == "image" # Generic output type
|
|
assert hasattr(first_output, "request_output") and first_output.request_output
|
|
|
|
req_out = first_output.request_output[0]
|
|
assert isinstance(req_out, OmniRequestOutput)
|
|
assert hasattr(req_out, "images") and len(req_out.images) >= 1
|
|
|
|
# For stable audio, the "images" field contains audio numpy arrays
|
|
audio = req_out.images[0]
|
|
assert isinstance(audio, np.ndarray)
|
|
# audio shape: (batch, channels, samples)
|
|
# For stable-audio-open-1.0: sample_rate=44100, so 2 seconds = 88200 samples
|
|
assert audio.ndim == 3
|
|
assert audio.shape[0] == 1 # batch size
|
|
assert audio.shape[1] == 2 # stereo channels
|
|
expected_samples = int((audio_end_in_s - audio_start_in_s) * sample_rate)
|
|
assert audio.shape[2] == expected_samples # 88200 samples for 2 seconds
|