Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slate_ai-0.1.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slate_ai-0.1.0-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

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

Hashes for slate_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 14a4dd0362abdbc1a6d3d826ab0d6bc33a4f2010d05164090b25d8c460e45529
MD5 cd0f31143228b98ae667bd7d3c52777e
BLAKE2b-256 b76755a779e712c773c19a8d244d62c8c56879674ee750d540c67487715b983c

See more details on using hashes here.

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

Hashes for slate_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c385942b97a44927ad5b769532090fdf66181a6ea46385796c939ec8faa7f4b
MD5 bedaccf75515233e58123e99cfa917fb
BLAKE2b-256 a3131115fdc9ef98d95aa24930eacb29a7a4b60903237fde23e903b771cc62c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page