Don't ship broken AI animation. Multi-VLM verdict for rendered frame sequences.
Project description
Slate
Don't ship broken AI animation.
Slate is a multi-VLM verdict service for rendered animation. Give it a frame sequence and a manifest of what should be in it. Get a PASS/FAIL verdict backed by a quorum of local + cloud vision-language models, with a structured signal report.
Built for indie animators, virtual production teams, AI-cinematic creators, and ML training-data curators who can't keep eyeballing 200 shots.
What Slate catches that AI render tools don't
- Character lying horizontal, floating mid-air, or stuck in T-pose
- Character orientation doesn't match movement direction
- Ground contact missing — character hovering above the floor
- Wrong character identity (the manifest said hero A but hero B rendered)
- Debug-pink checker materials, missing textures, all-black frames
- Lighting / composition / atmosphere quality below a configurable threshold
- Missing landmarks the manifest required to be visible
Quick start
pip install slate-ai
# Make sure Ollama is running locally with gemma4:latest, or set
# NVIDIA_API_KEY for cloud verdicts.
slate verify \
--frames ./my_render \
--manifest ./shot.json
Output (truncated):
{
"verdict": "FAIL",
"shot_id": "village_walk_001",
"providers_consulted": ["gemma:local", "nvidia:nemotron-nano-12b-v2-vl"],
"failures": [
{"signal": "character_orientation", "value": "lying_horizontal", "frame": "frame_0360.png"},
{"signal": "ground_contact_visible", "value": false, "frame": "frame_0001.png"}
],
"quality_scores": {"lighting": 5, "composition": 4, "atmosphere": 3, "mood": 4, "coherence": 4}
}
See docs/quickstart.md for a full walkthrough.
How it works
Slate samples representative frames from your render (first/middle/last by default; configurable per manifest), asks each configured VLM provider a structured set of questions, fuses the answers into a single verdict, and writes a JSON report.
frames + manifest
|
v
+---------------+ +-------------------+ +-----------------------+
| frame sampler | -> | VLM provider(s) | -> | signal fusion + verdict|
+---------------+ +-------------------+ +-----------------------+
|
+-- gemma (local, Ollama)
+-- nvidia (BYO API key)
Frames stay on your hardware. Slate Core never uploads them anywhere you didn't configure.
Editions
| Edition | License | What you get |
|---|---|---|
| Core (this repo) | MIT | CLI, multi-VLM quorum (local Gemma + BYO NVIDIA primary + cross-check), signal set, schema validation, JSON output |
| Pro | Commercial | + Panel adversarial agent (catches "passes VLMs but still looks like AI slop"), evidence bundle generator, web dashboard |
| Studio | Commercial | + team seats, audit history, Slack/Discord integration, custom signal sets |
| Enterprise | Commercial | + self-hosted, SSO, SLA |
Pro / Studio / Enterprise are separate commercial offerings. Core is and will remain MIT.
Installing the VLM backends
Slate Core ships drivers for two backends. You configure one or both.
Local Gemma (free, no API key)
# Install Ollama (https://ollama.com)
ollama pull gemma4:latest
ollama serve # listens on localhost:11434
NVIDIA NIM (cloud, BYO key)
export NVIDIA_API_KEY=nvapi-...
# Slate uses nvidia/nemotron-nano-12b-v2-vl as primary and
# meta/llama-3.2-90b-vision-instruct as cross-check by default.
You pay NVIDIA directly. Slate never sees your key or your frames.
Project status
Pre-release. v0.1 carves the validation logic out of a working production pipeline (JonsStudio dogfood) and packages it for general use. See CHANGELOG.md.
Contributing
Issues and pull requests welcome. See CONTRIBUTING.md once it exists.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slate_ai-0.1.0.tar.gz.
File metadata
- Download URL: slate_ai-0.1.0.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14a4dd0362abdbc1a6d3d826ab0d6bc33a4f2010d05164090b25d8c460e45529
|
|
| MD5 |
cd0f31143228b98ae667bd7d3c52777e
|
|
| BLAKE2b-256 |
b76755a779e712c773c19a8d244d62c8c56879674ee750d540c67487715b983c
|
File details
Details for the file slate_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: slate_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c385942b97a44927ad5b769532090fdf66181a6ea46385796c939ec8faa7f4b
|
|
| MD5 |
bedaccf75515233e58123e99cfa917fb
|
|
| BLAKE2b-256 |
a3131115fdc9ef98d95aa24930eacb29a7a4b60903237fde23e903b771cc62c5
|