Spaces:
Running on Zero
Running on Zero
| [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"] | |