Hackathon-IA-VisualNovel / pyproject.toml
WillHbx's picture
Add TTS
4750074
Raw
History Blame Contribute Delete
2.26 kB
[project]
name = "hackathon-ia-visualnovel"
version = "0.1.0"
description = "An AI-improvised, voice-or-text anime visual novel — Build Small Hackathon (Thousand Token Wood)."
readme = "README.md"
license = { text = "Apache-2.0" }
# 3.14 is pinned in .python-version. We allow >=3.11 so the project still installs if a heavy
# ML wheel (torch / llama-cpp-python / ctranslate2) doesn't yet ship a 3.14 build — just
# `uv python pin 3.12` and re-sync. The package itself is 3.11+ clean.
requires-python = ">=3.11"
dependencies = [
"gradio>=5.0",
"pydantic>=2.7",
"pillow>=10.0",
"huggingface-hub>=1.17.0",
"python-dotenv>=1.0",
"psutil>=5.9",
]
[project.optional-dependencies]
# Heavy backends are OPTIONAL so the mock loop installs in seconds. Add per platform — see README.
# uv sync --extra llamacpp # llama.cpp LLM (local; the Llama-Champion bonus)
# uv sync --extra transformers # HF transformers LLM (the ZeroGPU Space fallback)
# uv sync --extra image # SDXL-Turbo via diffusers
# uv sync --extra stt # faster-whisper microphone input
llamacpp = ["llama-cpp-python>=0.3.0"]
transformers = ["transformers>=4.44", "accelerate>=0.33", "torch>=2.3"]
image = ["diffusers>=0.38.0", "transformers>=4.44", "accelerate>=0.33", "torch>=2.3", "safetensors>=0.4", "rembg>=2.0", "peft>=0.11"]
stt = ["faster-whisper>=1.0", "sounddevice>=0.5.5"]
tts = ["kokoro-onnx>=0.3", "soundfile>=0.12"]
matting = ["transformers>=4.44", "torch>=2.3"] # BiRefNet for transparent sprites (Phase 2)
spaces = ["spaces>=0.30"] # ZeroGPU decorator on HF Spaces
modal = ["modal>=1.0"] # cloud GPU via Modal (LLM + painter)
dev = ["ruff>=0.6", "pytest>=8.0", "matplotlib>=3.9"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = ["E501", "E402"] # E501: long prompt/doc lines; E402: mode bootstrap before visualnovel imports
[tool.pytest.ini_options]
addopts = "-q"
testpaths = ["tests"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"pytest>=9.0.3",
"ruff>=0.15.15",
]
[tool.hatch.build.targets.wheel]
packages = ["visualnovel"]