[project] name = "property-map-video-tts" version = "0.1.0" description = "Qwen3-TTS narration generator for the homepage demo video." requires-python = ">=3.12,<3.13" dependencies = [ "qwen-tts>=0.1.1", # Host driver is CUDA 12.4 (see `nvidia-smi`). torch 2.7+ dropped cu124 # wheels, so we cap below that and pull the cu124 build from PyTorch's # own index (configured below). torchaudio must match torch's CUDA build # — the PyPI default ships a CUDA 13 binary that fails to load # libcudart.so.13 on this host. "torch>=2.5,<2.7", "torchaudio>=2.5,<2.7", "soundfile>=0.12", "numpy>=1.26", ] [project.optional-dependencies] # Flash-attention prebuilt wheel matched to torch 2.6 + cu12 + cp312, old # CXX ABI (PyTorch's cu124 wheel reports compiled_with_cxx11_abi() == False # and only exports the old-ABI c10::Error constructor). Pinned to # 2.7.4.post1 because 2.8.x's torch2.6/abiFALSE wheels were mislabelled — # they ship new-ABI symbols and fail to import. Building from source needs # nvcc which isn't on the host. Enable via `uv sync --extra gpu`; render.sh # does this automatically when nvidia-smi reports a GPU. gpu = [ "flash-attn @ https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1%2Bcu12torch2.6cxx11abiFALSE-cp312-cp312-linux_x86_64.whl ; sys_platform == 'linux' and platform_machine == 'x86_64'", ] [tool.uv] environments = ["sys_platform == 'linux' and python_version < '3.13'"] [tool.uv.sources] torch = [{ index = "pytorch-cu124" }] torchaudio = [{ index = "pytorch-cu124" }] [[tool.uv.index]] name = "pytorch-cu124" url = "https://download.pytorch.org/whl/cu124" explicit = true