46 lines
2.3 KiB
Python
46 lines
2.3 KiB
Python
from pathlib import Path
|
|
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
app_host: str = Field(default="0.0.0.0", alias="APP_HOST")
|
|
app_port: int = Field(default=8000, alias="APP_PORT")
|
|
ws_gateway_host: str = Field(default="0.0.0.0", alias="WS_GATEWAY_HOST")
|
|
ws_gateway_port: int = Field(default=8010, alias="WS_GATEWAY_PORT")
|
|
worker_base_url: str = Field(default="http://127.0.0.1:8000", alias="WORKER_BASE_URL")
|
|
ws_poll_interval_sec: float = Field(default=1.0, alias="WS_POLL_INTERVAL_SEC")
|
|
edge_dispatch_host: str = Field(default="0.0.0.0", alias="EDGE_DISPATCH_HOST")
|
|
edge_dispatch_port: int = Field(default=8020, alias="EDGE_DISPATCH_PORT")
|
|
edge_max_dispatch_records: int = Field(default=2000, alias="EDGE_MAX_DISPATCH_RECORDS")
|
|
|
|
oss_enabled: bool = Field(default=False, alias="OSS_ENABLED")
|
|
oss_endpoint: str = Field(default="", alias="OSS_ENDPOINT")
|
|
oss_bucket: str = Field(default="", alias="OSS_BUCKET")
|
|
oss_access_key_id: str = Field(default="", alias="OSS_ACCESS_KEY_ID")
|
|
oss_access_key_secret: str = Field(default="", alias="OSS_ACCESS_KEY_SECRET")
|
|
oss_public_base_url: str = Field(default="", alias="OSS_PUBLIC_BASE_URL")
|
|
oss_prefix: str = Field(default="video-worker", alias="OSS_PREFIX")
|
|
|
|
output_dir: Path = Field(default=Path("./outputs"), alias="OUTPUT_DIR")
|
|
runtime_dir: Path = Field(default=Path("./runtime"), alias="RUNTIME_DIR")
|
|
sqlite_path: Path = Field(default=Path("./runtime/tasks.db"), alias="SQLITE_PATH")
|
|
|
|
ltx_model_dir: Path = Field(default=Path("./models/ltx"), alias="LTX_MODEL_DIR")
|
|
hunyuan_model_dir: Path = Field(default=Path("./models/hunyuan"), alias="HUNYUAN_MODEL_DIR")
|
|
|
|
default_width: int = Field(default=832, alias="DEFAULT_WIDTH")
|
|
default_height: int = Field(default=480, alias="DEFAULT_HEIGHT")
|
|
default_fps: int = Field(default=16, alias="DEFAULT_FPS")
|
|
default_duration: int = Field(default=5, alias="DEFAULT_DURATION")
|
|
default_steps_preview: int = Field(default=8, alias="DEFAULT_STEPS_PREVIEW")
|
|
default_steps_refine: int = Field(default=12, alias="DEFAULT_STEPS_REFINE")
|
|
|
|
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
|
|
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
|
|
|
|
|
settings = Settings()
|