YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Synthetic Production Intelligence (SPI)
Evidence-backed orchestration for generative media production. Not a text-to-video wrapper: SPI plans a production as structured state, renders it through swappable model backends, verifies results with evidence-carrying metrics, and (planned) repairs only what failed.
V0.1 status (Phase 1 β honest ledger)
| Component | Status |
|---|---|
ProjectState (versioned, mutation log, transactional deltas) |
implemented |
| Evidence schema (PASS/REPAIR/REGENERATE/REPLAN/REJECT/UNRESOLVED/BLOCKED, evidence mandatory) | implemented |
ProductionGraph (DAG, topo sort, cycle rejection) |
implemented |
| Scheduler (priority, deps, retries, timing, cache hits) | implemented (mock lane) |
| Mock renderers + GenerationCache (Β§58) | implemented |
| Level-1 deterministic verification + adaptive evaluator routing | implemented |
| EvidenceFusion + MasterArbiter | implemented |
| IntentEngine / IdeaEngine / ConceptEngine | stubs (deterministic, no LLM) β real versions Phase 5 |
| OutputCompiler | stub (draft manifest only) |
| Real video backend (Wan 2.2 primary, LTX-2 secondary) | not started β Phase 2 |
| WorldEngine, StoryGraph, CausalGraph, RepairEngine, DirectorSim/Bench, 4K, audio | not started |
See docs/architecture.md for the component map and docs/research_report.md for the Phase-2
backend decision (Wan 2.2, Apache-2.0; LTX-2 as fast secondary).
Install & test
pip install -e ".[dev]"
pytest -q
Mock mode (SPI_MODE=mock equivalent: SPIApi(mode="mock")) needs no GPU.
Minimal end-to-end (mock lane)
from spi.api.server import SPIApi
api = SPIApi(mode="mock")
r = api.create_project("A cartographer returns to the lighthouse she haunted as a child; must: no dialogue")
pid = r["project_id"]
api.interpret_project(pid) # intent + constraints + idea budget
api.commit_concept(pid, "IDEA_001")
api.compile_production(pid) # scenes -> shots -> generation DAG
api.render_draft(pid) # mock renderer, cached
verdict = api.evaluate_draft(pid) # level-1 checks -> fusion -> arbiter
assert verdict["status"] in ("PASS", "REPAIR")
print(verdict["status"], verdict["evidence"][:1])
Operating modes
SPI_MODE=mockβ zero GPU, deterministic artifacts (current default)SPI_MODE=smallβ reserved for Wan 2.1-1.3B / LTX-Video-2B smoke tests (Phase 2)SPI_MODE=productionβ reserved for Wan 2.2 A14B (Phase 2+)
Budget policy
This repo is developed under SPI_INTERN_MODE=ultra_low: mock-first, cached research
(docs/model_registry.json), no training without explicit justification, one smoke test only
when necessary. Usage is tracked in artifacts/resource_ledger.json.
License
Code: Apache-2.0. Model backends carry their own licenses β see the registry.