[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "vllm-omni" version = "0.14.0" description = "A framework for efficient model inference with omni-modality models" readme = "README.md" requires-python = ">=3.10,<3.14" license = {text = "Apache-2.0"} authors = [ {name = "vLLM-Omni Team"} ] keywords = ["vllm", "multimodal", "diffusion", "transformer", "inference", "serving"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ # Core runtime dependencies (required for actual usage) "omegaconf>=2.3.0", "librosa>=0.11.0", "resampy>=0.4.3", "diffusers>=0.36.0", "accelerate==1.12.0", "gradio==5.50", "soundfile>=0.13.1", "cache-dit==1.2.0", "tqdm>=4.66.0", "torchsde>=0.2.6", # Required for Stable Audio scheduler "fa3-fwd==0.0.1", # flash attention 3, maintained by @ZJY0516 "openai-whisper>=20250625", "imageio[ffmpeg]>=2.37.2", "onnxruntime>=1.19.0", "sox>=1.5.0", # "vllm==0.14.0", # TODO: fix the entrypoints overwrite problem ] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.0.0", "mypy==1.11.1", "pre-commit==4.0.1", "openai-whisper>=20250625", "psutil>=7.2.0", "soundfile>=0.13.1", "imageio[ffmpeg]>=0.6.0", "opencv-python>=4.12.0.88", "mooncake-transfer-engine==0.3.8.post1" ] docs = [ "mkdocs>=1.5.0", "mkdocs-api-autonav", "mkdocs-material", "mkdocstrings-python", "mkdocs-gen-files", "mkdocs-awesome-nav", "mkdocs-glightbox", "mkdocs-git-revision-date-localized-plugin", "mkdocs-minify-plugin", "regex", "ruff", "pydantic", ] [project.urls] Homepage = "https://github.com/vllm-project/vllm-omni" Repository = "https://github.com/vllm-project/vllm-omni" Documentation = "https://vllm-omni.readthedocs.io" "Bug Tracker" = "https://github.com/vllm-project/vllm-omni/issues" [project.scripts] vllm = "vllm_omni.entrypoints.cli.main:main" vllm-omni = "vllm_omni.entrypoints.cli.main:main" [tool.setuptools.packages.find] where = ["."] include = ["vllm_omni*"] [tool.setuptools.package-data] "vllm_omni.model_executor.stage_configs" = ["*.yaml"] [tool.ruff] line-length = 120 exclude = [ ".eggs", ".git", ".hg", ".mypy_cache", ".tox", ".venv", "build", "dist", "vllm_omni.egg-info", ] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort (handled separately, but included for compatibility) "N", # pep8-naming "UP", # pyupgrade ] ignore = [ "E203", # whitespace before ':' (conflicts with black) # W503 is not needed in ruff as it's compatible with black by default "N801", # class names should use CapWords convention "N802", # function name should follow snake_case "N806", # variable in function should follow snake_case "N812", # lowercase imported as non-lowercase: functional as F ] [tool.ruff.lint.per-file-ignores] "examples/**" = ["E501"] # Allow long lines in examples "tests/**" = ["E501"] # Allow long lines in tests [tool.mypy] python_version = "3.12, 3.13" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true warn_unreachable = true strict_equality = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py", "*_test.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = [ "--strict-markers", "--strict-config", "--cov=vllm_omni", "--cov-report=term-missing", "--cov-report=html", "--cov-report=xml", ] markers = [ # ci/cd required "core_model: Core model tests (run in each PR)", # function module markers "diffusion: Diffusion model tests", "omni: Omni model tests", "cache: Cache backend tests", "parallel: Parallelism/distributed tests", # platform markers "cpu: Tests that run on CPU", "gpu: Tests that run on GPU (auto-added)", "cuda: Tests that run on CUDA (auto-added)", "rocm: Tests that run on AMD/ROCm (auto-added)", "npu: Tests that run on NPU/Ascend (auto-added)", # specified computation resources marks (auto-added) "H100: Tests that require H100 GPU", "L4: Tests that require L4 GPU", "MI325: Tests that require MI325 GPU (AMD/ROCm)", "A2: Tests that require A2 NPU", "A3: Tests that require A3 NPU", "distributed_cuda: Tests that require multi cards on CUDA platform", "distributed_rocm: Tests that require multi cards on ROCm platform", "distributed_npu: Tests that require multi cards on NPU platform", "skipif_cuda: Skip if the num of CUDA cards is less than the required", "skipif_rocm: Skip if the num of ROCm cards is less than the required", "skipif_npu: Skip if the num of NPU cards is less than the required", # more detailed markers "slow: Slow tests (may skip in quick CI)", "benchmark: Benchmark tests", ] [tool.typos.default] extend-ignore-identifiers-re = [ ".*_thw", ".*thw", "ein", ".*arange", ".*MoBA", ".*temperal_downsample", ".*nothink.*", ".*NOTHINK.*", ".*nin.*", "Ono_Anna", ]