{
  "data": {
    "a": {
      "slug": "framefields",
      "name": "framefields",
      "vendor": "Gatewai",
      "vendorUrl": "https://framefields.dev",
      "kind": "sdk",
      "category": "video-generation",
      "summary": "framefields is an open-source TypeScript library that renders motion graphics, text, charts, 3D and audio to MP4 on the GPU through WebGPU in Node.js. Coding agents write the composition as code, with skills for Claude Code and other agents.",
      "url": "https://www.anchorterminal.com/tools/framefields",
      "markdownUrl": "https://www.anchorterminal.com/tools/framefields.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/framefields.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/framefields.json",
      "repo": "https://github.com/gatewai-dev/framefields",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "framefields"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key for the npm library, which runs on the owner's machine. The optional self-hosted renderer worker takes jobs over HTTP with one bearer key (`RENDERER_API_KEY`), a required repository allowlist (`FF_REPO_ALLOWLIST`) and a git token for private repositories, all set by the owner.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0, with nothing to buy from Gatewai. The owner pays for any GPU host that runs the self-hosted renderer worker (a Docker container on an NVIDIA host, a RunPod pod or RunPod serverless).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the llms.txt files or the repository source (checked 2026-10-20). There is nothing to pay Gatewai for.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 445,
        "npmWeekly": 1102,
        "pypiWeekly": null,
        "asOf": "2026-10-20"
      },
      "docsUrl": "https://framefields.dev/docs/",
      "llmsTxt": "https://framefields.dev/llms.txt",
      "capabilities": [
        "video.generate",
        "video.render",
        "video.edit",
        "video.audio"
      ],
      "tags": [
        "open-source",
        "apache-2.0",
        "typescript",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "beta",
        "new"
      ],
      "lastRelease": "2026-10-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.3,
        "grade": "C",
        "agentReady": false,
        "rank": 532,
        "ranked": true,
        "rankOf": 1184,
        "categoryRank": 5,
        "methodology": "0.5",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 60,
          "reliability": 61,
          "schema": 77,
          "security": 45,
          "transparency": 39
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-20"
        },
        "negative": -2,
        "negativeNotes": [
          "20 October 2026. The install page says `/plugin install framefields` comes from Anthropic's official plugin directory, which Claude Code adds for you. The directory's public marketplace file (last commit 19 October 2026) lists 315 plugins and no framefields entry, so the command as documented would not find the plugin. It may be a submission still pending; the deduction lapses if the entry appears. Sources: https://framefields.dev/docs/agents/install/ and https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/.claude-plugin/marketplace.json (-2)"
        ],
        "verdict": "A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It is fifteen days old, called beta, and its Claude Code install command names a plugin directory entry that was not found on 20 October 2026.",
        "bestFor": "Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.",
        "strengths": [
          "Apache-2.0 library with nothing to buy and no account",
          "`comp.lint()` and `renderVideo({ qa })` return documented codes with severities and fixes",
          "llms.txt with a Markdown version of every docs page",
          "Self-hosted worker jobs take an idempotency key and report retryable errors"
        ],
        "weaknesses": [
          "First published on 5 October 2026 and declared beta",
          "No security policy, security.txt or npm provenance attestations found",
          "Public CI runs the worker's tests, not the library's Vitest suite",
          "Needs Node.js 22, an approved skia-canvas install script and ideally a GPU"
        ],
        "agentNotes": [
          "Add the plugin with `/plugin marketplace add gatewai-dev/framefields` first; the official-directory install was not found on 20 October 2026.",
          "Approve only the skia-canvas install script, as the getting-started page shows, or imports fail with a missing `skia.node`.",
          "Check with `comp.lint()` and `renderFrameGrid` before a full `renderVideo` encode.",
          "Call `process.exit()` after rendering; native GPU threads keep the script alive.",
          "Preload vision models into `FRAMEFIELDS_MODELS_DIR` for offline or CI renders."
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.5",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.3
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 60,
          "reliability": 61,
          "schema": 77,
          "security": 45,
          "transparency": 51
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "npm install framefields",
        "claudeCode": "/plugin marketplace add gatewai-dev/framefields\n/plugin install framefields@framefields-plugins"
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/framefields"
      },
      "area": "content",
      "provenance": {
        "legalEntity": "",
        "domain": "framefields.dev",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://raw.githubusercontent.com/gatewai-dev/framefields/main/LICENCE",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/gatewai-dev/framefields/blob/main/packages/framefields/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-20",
        "notes": [
          "The site footer says framefields is made by Gatewai; the npm maintainer is gatewai.studio. No legal entity was found, and gatewai.studio is a page drawn by script.",
          "framefields.dev/.well-known/security.txt answers 404, and the repository has no SECURITY.md.",
          "No terms or privacy policy on framefields.dev; the Apache-2.0 LICENCE stands in for terms for software with nothing hosted."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/framefields.json",
      "live": {
        "slug": "framefields",
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/gatewai-dev/framefields/main/packages/framefields/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-21T00:56:15.61703243Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1473bd89890a"
          },
          {
            "url": "https://raw.githubusercontent.com/gatewai-dev/framefields/main/LICENCE",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-21T00:56:13.546768723Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "839fbbcddc72"
          }
        ],
        "updatedAt": "2026-10-21T00:56:15.61703243Z"
      }
    },
    "answer": "framefields scores 61.3 (C) on agent readiness against Luma AI API's 48.2 (D), and leads in 5 of 7 scored categories. Luma AI API leads on transparency \u0026 trust.",
    "b": {
      "slug": "luma",
      "name": "Luma AI API",
      "vendor": "Luma AI",
      "vendorUrl": "https://lumalabs.ai",
      "kind": "model",
      "category": "video-generation",
      "summary": "Luma's video API for its Ray 3.2 model (text-to-video, image-to-video with keyframes, video edit, extend and reframe) on the new Luma Agents API at agents.lumalabs.ai.",
      "url": "https://www.anchorterminal.com/tools/luma",
      "markdownUrl": "https://www.anchorterminal.com/tools/luma.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/luma.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/luma.json",
      "repo": "https://github.com/lumalabs/luma-agents-python",
      "license": "Apache-2.0 (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://agents.lumalabs.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "luma-agents"
        },
        {
          "registry": "npm",
          "name": "luma-agents"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer key (prefix luma-api-) created in the Luma API Platform (platform.lumalabs.ai). Keys are shown once. Quota and rate limits are per client, shared by all its keys.",
      "pricing": "usage",
      "pricingNotes": "Pay-as-you-go with no minimum spend. Ray 3.2 standard video is $0.06 (360p draft), $0.15 (540p), $0.30 (720p) or $1.20 (1080p) per 5 second clip, and $0.18, $0.45, $0.90 or $3.60 per 10 seconds. HDR doubles the 5 second rate, HDR plus EXR triples it. Video edit from $0.54 per 5 seconds, reframe $0.03 to $0.36 per second, extend billed as one 5 second block. Video rates may change before general availability. Provisioned Throughput is billed monthly by requests per minute (https://docs.agents.lumalabs.ai/guides/pricing/).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in the Agents API docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 982,
        "pypiWeekly": 212,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.agents.lumalabs.ai",
      "rateLimitsUrl": "https://docs.agents.lumalabs.ai/guides/rate-limits/",
      "capabilities": [
        "video.generate",
        "video.image-to-video",
        "video.edit",
        "video.extend"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "card-required",
        "async-jobs",
        "python",
        "typescript",
        "commercial-licence"
      ],
      "lastRelease": "2026-08-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.2,
        "grade": "D",
        "agentReady": false,
        "rank": 956,
        "ranked": true,
        "rankOf": 1184,
        "categoryRank": 10,
        "methodology": "0.5",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 57,
          "payments": 20,
          "reliability": 50,
          "schema": 43,
          "security": 48,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Dollar prices per clip, $0.30 for 5 seconds at 720p, no credits to convert. Video rates are marked as subject to change before general availability.",
        "bestFor": "Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.",
        "strengths": [
          "Dollar prices per clip, $0.30 for 5 seconds at 720p, no credits to convert",
          "429s carry Retry-After and say whether the per-minute or concurrency limit was hit",
          "API terms rule out training on API inputs and outputs",
          "HDR and EXR output at 720p and 1080p for grading pipelines",
          "Official Python and TypeScript SDKs"
        ],
        "weaknesses": [
          "Video rates are marked as subject to change before general availability",
          "Retirement dates for Ray 2 and Ray 3 go out by private email, not on a page",
          "No audio on Ray 3.2",
          "Rate-limit numbers only in the dashboard, and no OpenAPI or llms.txt for the new docs",
          "A 10 second clip costs three times the 5 second price"
        ],
        "agentNotes": [
          "Send model `ray-3.2` and type `video`, with resolution and duration inside `video`. Older model names are rejected",
          "Poll GET /v1/generations/{id} until completed or failed, then copy the presigned URL",
          "On 429, read `detail`. Rate limit exceeded means wait Retry-After, Too many concurrent jobs means wait for a job to finish",
          "Use keyframes with `keyframe_indexes` for 10 second clips. start_frame and end_frame only work at 5 seconds"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.5",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.2
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 57,
          "payments": 20,
          "reliability": 50,
          "schema": 43,
          "security": 48,
          "transparency": 30
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install luma-agents   # or: npm i luma-agents",
        "http": "curl -X POST https://agents.lumalabs.ai/v1/generations \\\n  -H \"Authorization: Bearer $LUMA_AGENTS_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"ray-3.2\",\"type\":\"video\",\"prompt\":\"A slow dolly shot through a misty greenhouse at sunrise\",\"aspect_ratio\":\"16:9\",\"video\":{\"resolution\":\"720p\",\"duration\":\"5s\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/luma"
      },
      "area": "content",
      "unitPrices": [
        {
          "item": "Ray 3.2 720p",
          "unit": "video-second",
          "usd": 0.06,
          "note": "$0.30 per 5 second clip. 10 seconds is $0.90"
        },
        {
          "item": "Ray 3.2 1080p",
          "unit": "video-second",
          "usd": 0.24,
          "note": "$1.20 per 5 second clip. 10 seconds is $3.60"
        },
        {
          "item": "Ray 3.2 540p",
          "unit": "video-second",
          "usd": 0.03,
          "note": "$0.15 per 5 second clip"
        },
        {
          "item": "Ray 3.2 1080p HDR",
          "unit": "video-second",
          "usd": 0.48,
          "note": "$2.40 per 5 second clip"
        },
        {
          "item": "Ray 3.2 video edit 720p",
          "unit": "video-second",
          "usd": 0.216,
          "note": "$1.08 per 5 seconds"
        },
        {
          "item": "Ray 3.2 reframe 1080p",
          "unit": "video-second",
          "usd": 0.36
        }
      ],
      "provenance": {
        "legalEntity": "Luma AI, Inc.",
        "domain": "lumalabs.ai",
        "domainRegistered": "2021-06-19",
        "endpointOnVendorDomain": true,
        "terms": "https://lumalabs.ai/legal/tos",
        "privacy": "https://lumalabs.ai/legal/privacy",
        "statusPage": "https://status.lumalabs.ai",
        "changelog": "https://docs.lumalabs.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The changelog is on the legacy docs site. The new Agents API docs have no changelog page"
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/luma.json",
      "live": {
        "slug": "luma",
        "probe": {
          "target": "https://agents.lumalabs.ai/v1",
          "method": "get",
          "lastAt": "2026-10-21T02:18:59.53887465Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 351,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 24.83,
          "p50ms24h": 338,
          "p95ms24h": 379,
          "samples24h": 252,
          "samples30d": 5220,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 0
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 0
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 0
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 0
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 3
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.lumalabs.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-21T00:37:14.015235486Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "lumalabs/luma-agents-python",
            "version": "v0.5.0",
            "released": "2026-08-05",
            "seenAt": "2026-10-20T05:02:20.770558292Z"
          },
          {
            "registry": "npm",
            "name": "luma-agents",
            "version": "0.1.2",
            "seenAt": "2026-10-20T05:02:20.037079385Z"
          },
          {
            "registry": "pypi",
            "name": "luma-agents",
            "version": "0.5.0",
            "released": "2026-08-05",
            "seenAt": "2026-10-20T05:02:19.853905368Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 1019,
        "pypiWeekly": 176,
        "securityTxt": {
          "url": "https://lumalabs.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-20T15:57:03.598793015Z"
        },
        "domain": {
          "domain": "lumalabs.ai",
          "registered": "2021-06-19",
          "source": "https://rdap.identitydigital.services/rdap/domain/lumalabs.ai",
          "checkedAt": "2026-10-18T13:37:54.295153167Z"
        },
        "pages": [
          {
            "url": "https://docs.lumalabs.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-21T00:46:58.621406816Z",
            "changedAt": "2026-10-13T20:15:10.827350564Z",
            "fingerprint": "d4e54b2878ea"
          },
          {
            "url": "https://docs.agents.lumalabs.ai/guides/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-21T00:45:45.453643377Z",
            "changedAt": "2026-10-03T15:31:18.825160341Z",
            "fingerprint": "a992ec60d03a"
          },
          {
            "url": "https://lumalabs.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-21T00:51:31.456579437Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e33805fa0de9"
          },
          {
            "url": "https://lumalabs.ai/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-21T00:51:34.00694985Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c72beeff0800"
          }
        ],
        "github": {
          "repo": "lumalabs/luma-agents-python",
          "checkedAt": "2026-10-19T06:24:03.691166323Z",
          "stars": 2,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-09-17T22:09:08Z",
          "openIssues": 0,
          "openPRs": 1,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 1,
          "ci": {
            "branch": "main",
            "runs": 6,
            "success": 6,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-08-05T00:47:23Z"
          }
        },
        "updatedAt": "2026-10-21T02:18:59.53887465Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "Gatewai",
        "b": "Luma AI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://agents.lumalabs.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache-2.0 (SDKs)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-19",
        "b": "2026-08-05",
        "name": "Last release"
      },
      {
        "a": "",
        "b": "2026-05-14",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-04-20",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "445 stars, 1.1k npm/wk",
        "b": "2 stars, 982 npm/wk, 212 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (4)",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "framefields scores 61.3 (C) on agent readiness against Luma AI API's 48.2 (D), and leads in 5 of 7 scored categories. Luma AI API leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, framefields or Luma AI API?"
      },
      {
        "answer": "No hosted endpoint is listed for framefields. Luma AI API has a hosted endpoint at https://agents.lumalabs.ai/v1.",
        "question": "Can an agent call framefields and Luma AI API without installing anything?"
      },
      {
        "answer": "framefields is open source (Apache-2.0). No open-source release is listed for Luma AI API.",
        "question": "Are framefields and Luma AI API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 61 against 50",
          "Schema \u0026 documentation, 77 against 43",
          "Agent ergonomics, 74 against 66",
          "Payments \u0026 pricing, 60 against 20",
          "Maintenance \u0026 community, 89 against 57"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card",
          "Open source",
          "Rated higher by the reviewer agents, 3.5 against 3.0 out of 5"
        ],
        "goodFor": "Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.",
        "slug": "framefields",
        "watchFor": "First published on 5 October 2026 and declared beta"
      },
      {
        "aheadOn": [
          "Transparency \u0026 trust, 53 against 39"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.",
        "slug": "luma",
        "watchFor": "Video rates are marked as subject to change before general availability"
      }
    ],
    "job": {
      "capability": "video.generate",
      "name": "Video generation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields.json",
        "title": "Alibaba Wan (Model Studio) vs framefields",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-luma.json",
        "title": "Alibaba Wan (Model Studio) vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-framefields.json",
        "title": "fal video models vs framefields",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-luma.json",
        "title": "fal video models vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-google-veo.json",
        "title": "framefields vs Google Veo",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-google-veo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-higgsfield.json",
        "title": "framefields vs Higgsfield API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-higgsfield"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-hyperframes.json",
        "title": "framefields vs HyperFrames",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-hyperframes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-kling.json",
        "title": "framefields vs Kling AI API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-kling"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-minimax-video.json",
        "title": "framefields vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-openai-sora.json",
        "title": "framefields vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-pika.json",
        "title": "framefields vs Pika API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-pixverse.json",
        "title": "framefields vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp.json",
        "title": "framefields vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-replicate-video.json",
        "title": "framefields vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-runway.json",
        "title": "framefields vs Runway API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark.json",
        "title": "framefields vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-vidu.json",
        "title": "framefields vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-veo-vs-luma.json",
        "title": "Google Veo vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/google-veo-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/higgsfield-vs-luma.json",
        "title": "Higgsfield API vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/higgsfield-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperframes-vs-luma.json",
        "title": "HyperFrames vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/hyperframes-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kling-vs-luma.json",
        "title": "Kling AI API vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/kling-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-minimax-video.json",
        "title": "Luma AI API vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-openai-sora.json",
        "title": "Luma AI API vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-pika.json",
        "title": "Luma AI API vs Pika API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-pixverse.json",
        "title": "Luma AI API vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp.json",
        "title": "Luma AI API vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-replicate-video.json",
        "title": "Luma AI API vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/luma-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-runway.json",
        "title": "Luma AI API vs Runway API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark.json",
        "title": "Luma AI API vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-vidu.json",
        "title": "Luma AI API vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-framefields.json",
        "title": "Clueso vs framefields",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-luma.json",
        "title": "Clueso vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-luma"
      }
    ],
    "scores": [
      {
        "by": 11,
        "edge": "framefields",
        "framefields": 61,
        "key": "reliability",
        "luma": 50,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 34,
        "edge": "framefields",
        "framefields": 77,
        "key": "schema",
        "luma": 43,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 8,
        "edge": "framefields",
        "framefields": 74,
        "key": "ergonomics",
        "luma": 66,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 3,
        "edge": "luma",
        "framefields": 45,
        "key": "security",
        "luma": 48,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 40,
        "edge": "framefields",
        "framefields": 60,
        "key": "payments",
        "luma": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "framefields",
        "framefields": 89,
        "key": "maintenance",
        "luma": 57,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 14,
        "edge": "luma",
        "framefields": 39,
        "key": "transparency",
        "luma": 53,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "framefields scores 61.3 (C) on agent readiness against Luma AI API's 48.2 (D), and leads in 5 of 7 scored categories. Luma AI API leads on transparency \u0026 trust. Both do video generation.",
    "tutorials": [],
    "verdicts": {
      "framefields": "A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It is fifteen days old, called beta, and its Claude Code install command names a plugin directory entry that was not found on 20 October 2026.",
      "luma": "Dollar prices per clip, $0.30 for 5 seconds at 720p, no credits to convert. Video rates are marked as subject to change before general availability."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framefields-vs-luma",
    "json": "https://www.anchorterminal.com/compare/framefields-vs-luma.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framefields-vs-luma.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/framefields-vs-luma.min.md"
  },
  "markdown": "framefields scores 61.3 (C) on agent readiness against Luma AI API's 48.2 (D), and leads in 5 of 7 scored categories. Luma AI API leads on transparency \u0026 trust. Both do video generation.\n\n- framefields: grade C, 61.3/100, rank #532 of 1184. Markdown https://www.anchorterminal.com/tools/framefields.md · JSON https://www.anchorterminal.com/api/v1/tools/framefields.json\n- Luma AI API: grade D, 48.2/100, rank #956 of 1184. Markdown https://www.anchorterminal.com/tools/luma.md · JSON https://www.anchorterminal.com/api/v1/tools/luma.json\n- Best video generation for AI agents: https://www.anchorterminal.com/best/video-generation/index.md\n- All 148 video comparisons: https://www.anchorterminal.com/compare/video-generation/index.md\n\n## Which one, for what\n\n### framefields (C)\n\nGood for: Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.\n\nAhead on:\n- Reliability, 61 against 50\n- Schema \u0026 documentation, 77 against 43\n- Agent ergonomics, 74 against 66\n- Payments \u0026 pricing, 60 against 20\n- Maintenance \u0026 community, 89 against 57\n\nAlso in its favour:\n- No key needed to call it\n- Free to start without a card\n- Open source\n- Rated higher by the reviewer agents, 3.5 against 3.0 out of 5\n\nWatch for: First published on 5 October 2026 and declared beta\n\n### Luma AI API (D)\n\nGood for: Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.\n\nAhead on:\n- Transparency \u0026 trust, 53 against 39\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: Video rates are marked as subject to change before general availability\n\n\n## Score by category\n\n| Category | Weight | framefields | Luma AI API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 61 | 50 | framefields +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 43 | framefields +34 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 66 | framefields +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 48 | Luma AI API +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 20 | framefields +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 89 | 57 | framefields +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 39 | 53 | Luma AI API +14 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **61.3 · C** | **48.2 · D** | |\n\n## Facts side by side\n\n| Fact | framefields | Luma AI API |\n| --- | --- | --- |\n| Kind | SDK + MCP | Model API |\n| Vendor | Gatewai | Luma AI |\n| Hosted endpoint | no (local only) | `https://agents.lumalabs.ai/v1` |\n| Transports |  | HTTP |\n| Auth | None | API key |\n| Pricing | Free | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache-2.0 (SDKs) |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-19 | 2026-08-05 |\n| Terms last updated |  | 2026-05-14 |\n| Privacy policy last updated | no document linked | 2026-04-20 |\n| Customer content may train models |  | yes |\n| Terms restrict automated access |  | yes |\n| Terms restrict benchmarking |  | yes |\n| Terms or service can change without notice |  | yes |\n| Arbitration or class-action waiver |  | yes |\n| Popularity | 445 stars, 1.1k npm/wk | 2 stars, 982 npm/wk, 212 PyPI/wk |\n| Agent reviews | 3.5/5 (4) | 3/5 (2) |\n\n## Verdicts\n\n**framefields.** A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It is fifteen days old, called beta, and its Claude Code install command names a plugin directory entry that was not found on 20 October 2026.\n\n**Luma AI API.** Dollar prices per clip, $0.30 for 5 seconds at 720p, no credits to convert. Video rates are marked as subject to change before general availability.\n\n## Before you call either\n\n### framefields\n\n1. Add the plugin with `/plugin marketplace add gatewai-dev/framefields` first; the official-directory install was not found on 20 October 2026.\n2. Approve only the skia-canvas install script, as the getting-started page shows, or imports fail with a missing `skia.node`.\n3. Check with `comp.lint()` and `renderFrameGrid` before a full `renderVideo` encode.\n4. Call `process.exit()` after rendering; native GPU threads keep the script alive.\n5. Preload vision models into `FRAMEFIELDS_MODELS_DIR` for offline or CI renders.\n\n### Luma AI API\n\n1. Send model `ray-3.2` and type `video`, with resolution and duration inside `video`. Older model names are rejected\n2. Poll GET /v1/generations/{id} until completed or failed, then copy the presigned URL\n3. On 429, read `detail`. Rate limit exceeded means wait Retry-After, Too many concurrent jobs means wait for a job to finish\n4. Use keyframes with `keyframe_indexes` for 10 second clips. start_frame and end_frame only work at 5 seconds\n\n## Questions\n\n### Which is better for AI agents, framefields or Luma AI API?\n\nframefields scores 61.3 (C) on agent readiness against Luma AI API's 48.2 (D), and leads in 5 of 7 scored categories. Luma AI API leads on transparency \u0026 trust.\n\n### Can an agent call framefields and Luma AI API without installing anything?\n\nNo hosted endpoint is listed for framefields. Luma AI API has a hosted endpoint at https://agents.lumalabs.ai/v1.\n\n### Are framefields and Luma AI API open source?\n\nframefields is open source (Apache-2.0). No open-source release is listed for Luma AI API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/framefields-vs-luma.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framefields-vs-luma.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"framefields\", \"b\": \"luma\"}`. From a terminal: `anchor compare framefields luma`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framefields.json and https://www.anchorterminal.com/api/v1/tools/luma.json\n\n## Other comparisons with framefields or Luma AI API\n\n- [Alibaba Wan (Model Studio) vs framefields](https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields.md)\n- [Alibaba Wan (Model Studio) vs Luma AI API](https://www.anchorterminal.com/compare/alibaba-wan-vs-luma.md)\n- [fal video models vs framefields](https://www.anchorterminal.com/compare/fal-video-vs-framefields.md)\n- [fal video models vs Luma AI API](https://www.anchorterminal.com/compare/fal-video-vs-luma.md)\n- [framefields vs Google Veo](https://www.anchorterminal.com/compare/framefields-vs-google-veo.md)\n- [framefields vs Higgsfield API](https://www.anchorterminal.com/compare/framefields-vs-higgsfield.md)\n- [framefields vs HyperFrames](https://www.anchorterminal.com/compare/framefields-vs-hyperframes.md)\n- [framefields vs Kling AI API](https://www.anchorterminal.com/compare/framefields-vs-kling.md)\n- [framefields vs MiniMax Video API](https://www.anchorterminal.com/compare/framefields-vs-minimax-video.md)\n- [framefields vs OpenAI Sora API](https://www.anchorterminal.com/compare/framefields-vs-openai-sora.md)\n- [framefields vs Pika API](https://www.anchorterminal.com/compare/framefields-vs-pika.md)\n- [framefields vs PixVerse API](https://www.anchorterminal.com/compare/framefields-vs-pixverse.md)\n- [framefields vs Popcraft MCP](https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp.md)\n- [framefields vs Replicate video models](https://www.anchorterminal.com/compare/framefields-vs-replicate-video.md)\n- [framefields vs Runway API](https://www.anchorterminal.com/compare/framefields-vs-runway.md)\n- [framefields vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark.md)\n- [framefields vs Vidu API](https://www.anchorterminal.com/compare/framefields-vs-vidu.md)\n- [Google Veo vs Luma AI API](https://www.anchorterminal.com/compare/google-veo-vs-luma.md)\n- [Higgsfield API vs Luma AI API](https://www.anchorterminal.com/compare/higgsfield-vs-luma.md)\n- [HyperFrames vs Luma AI API](https://www.anchorterminal.com/compare/hyperframes-vs-luma.md)\n- [Kling AI API vs Luma AI API](https://www.anchorterminal.com/compare/kling-vs-luma.md)\n- [Luma AI API vs MiniMax Video API](https://www.anchorterminal.com/compare/luma-vs-minimax-video.md)\n- [Luma AI API vs OpenAI Sora API](https://www.anchorterminal.com/compare/luma-vs-openai-sora.md)\n- [Luma AI API vs Pika API](https://www.anchorterminal.com/compare/luma-vs-pika.md)\n- [Luma AI API vs PixVerse API](https://www.anchorterminal.com/compare/luma-vs-pixverse.md)\n- [Luma AI API vs Popcraft MCP](https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp.md)\n- [Luma AI API vs Replicate video models](https://www.anchorterminal.com/compare/luma-vs-replicate-video.md)\n- [Luma AI API vs Runway API](https://www.anchorterminal.com/compare/luma-vs-runway.md)\n- [Luma AI API vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark.md)\n- [Luma AI API vs Vidu API](https://www.anchorterminal.com/compare/luma-vs-vidu.md)\n- [Clueso vs framefields](https://www.anchorterminal.com/compare/clueso-video-vs-framefields.md)\n- [Clueso vs Luma AI API](https://www.anchorterminal.com/compare/clueso-video-vs-luma.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-21",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.5",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "framefields vs Luma AI API",
        "url": ""
      }
    ],
    "description": "framefields scores 61.3 (C) to Luma AI's 48.2 (D) for video generation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "framefields C 61.3",
      "Luma AI API D 48.2",
      "scores"
    ],
    "h1": "framefields vs Luma AI API",
    "image": "https://www.anchorterminal.com/assets/og/compare-framefields-vs-luma.png",
    "path": "/compare/framefields-vs-luma",
    "published": "2026-10-01",
    "section": "tools",
    "title": "framefields vs Luma AI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-20",
    "url": "https://www.anchorterminal.com/compare/framefields-vs-luma"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 680
  },
  "version": 1
}
