Files
2026-09-08 10:30:26 +08:00

112 lines
3.1 KiB
Python

"""
Configuration module for vLLM-Omni.
"""
from vllm_omni.config.lora import LoRAConfig
from vllm_omni.config.model import OmniModelConfig
from vllm_omni.config.omni_config import (
BaseVllmOmniStageConfig,
OmniStageCacheConfig,
OmniStageConnectorConfig,
OmniStageDiffusionParallelConfig,
OmniStageLoadConfig,
OmniStageModelConfig,
OmniStageParallelConfig,
OmniStageRuntimeConfig,
OmniStageSchedulerConfig,
StageConfigType,
VllmOmniARStageConfig,
VllmOmniConfig,
VllmOmniDiffusionStageConfig,
VllmOmniGenerationStageConfig,
VllmOmniOrchestratorConfig,
)
from vllm_omni.config.stage_config import (
PIPELINE_WIDE_ENGINE_FIELDS,
DeployConfig,
PipelineConfig,
StageConfig,
StageDeployConfig,
StageExecutionType,
StagePipelineConfig,
StageType,
load_deploy_config,
merge_pipeline_deploy,
)
from vllm_omni.config.yaml_util import (
create_config,
load_yaml_config,
merge_configs,
to_dict,
)
# StageConfigFactory / register_pipeline pull pipeline_registry, which eagerly
# imports PI0_PIPELINE → diffusion.data. Keep those lazy so
# `from vllm_omni.config.lora import LoRAConfig` (used while data.py is still
# loading) cannot close a circular import through DiffusionOutput.
_LAZY_ATTRS = {
"OmniConfigResolution": ("vllm_omni.config.resolver", "OmniConfigResolution"),
"StageConfigFactory": ("vllm_omni.config.config_factory", "StageConfigFactory"),
"register_pipeline": ("vllm_omni.config.pipeline_registry", "register_pipeline"),
"resolve_omni_config": ("vllm_omni.config.resolver", "resolve_omni_config"),
}
__all__ = [
# Legacy model-level configs.
"LoRAConfig",
"OmniModelConfig",
# Structured Omni config entry points.
"VllmOmniConfig",
"BaseVllmOmniStageConfig",
"VllmOmniARStageConfig",
"VllmOmniGenerationStageConfig",
"VllmOmniDiffusionStageConfig",
"StageConfigType",
"OmniConfigResolution",
"resolve_omni_config",
# Structured Omni sub-configs.
"OmniStageCacheConfig",
"OmniStageConnectorConfig",
"OmniStageDiffusionParallelConfig",
"OmniStageLoadConfig",
"OmniStageModelConfig",
"VllmOmniOrchestratorConfig",
"OmniStageParallelConfig",
"OmniStageRuntimeConfig",
"OmniStageSchedulerConfig",
# Legacy pipeline/stage deploy config surface.
"PIPELINE_WIDE_ENGINE_FIELDS",
"DeployConfig",
"PipelineConfig",
"StageConfig",
"StageConfigFactory",
"StageDeployConfig",
"StageType",
"StageExecutionType",
"StagePipelineConfig",
"load_deploy_config",
"merge_pipeline_deploy",
"register_pipeline",
# YAML utility helpers.
"create_config",
"load_yaml_config",
"merge_configs",
"to_dict",
]
def __getattr__(name: str):
spec = _LAZY_ATTRS.get(name)
if spec is None:
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
module_name, attr_name = spec
import importlib
value = getattr(importlib.import_module(module_name), attr_name)
globals()[name] = value
return value
def __dir__() -> list[str]:
return sorted(set(__all__) | set(globals()))