AI video today is either hidden behind a paywall that gets more expensive the more you use it, or "free" in name only — the open models exist, but running one yourself means figuring out which model fits your hardware and wiring up the whole pipeline by hand. Fraime detects your hardware and picks the best open model it can actually run.
pip install fraime-sdk · MIT licensed · self-hosted, no token meteringIt's the friction and hardware guesswork standing between you and using them. Video creation without AI is still a slow, manual process — and "free" open source models still take a systems engineer to actually run.
And nobody should have to pay a token-metered paywall for something their own hardware can already do. Fraime's bet is that automatically matching hardware to the right model — instead of making a human do that matching by hand — is what actually makes self-hosted AI media generation practical, not just theoretically free. Video is the first medium supported, with more planned.
Three steps, none of them manual.
Accelerator (CUDA/MPS/CPU), VRAM, system RAM, and disk space — read straight off the machine it's running on.
Exact capabilities and VRAM figures compared against exact hardware numbers — not coarse tiers. No model fits? It tells you why instead of guessing.
Prompt fields and evaluation rules per video type shape the request; the video comes back as a local file or a presigned S3 URL.
The catalog only holds models that are unconditionally free to run — Apache-2.0/MIT, no MAU caps, no revenue thresholds. Matching happens on exact VRAM figures, with an optional safety margin reserved for real-world spikes like VAE decode.
The response reports which model actually ran — auto-selection doesn't
have to mean a mystery box. GET /config/models and GET /config/rules
let you inspect the exact catalog and prompt rules the running instance is using, any time.
# POST /generate curl -X POST http://127.0.0.1:8000/generate \ -H "Content-Type: application/json" \ -d '{ "video_type": "commercial_product_ad", "fields": { "subject": "a matte black ceramic mug", "action": "slowly rotates as steam rises", "scene": "a marble kitchen counter", "camera": "smooth slow orbit", "lighting": "controlled studio softbox", "style": "polished commercial product photography" }, "params": {"duration_s": 5, "fps": 16, "resolution": "768x512"} }' # the model that actually ran {"model": "Wan-AI/Wan2.2-TI2V-5B-Diffusers", ...}
Models ship in instructions/models.json — capabilities, VRAM requirements, license, style strengths. Extend it with the interactive define tool instead of hand-editing JSON.
instructions/rules.json defines the fields, style guidance, and evaluation criteria for each of the 13 video types — also editable through define.
GET /config/models and GET /config/rules return exactly what the running instance is configured with — no guessing or hardcoding it client-side.
Set CLOUD_S3_OUTPUT_BUCKET and generated videos upload straight to S3, with a presigned URL good for an hour, instead of piling up on local disk.
Its own setup, its own docs, its own version — pick what you need.
Hardware detection, model catalog, prompt-structure rules, and the /generate endpoint. Start here.
diffusers-compatible Hugging Face modelA typed Python client — build a request with typed models/enums instead of hand-writing JSON.
FraimeClient, typed fields/enums per video typeFraimeAuthError / FraimeAPIError / FraimeConnectionError instead of raw HTTP errorsAn MCP server exposing the API to agentic workflows, built directly on the SDK.
generate_video — every API param, with rich field descriptionslist_video_types, get_models_config, get_rules_config — introspect before generatingAuto-selected model, structured prompt, generated end-to-end — no manual pipeline wrangling.
The model picked depends on your own hardware, so results won't be byte-identical to this one. Watch the full demo →
Generated end-to-end on consumer hardware — no editing, no cherry-picked takes.
Self-hosted, MIT licensed, no per-token bill — pick a component and start.