diff --git a/catalogue/PROVENANCE.md b/catalogue/PROVENANCE.md index f50dbb8..2e76ab4 100644 --- a/catalogue/PROVENANCE.md +++ b/catalogue/PROVENANCE.md @@ -101,9 +101,8 @@ https://platform.claude.com/docs/en/models/sonnet-5-5/whats-new-sonnet-5-5 ## `"anthropic/claude-sonnet-5": {` -$2/$10 is the standard rate, not a live discount: it launched as an -introductory rate and Anthropic made it permanent, cancelling the -announced step up to $3/$15. Do not restore the higher card. +$2/$10 per million input/output tokens is Anthropic's published regular rate. +Do not substitute an obsolete higher rate. https://platform.claude.com/docs/en/about-claude/pricing ## `"anthropic/claude-fable-5.1": {` @@ -134,11 +133,12 @@ https://platform.claude.com/docs/en/models/opus-5-5/migration-guide Google's cache model is read + hourly storage (no one-time write premium that matches `cacheWrite` semantics), so the field is omitted. -Steady-state rates. Google is promoting $0.75 in / $3.75 out / $0.075 -cacheRead through 2026-12-31; these are the prices that apply from -2027-01-01. Checking Google's page before then will show the lower -set — that is the promotion, not a correction. Gemini 3.8 Flash is GA, -and this exact id is live on both Vercel AI Gateway and OpenRouter. +The intrinsic cost records Google's published regular rates: $1.50 input, +$7.50 output, and $0.15 cached input per million tokens. Promotional rates +and their expiry dates are excluded. This evidence applies to Google's +rates; each serving provider's regular prices need its own evidence. +Gemini 3.8 Flash is GA, and this exact id is listed on both Vercel AI Gateway +and OpenRouter. https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash https://ai.google.dev/gemini-api/docs/pricing https://vercel.com/ai-gateway/models/gemini-3.8-flash @@ -391,9 +391,11 @@ Represented as flat at the 1MP baseline. Verified 2026-09-02. OpenRouter `supported_parameters.input_references` 0–8 (2026-09-02). As on Flux 2 Pro. -## `constraints: { min_edge: 256, max_edge: 1440 },` +## `constraints: null,` -Same envelope as Flux 2 Pro pending a vendor spec for Max. +The inherited Flux 2 Pro edge envelope was unverified for Max and is withdrawn. +See the 2026-10-13 media qualifications below for the independently sourced +fal endpoint bounds. ## `providers: {` @@ -571,8 +573,8 @@ https://vercel.com/ai-gateway/models/veo-3.1-generate-001 ## `fal: {` -fal.ai — image-to-video endpoint (capability is keyed into the id; -t2v is a separate `fal-ai/veo3.1` endpoint, not catalogued). Rate +fal.ai — image-to-video endpoint `fal-ai/veo3.1/image-to-video`; the +separate text-to-video endpoint `fal-ai/veo3.1` is also catalogued. Rate matrix is identical to the Vercel AI Gateway's: $0.40/s audio and $0.20/s silent at 720p/1080p, $0.60/$0.40 at 4K. https://fal.ai/models/fal-ai/veo3.1/image-to-video @@ -605,7 +607,7 @@ Google — Veo 3.1 Lite The budget Veo: 720p/1080p only, 4/6/8s, native audio. Rates identical on Vercel AI Gateway and fal (verified 2026-09-02). Vercel AI Gateway supports both text and image input (FAQ verified 2026-09-07); the fal binding -below requires an image. Hosted GG's narrower wire is a host concern. +requires an image. ## `"alibaba/wan-3.0": {` @@ -702,3 +704,299 @@ https://fal.ai/models/xai/grok-imagine-video/v1.5/image-to-video VERIFY before prod: models.dev lists no per-1M price for gemini-embedding-2 yet; using the gemini-embedding-001 family input rate ($0.15 / 1M) as a conservative stand-in. + +## Text labs and Vercel endpoints (2026-10-13) + +Text cards identify the lab named by their existing first-party release source: +OpenAI, Anthropic, or Google. Their exact serving IDs are verified against +[Vercel's public model discovery](https://ai-gateway.vercel.sh/v1/models), +which lists all 17 recorded text models. These identifiers record availability, +not a routing preference. Existing model release dates are unchanged. Standard +serving prices, bands and limits are qualified separately below. + +## fal input variants (2026-10-13) + +Bindings list the text and image variants documented on their exact fal API +pages. Each endpoint includes its own source URL; existing `references` fields +remain unchanged. GPT Image 2's ID is corrected to `openai/gpt-image-2` from +[fal's API example](https://fal.ai/models/openai/gpt-image-2/api); the overview's +hand-written quick start still shows `fal-ai/gpt-image-2`, which disagrees with +the generated API documentation. The generated endpoint-specific API example +is the more specific source. This correction does not change prices. + +## Tripo rig check + +[Tripo's rig-check documentation](https://developers.tripo3d.ai/en/docs/animations-rig-check) +identifies the operation and lab but does not establish its first public release +day. It carries `basis: provider_endpoint` and `date: null`, as do the rigging +endpoints; a consumer must not substitute its own integration date. + +## Media endpoint parameters and limits (2026-10-13) + +The recorded fal image, video and 3D variants now include native parameter facts +from their endpoint-specific API pages and public OpenAPI documents. Each +endpoint's `source_url` identifies that variant; a parameter with a different +source carries its own `source_url`. Names such as `image_size.width` denote +native nested fields. An `image_size` preset enum is the published string-option +list, not a complete validator for its string-or-object input. + +Model-specific `x-fal` size metadata takes precedence over generic `ImageSize` +component bounds. The generic component alone does not establish a model's +intrinsic envelope. Area and aspect bounds are recorded only where the exact +endpoint publishes them. In particular: + +- [Seedream 5.0 Lite's input schema](https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image/api) + explicitly states a 2560×1440 to 4096×4096 total-area range. Its below-floor + scaling behavior is separate from that supported output range. +- Seedream edit's ten references and Grok Image edit's five references come from + their exact endpoint schema descriptions, which are more specific than the + missing JSON `maxItems` keywords. Nano Banana 2 and Pro's fourteen-reference + limits come from their respective [Nano Banana 2 edit overview](https://fal.ai/models/fal-ai/nano-banana-2/edit) + and [Nano Banana Pro edit overview](https://fal.ai/models/fal-ai/nano-banana-pro/edit). +- [Flux Pro's edit overview](https://fal.ai/models/fal-ai/flux-2-pro/edit) publishes + nine references and 9MP total input. Flux Max's corresponding reference count + is unspecified. Neither edit schema publishes the generation variant's + `x-fal` dimension extension, so those generation bounds are not copied to edit. +- Flux and Recraft do not publish a `num_images` parameter in these endpoint + schemas. Unpublished seed bounds and reference counts remain absent. A missing + fact does not establish unlimited input or an intrinsic model limit. + +### Intrinsic envelope corrections + +[BytePlus's Seedance 2.0 documentation](https://docs.byteplus.com/en/docs/modelark/seedance-2-0) +and its [video-generation tutorial](https://docs.byteplus.com/id/docs/modelark/video-generation-tutorial) +establish the 4–15-second duration range and six aspect ratios: 21:9, 16:9, 4:3, +1:1, 3:4 and 9:16. The old five-second minimum and incomplete ratio list are +corrected. The exact fal text and image variants independently agree. + +Gemini 3 Pro Image's inherited 1536-pixel edge limit is withdrawn. Its +[fal generation schema](https://fal.ai/models/fal-ai/nano-banana-pro/api) and +[edit schema](https://fal.ai/models/fal-ai/nano-banana-pro/edit/api) document +1K/2K/4K resolution choices. Those tier labels do not establish a universal +per-edge maximum: dimensions also depend on aspect ratio. No replacement +intrinsic envelope is inferred from another model's output-size table. + +Flux Max's copied Pro edge envelope is also withdrawn. The +[lab overview](https://docs.bfl.ml/flux_2/flux2_overview) says up to 4MP without +establishing an exact pixel conversion. The +[fal generation schema](https://fal.ai/models/fal-ai/flux-2-max/api) independently +publishes 256–2560 per edge, steps of 16, and 4,194,304 total pixels. These are +provider-endpoint facts, not a conversion of the lab's 4MP statement. + +### Variable fal image prices + +The existing baseline `usd`, `type` and average-cost fields are unchanged. +Additive fields describe the published variable portions of those schedules: + +- [Flux Pro](https://fal.ai/models/fal-ai/flux-2-pro/edit) bills $0.03 for the first + output megapixel and $0.015 per additional input/output megapixel, rounded up. + Its examples price 1024×1024 at $0.03 and 1920×1080 at $0.045. The first-unit + scope is `output`; no precise universal pixels-per-megapixel conversion is + inferred from those examples. +- [Flux Max](https://fal.ai/models/fal-ai/flux-2-max/edit) bills $0.07 for the first + processed megapixel and $0.03 for each additional megapixel, including inputs. + Its first-unit scope is `processed`. No rounding rule is copied from Pro. +- [Nano Banana 2](https://fal.ai/models/fal-ai/nano-banana-2) retains $0.08 per image. + Published multipliers are 0.75× for 0.5K, 1.5× for 2K and 2× for 4K. Web search + adds $0.015 and high thinking adds $0.002 when used. The + [edit page](https://fal.ai/models/fal-ai/nano-banana-2/edit) states the same terms. +- [Nano Banana Pro](https://fal.ai/models/fal-ai/nano-banana-pro) retains $0.15 per + image; 4K costs 2× and web search adds $0.015 when used. Its + [edit page](https://fal.ai/models/fal-ai/nano-banana-pro/edit) agrees. No additional + thinking fee or special 2K multiplier is inferred. + +### Native 3D operation facts + +Tripo generation, rigging and rig-check variants carry their own native API paths, +version enums and parameter facts. The sources are Tripo's separate +[P text-generation](https://developers.tripo3d.ai/en/docs/generation-text-to-model/p), +[P image-generation](https://developers.tripo3d.ai/en/docs/generation-image-to-model/p), +[P multiview](https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/p), +[standard text-generation](https://developers.tripo3d.ai/en/docs/generation-text-to-model/standard), +[standard image-generation](https://developers.tripo3d.ai/en/docs/generation-image-to-model/standard), +[standard multiview](https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/standard), +[rigging](https://developers.tripo3d.ai/en/docs/animations-rig) and +[rig-check](https://developers.tripo3d.ai/en/docs/animations-rig-check) pages. +Multiview is image input; its native path distinguishes the operation. Its +task-ID, four-slot legacy and named-view input forms do not justify one universal +array cardinality. H3.1's 2,000,000-face detailed bound does not replace its +1,500,000-face standard bound. No new seed limits or undocumented output-format +parameter are invented. The `fast` texture option requires the documented +`v3.5-20260815` texture version. + +The fal [Hunyuan image](https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/image-to-3d/api), +[Hunyuan text](https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/text-to-3d/api) and +[TRELLIS.2](https://fal.ai/models/fal-ai/trellis-2/api) endpoints likewise record +their native input types, enums and bounds. Hunyuan's image-dimension prose +describes the reference input; it is not an output-image envelope. TRELLIS.2's +resolution, mesh, texture, sampling, guidance and UV parameters retain their +published units and bounds. These partial parameter maps do not claim to replace +the providers' complete request schemas or cross-field validation rules. + +## Published image output calculators and examples (2026-10-13) + +The GPT Image 2 and GPT Image 2.5 cards record the calculator in +[OpenAI's image generation guide](https://developers.openai.com/api/docs/guides/image-generation), +including its [published JavaScript](https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js). +That source supplies the quality coefficients, area constants, ties-to-even +short-axis rounding and final upward token rounding. The examples are estimates +from that calculator, not measured usage or guaranteed whole-request prices. +They exclude text/image inputs, reasoning and partial-image output charges. +Exact output-token examples were verified with the calculator rather than inferred +by dividing a rounded USD price by the token rate. + +The GPT Image 2.5 cards also retain all six published size rows from fal's +[Flare](https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image) and +[Sunburst](https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image) +price tables. Their `1920x1080` row conflicts with the documented requirement that +both dimensions be divisible by 16: 1080 is not. That quoted USD example remains +source-backed, but has no `output_tokens` value. OpenAI's calculator UI rejects +that size; calling only its unvalidated arithmetic function is not evidence of +an admissible request. Example dimensions must therefore be checked against the +model and endpoint constraints before use. + +[fal's GPT Image 2 page](https://fal.ai/models/openai/gpt-image-2) bills text and +image tokens, so its binding now records token rates instead of treating the +rounded per-image examples as a fixed tariff. All three fal GPT Image bindings +publish the same six native token rates and say total cost rounds upward to +`$0.0001`, recorded as `rounding_usd`. A rounded example is not an exact total +request maximum. OpenAI's separately published cached-input rates apply to its +Responses image-generation tool, not direct Images API requests; recording a +provider's cache price does not promise a cache hit or cached billing on every API. + +The six fal image endpoints' option bounds come from their endpoint-specific +public OpenAPI schemas. Image 2 allows at most four outputs; Image 2.5 allows ten. +Prompt bounds are character counts, not bytes or tokens. The shared generic +`ImageSize` definition permits larger dimensions, but the model-specific size +description and OpenAI guide impose the stricter 3840px edge, pixel-area, +16px-step and aspect constraints recorded on the endpoints. No undocumented +minimum number of reference images is inferred from an array being required. + +## Vision tokenization parameters (2026-10-13) + +[OpenAI's vision guide](https://developers.openai.com/api/docs/guides/images-vision) +explicitly lists GPT-5.5, GPT-5.6 Sol/Terra/Luna and GPT-6 Astra as 32px patch +models with a 1.2 token multiplier. It also supplies detail-specific resizing +limits and the separate 30,000-patch rejection threshold. Low detail fits within +512px on each side; a 256-patch allowance can be derived from that square, but is +not recorded as an independently published patch budget. The guide does not +qualify GPT-5.5 Pro's patch formula, so that card has no invented formula. + +[Claude's vision guide](https://platform.claude.com/docs/en/build-with-claude/vision) +identifies 28px visual-token patches, a 2576px long edge and a 4784 visual-token +ceiling for Claude 4.7 and later. These are processing limits: oversized native +images may be downscaled before tokenization. + +[Google's media-resolution guide](https://ai.google.dev/gemini-api/docs/media-resolution) +labels the Gemini 3 family token counts approximate. The cards preserve that +qualification and each resolution's published budget, including the 2240-token +`ultra_high` budget. That maximum is not a fixed billable count for every image. +These parameters describe provider tokenization. Preflight estimates do not +establish final charges. + +## Text provider references and regular pricing (2026-10-13) + +All 17 text cards retain independent native, Vercel and OpenRouter bindings. +The native model pages establish exact IDs and synchronous limits. Claude's +[pricing table](https://platform.claude.com/docs/en/about-claude/pricing) separates +five-minute and one-hour cache writes. Google's +[Standard pricing](https://ai.google.dev/gemini-api/docs/pricing) excludes optional +cache storage, grounding and alternate service tiers. Native and intermediary +limits and input-length bands intentionally remain distinct; a native reference +is a presentation choice, not a routing preference. + +[Vercel's model feed](https://ai-gateway.vercel.sh/v1/models) supplies serving +limits and supported capabilities. Prices were checked against each model's +public page for regular-rate qualification. The +[Gemini 3.7 Flash](https://vercel.com/ai-gateway/models/gemini-3.7-flash) and +[Gemini 3.8 Flash](https://vercel.com/ai-gateway/models/gemini-3.8-flash) pages +publish explicit list tiers of $1.50 input, $7.50 output and $0.15 cached input +per million tokens. These replace discounted feed values; they are not inferred +by reversing a percentage. OpenRouter's corresponding model pages independently +publish the same list rates. Standard/global pricing excludes regional premiums, +optional tools and alternate service tiers. + +[OpenRouter's model feed](https://openrouter.ai/api/v1/models) supplies its exact +IDs, modalities, limits and capabilities. Each model page qualifies the rates; +provider input-length boundaries are preserved exactly. The +[GPT-5.6 Sol endpoint listing](https://openrouter.ai/api/v1/models/openai/gpt-5.6-sol/endpoints) +independently establishes the recorded Standard rates and tiers. Time-based +cache-storage rates are not per-token cache-write prices. + +The native [GPT-5.6 Sol page](https://developers.openai.com/api/docs/models/gpt-5.6-sol) +and [OpenAI pricing](https://developers.openai.com/api/docs/pricing) qualify the +visible native rate as promotional without publishing a regular replacement. +That binding therefore omits pricing; unknown does not mean free. Its Vercel and +OpenRouter prices remain independently sourced. No discount schedule is tracked. +GPT-5.5 Pro has no invented native cache discount or unverified native +long-context price; intermediary bands remain separate provider facts. + +## TRELLIS.2 distribution (2026-10-13) + +Microsoft's [official repository](https://github.com/microsoft/TRELLIS.2) links +the [TRELLIS.2-4B weights](https://huggingface.co/microsoft/TRELLIS.2-4B). +The [code license](https://github.com/microsoft/TRELLIS.2/blob/main/LICENSE) +and the weight model card both identify MIT; these are recorded separately. +The Hugging Face model metadata reports `gated: false`, so the published weight +access is recorded as public. Dependency licenses remain separate from these +artifact licenses. Distribution links do not establish a hosted inference API, +free inference or permission for every possible use. + +## Provider coverage and non-text differences (2026-10-13) + +All existing cards are retained. Provider coverage was checked against +[OpenRouter discovery](https://openrouter.ai/api/v1/models) and its image, video +and embedding feeds, [Vercel discovery](https://ai-gateway.vercel.sh/v1/models), +and fal's endpoint catalogue. Exact aliases matter: OpenRouter's Muse and Lyria +preview IDs differ from canonical card IDs. `not_listed` records absence from +those inspected public listings, not a promise that a provider will never offer +an equivalent endpoint. fal coverage is restricted to media. + +Native references now identify actual lab APIs, including BytePlus for ByteDance, +Google Developer API, Meta, BFL, Recraft, xAI and Alibaba. Open weights do not +invent a lab-hosted API. Native and reseller prices retain their own meters: + +- OpenRouter GPT Image 2 uses separate text-input, image-input and image-output + token meters. Its 2.5 endpoints now list transparency; its Image 2 endpoint + lists only `auto` and `opaque`. +- Seedance video-token SKUs replace an inaccurate OpenRouter per-second estimate. + Input-video, resolution and audio variants remain distinct. BytePlus's current + [pricing page](https://docs.byteplus.com/en/docs/ModelArk/model-pricing) + publishes Seedream Pro's 2.61-million-pixel threshold; older indexed material + differs. The dated native model ID is retained. +- Google's [regular embedding prices](https://ai.google.dev/gemini-api/docs/pricing) + distinguish text, image, audio and video inputs. A provider that only publishes + some meters does not inherit the others by assumption. +- [BFL pricing](https://bfl.ai/pricing) distinguishes first versus additional/input + megapixels, ceiling rounding, pixel units and capped input sizes. Its flat + FLUX 1.1 image price is not fal's megapixel price. Native xAI input-image charges + and Alibaba's documented International-region regular rates remain qualified. + +fal Tripo P2, native Tencent Hunyuan and native Bria retain verified endpoints +without an invented regular USD price. Bria's hosted checkpoint is not pinned by +its API reference. OpenRouter Muse's image-specific endpoint metadata is empty; +its general endpoint token meters do not establish image parameter parity. +These gaps are explicit qualifications, not zero-price defaults or passed paid +behavior tests. Real-ESRGAN's official code link is distribution metadata, not +an invented native hosted provider. + +## Grida public service bindings (2026-10-13) + +Grida bindings cover its existing 40 models and the rig-check operation; the +other 21 retained model cards do not claim Grida availability. Public +[model discovery](https://gateway.grida.ai/v1/models), +[endpoint discovery](https://gateway.grida.ai/v1/endpoints), and +[operation schemas](https://gateway.grida.ai/schemas/operations.json) establish +service identities and contracts. Discovery requires authentication. Synchronous +image, asynchronous video and specialized operation interfaces stay explicit; +these bindings do not imply another provider's parameter compatibility. + +`published_pricing` records advertised USD per named quantity, including bands, +conditions and rounding. Provider-specific normalized quantities are not raw +image counts or guaranteed per-request totals. Source unit identifiers are +preserved. Grida's Gemini 3.7/3.8 Flash bindings omit prices: the inspected +discovery does not independently establish a regular, non-promotional schedule. +Another provider's regular rates are not evidence of Grida's advertised rates. +Other recorded service rates match the inspected discovery. +This catalogue describes public service facts without supplier selection or +private financial policy. diff --git a/catalogue/models.json b/catalogue/models.json index 34209ee..7a7a32d 100644 --- a/catalogue/models.json +++ b/catalogue/models.json @@ -3,6 +3,8 @@ "text.catalog": { "anthropic/claude-fable-5": { "id": "anthropic/claude-fable-5", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Fable 5", "short_label": "Fable 5", "multimodal": true, @@ -25,10 +27,209 @@ "date": "2026-06-09", "basis": "model", "source_url": "https://platform.claude.com/docs/en/release-notes/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-fable-5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-fable-5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-fable-5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.000001", + "input_cache_write": "0.0000125" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-fable-5", + "url": "https://platform.claude.com/docs/en/models/fable-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview", + "endpoints": [ + { + "id": "claude-fable-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.00001", + "output": "0.00005", + "input_cache_write": "0.0000125", + "input_cache_write_1h": "0.00002", + "input_cache_read": "0.000001" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-fable-5", + "url": "https://openrouter.ai/anthropic/claude-fable-5", + "source_url": "https://openrouter.ai/anthropic/claude-fable-5", + "endpoints": [ + { + "id": "anthropic/claude-fable-5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-fable-5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.000001", + "input_cache_write": "0.0000125", + "input_cache_write_1h": "0.00002" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "anthropic/claude-fable-5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-fable-5", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00001" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000001" + }, + { + "id": "output_tokens", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00005" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/fable-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-fable-5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-fable-5" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-fable-5.1": { "id": "anthropic/claude-fable-5.1", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Fable 5.1", "short_label": "Fable 5.1", "multimodal": true, @@ -51,10 +252,209 @@ "date": "2026-09-01", "basis": "model", "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-fable-5.1", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-fable-5.1", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-fable-5.1", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.00000025", + "input_cache_write": "0.0000125" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-fable-5-1", + "url": "https://platform.claude.com/docs/en/models/fable-5-1/overview", + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview", + "endpoints": [ + { + "id": "claude-fable-5-1", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.00001", + "output": "0.00005", + "input_cache_write": "0.0000125", + "input_cache_write_1h": "0.00002", + "input_cache_read": "0.00000025" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-fable-5.1", + "url": "https://openrouter.ai/anthropic/claude-fable-5.1", + "source_url": "https://openrouter.ai/anthropic/claude-fable-5.1", + "endpoints": [ + { + "id": "anthropic/claude-fable-5.1", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-fable-5.1", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.00000025", + "input_cache_write": "0.0000125", + "input_cache_write_1h": "0.00002" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "anthropic/claude-fable-5.1", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-fable-5.1", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00001" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00000025" + }, + { + "id": "output_tokens", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00005" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/fable-5-1/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-fable-5.1" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-fable-5.1" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-haiku-5.5": { "id": "anthropic/claude-haiku-5.5", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Haiku 5.5", "short_label": "Haiku 5.5", "multimodal": true, @@ -82,10 +482,302 @@ "input_multiplier": 5, "output_multiplier": 5 } + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-haiku-5.5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-haiku-5.5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-haiku-5.5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_read": "0.00000001", + "input_cache_write": "0.000000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000001", + "maximum_input_tokens": 100001 + }, + { + "meter": "input", + "minimum_input_tokens": 100001, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000005", + "maximum_input_tokens": 100001 + }, + { + "meter": "output", + "minimum_input_tokens": 100001, + "usd_per_token": "0.0000025" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.00000001", + "maximum_input_tokens": 100001 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 100001, + "usd_per_token": "0.00000005" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "usd_per_token": "0.000000125", + "maximum_input_tokens": 100001 + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 100001, + "usd_per_token": "0.000000625" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-haiku-5-5", + "url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview", + "endpoints": [ + { + "id": "claude-haiku-5-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_write": "0.000000125", + "input_cache_write_1h": "0.0000002", + "input_cache_read": "0.00000001", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100001, + "usd_per_token": "0.0000001" + }, + { + "meter": "input", + "minimum_input_tokens": 100001, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100001, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 100001, + "usd_per_token": "0.0000025" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100001, + "usd_per_token": "0.000000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 100001, + "usd_per_token": "0.000000625" + }, + { + "meter": "input_cache_write_1h", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100001, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_write_1h", + "minimum_input_tokens": 100001, + "usd_per_token": "0.0000010" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100001, + "usd_per_token": "0.00000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 100001, + "usd_per_token": "0.00000005" + } + ] + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-haiku-5.5", + "url": "https://openrouter.ai/anthropic/claude-haiku-5.5", + "source_url": "https://openrouter.ai/anthropic/claude-haiku-5.5", + "endpoints": [ + { + "id": "anthropic/claude-haiku-5.5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-haiku-5.5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_read": "0.00000001", + "input_cache_write": "0.000000125", + "input_cache_write_1h": "0.0000002", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100000, + "usd_per_token": "0.0000001" + }, + { + "meter": "input", + "minimum_input_tokens": 100000, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100000, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 100000, + "usd_per_token": "0.0000025" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100000, + "usd_per_token": "0.00000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 100000, + "usd_per_token": "0.00000005" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100000, + "usd_per_token": "0.000000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 100000, + "usd_per_token": "0.000000625" + }, + { + "meter": "input_cache_write_1h", + "minimum_input_tokens": 0, + "maximum_input_tokens": 100000, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_write_1h", + "minimum_input_tokens": 100000, + "usd_per_token": "0.000001" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/haiku-5-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-haiku-5.5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-haiku-5.5" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-opus-4.8": { "id": "anthropic/claude-opus-4.8", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Opus 4.8", "short_label": "Opus 4.8", "multimodal": true, @@ -108,10 +800,209 @@ "date": "2026-05-28", "basis": "model", "source_url": "https://platform.claude.com/docs/en/release-notes/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-opus-4.8", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-opus-4.8", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-4.8", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000005", + "output": "0.000025", + "input_cache_read": "0.0000005", + "input_cache_write": "0.00000625" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-opus-4-8", + "url": "https://platform.claude.com/docs/en/models/opus-4-8/overview", + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview", + "endpoints": [ + { + "id": "claude-opus-4-8", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.000005", + "output": "0.000025", + "input_cache_write": "0.00000625", + "input_cache_write_1h": "0.00001", + "input_cache_read": "0.0000005" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-opus-4.8", + "url": "https://openrouter.ai/anthropic/claude-opus-4.8", + "source_url": "https://openrouter.ai/anthropic/claude-opus-4.8", + "endpoints": [ + { + "id": "anthropic/claude-opus-4.8", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-opus-4.8", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.000005", + "output": "0.000025", + "input_cache_read": "0.0000005", + "input_cache_write": "0.00000625", + "input_cache_write_1h": "0.00001" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "anthropic/claude-opus-4.8", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-opus-4.8", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000005" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0000005" + }, + { + "id": "output_tokens", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000025" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/opus-4-8/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-4.8" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-opus-4.8" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-opus-5": { "id": "anthropic/claude-opus-5", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Opus 5", "short_label": "Opus 5", "multimodal": true, @@ -134,10 +1025,209 @@ "date": "2026-07-24", "basis": "model", "source_url": "https://platform.claude.com/docs/en/release-notes/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-opus-5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-opus-5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000005", + "output": "0.000025", + "input_cache_read": "0.0000005", + "input_cache_write": "0.00000625" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-opus-5", + "url": "https://platform.claude.com/docs/en/models/opus-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview", + "endpoints": [ + { + "id": "claude-opus-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.000005", + "output": "0.000025", + "input_cache_write": "0.00000625", + "input_cache_write_1h": "0.00001", + "input_cache_read": "0.0000005" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-opus-5", + "url": "https://openrouter.ai/anthropic/claude-opus-5", + "source_url": "https://openrouter.ai/anthropic/claude-opus-5", + "endpoints": [ + { + "id": "anthropic/claude-opus-5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-opus-5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.000005", + "output": "0.000025", + "input_cache_read": "0.0000005", + "input_cache_write": "0.00000625", + "input_cache_write_1h": "0.00001" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "anthropic/claude-opus-5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-opus-5", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000005" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0000005" + }, + { + "id": "output_tokens", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000025" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/opus-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-opus-5" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-opus-5.5": { "id": "anthropic/claude-opus-5.5", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Opus 5.5", "short_label": "Opus 5.5", "multimodal": true, @@ -160,10 +1250,142 @@ "date": "2026-09-22", "basis": "model", "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-opus-5.5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-opus-5.5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-5.5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000004", + "output": "0.00002", + "input_cache_read": "0.0000002", + "input_cache_write": "0.000005" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-opus-5-5", + "url": "https://platform.claude.com/docs/en/models/opus-5-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview", + "endpoints": [ + { + "id": "claude-opus-5-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.000004", + "output": "0.00002", + "input_cache_write": "0.000005", + "input_cache_write_1h": "0.000008", + "input_cache_read": "0.0000002" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-opus-5.5", + "url": "https://openrouter.ai/anthropic/claude-opus-5.5", + "source_url": "https://openrouter.ai/anthropic/claude-opus-5.5", + "endpoints": [ + { + "id": "anthropic/claude-opus-5.5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-opus-5.5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.000004", + "output": "0.00002", + "input_cache_read": "0.0000002", + "input_cache_write": "0.000005", + "input_cache_write_1h": "0.000008" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/opus-5-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-opus-5.5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-opus-5.5" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "anthropic/claude-sonnet-5": { "id": "anthropic/claude-sonnet-5", + "vendor": "anthropic", + "reference_provider": "anthropic", "label": "Claude Sonnet 5", "short_label": "Sonnet 5", "multimodal": true, @@ -186,24 +1408,223 @@ "date": "2026-06-30", "basis": "model", "source_url": "https://platform.claude.com/docs/en/release-notes/overview" - } - }, - "anthropic/claude-sonnet-5.5": { - "id": "anthropic/claude-sonnet-5.5", - "label": "Claude Sonnet 5.5", - "short_label": "Sonnet 5.5", - "multimodal": true, - "image_input_mimes": [ - "image/jpeg", - "image/png", - "image/gif", - "image/webp" - ], - "tool_call": true, - "context_window": 1000000, - "output_limit": 128000, - "cost": { - "input": 2, + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-sonnet-5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-sonnet-5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-sonnet-5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000002", + "input_cache_write": "0.0000025" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-sonnet-5", + "url": "https://platform.claude.com/docs/en/models/sonnet-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview", + "endpoints": [ + { + "id": "claude-sonnet-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.000002", + "output": "0.00001", + "input_cache_write": "0.0000025", + "input_cache_write_1h": "0.000004", + "input_cache_read": "0.0000002" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-sonnet-5", + "url": "https://openrouter.ai/anthropic/claude-sonnet-5", + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5", + "endpoints": [ + { + "id": "anthropic/claude-sonnet-5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000002", + "input_cache_write": "0.0000025", + "input_cache_write_1h": "0.000004" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "anthropic/claude-sonnet-5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-sonnet-5", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.000002" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0000002" + }, + { + "id": "output_tokens", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00001" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-sonnet-5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } + } + }, + "anthropic/claude-sonnet-5.5": { + "id": "anthropic/claude-sonnet-5.5", + "vendor": "anthropic", + "reference_provider": "anthropic", + "label": "Claude Sonnet 5.5", + "short_label": "Sonnet 5.5", + "multimodal": true, + "image_input_mimes": [ + "image/jpeg", + "image/png", + "image/gif", + "image/webp" + ], + "tool_call": true, + "context_window": 1000000, + "output_limit": 128000, + "cost": { + "input": 2, "output": 10, "cache_read": 0.1, "cache_write": 2.5 @@ -212,10 +1633,142 @@ "date": "2026-09-28", "basis": "model", "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "anthropic/claude-sonnet-5.5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "anthropic/claude-sonnet-5.5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/claude-sonnet-5.5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000001", + "input_cache_write": "0.0000025" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "anthropic": { + "provider": "anthropic", + "id": "claude-sonnet-5-5", + "url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview", + "endpoints": [ + { + "id": "claude-sonnet-5-5", + "input": "text", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" + } + ], + "token_pricing": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview", + "unit": "usd_per_token", + "scope": "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded.", + "input": "0.000002", + "output": "0.00001", + "input_cache_write": "0.0000025", + "input_cache_write_1h": "0.000004", + "input_cache_read": "0.0000001" + }, + "capabilities": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "anthropic/claude-sonnet-5.5", + "url": "https://openrouter.ai/anthropic/claude-sonnet-5.5", + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5.5", + "endpoints": [ + { + "id": "anthropic/claude-sonnet-5.5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5.5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000001", + "input_cache_write": "0.0000025", + "input_cache_write_1h": "0.000004" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://platform.claude.com/docs/en/build-with-claude/vision", + "patch_size_px": 28, + "maximum_tokens_per_image": 4784, + "detail_maximum_edges": { + "default": 2576 + } + }, + "provider_coverage": { + "anthropic": { + "disposition": "listed", + "source_url": "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/claude-sonnet-5.5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/anthropic/claude-sonnet-5.5" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "google/gemini-3.1-pro-preview": { "id": "google/gemini-3.1-pro-preview", + "vendor": "google", + "reference_provider": "google", "label": "Gemini 3.1 Pro Preview", "short_label": "Gemini 3.1 Pro", "multimodal": true, @@ -243,10 +1796,375 @@ "input_multiplier": 2, "output_multiplier": 1.5 } + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "google/gemini-3.1-pro-preview", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.1-pro-preview", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.1-pro-preview", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.000002", + "maximum_input_tokens": 200001 + }, + { + "meter": "input", + "minimum_input_tokens": 200001, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.000012", + "maximum_input_tokens": 200001 + }, + { + "meter": "output", + "minimum_input_tokens": 200001, + "usd_per_token": "0.000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000002", + "maximum_input_tokens": 200001 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 200001, + "usd_per_token": "0.0000004" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 64000 + } + }, + "google": { + "provider": "google", + "id": "gemini-3.1-pro-preview", + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview", + "endpoints": [ + { + "id": "gemini-3.1-pro-preview", + "input": "text", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" + } + ], + "token_pricing": { + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "unit": "usd_per_token", + "scope": "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200001, + "usd_per_token": "0.000002" + }, + { + "meter": "input", + "minimum_input_tokens": 200001, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200001, + "usd_per_token": "0.000012" + }, + { + "meter": "output", + "minimum_input_tokens": 200001, + "usd_per_token": "0.000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200001, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 200001, + "usd_per_token": "0.0000004" + } + ] + }, + "capabilities": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/gemini-3.1-pro-preview", + "url": "https://openrouter.ai/google/gemini-3.1-pro-preview", + "source_url": "https://openrouter.ai/google/gemini-3.1-pro-preview", + "endpoints": [ + { + "id": "google/gemini-3.1-pro-preview", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/google/gemini-3.1-pro-preview", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200000, + "usd_per_token": "0.000002" + }, + { + "meter": "input", + "minimum_input_tokens": 200000, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200000, + "usd_per_token": "0.000012" + }, + { + "meter": "output", + "minimum_input_tokens": 200000, + "usd_per_token": "0.000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 200000, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 200000, + "usd_per_token": "0.0000004" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "grida": { + "provider": "grida", + "id": "google/gemini-3.1-pro-preview", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.1-pro-preview", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "200001" + }, + "usd_per_unit": "0.000002" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "200001" + }, + "usd_per_unit": "0.000004" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "200001" + }, + "usd_per_unit": "0.0000002" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "200001" + }, + "usd_per_unit": "0.0000004" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "200001" + }, + "usd_per_unit": "0.000012" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "200001" + }, + "usd_per_unit": "0.000018" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 64000 + } + } + }, + "vision_tokenization": { + "source_url": "https://ai.google.dev/gemini-api/docs/media-resolution", + "maximum_tokens_per_image": 2240, + "token_counts_approximate": true, + "detail_token_budgets": { + "unspecified": 1120, + "low": 280, + "medium": 560, + "high": 1120, + "ultra_high": 2240 + } + }, + "provider_coverage": { + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.1-pro-preview" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3.1-pro-preview" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "google/gemini-3.7-flash": { "id": "google/gemini-3.7-flash", + "vendor": "google", + "reference_provider": "google", "label": "Gemini 3.7 Flash", "multimodal": true, "image_input_mimes": [ @@ -268,10 +2186,178 @@ "date": "2026-08-13", "basis": "model", "source_url": "https://ai.google.dev/gemini-api/docs/changelog" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "google/gemini-3.7-flash", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.7-flash", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.7-flash", + "unit": "usd_per_token", + "scope": "Regular Standard global token rates from the model page list-cost tiers; alternate service tiers and regional premiums are excluded.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 65535 + } + }, + "google": { + "provider": "google", + "id": "gemini-3.7-flash", + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash", + "endpoints": [ + { + "id": "gemini-3.7-flash", + "input": "text", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" + } + ], + "deprecated": true, + "token_pricing": { + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "unit": "usd_per_token", + "scope": "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded. Deprecated model ID redirects to Gemini 3.8 Flash under the native API.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/gemini-3.7-flash", + "url": "https://openrouter.ai/google/gemini-3.7-flash", + "source_url": "https://openrouter.ai/google/gemini-3.7-flash", + "endpoints": [ + { + "id": "google/gemini-3.7-flash", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/google/gemini-3.7-flash", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "grida": { + "provider": "grida", + "id": "google/gemini-3.7-flash", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.7-flash", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models" + } + ], + "qualifications": [ + { + "source_url": "https://gateway.grida.ai/v1/models", + "notes": "A regular, non-promotional token schedule has not been independently established from the inspected public discovery; published_pricing is omitted rather than inferred from another provider." + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 65535 + } + } + }, + "vision_tokenization": { + "source_url": "https://ai.google.dev/gemini-api/docs/media-resolution", + "maximum_tokens_per_image": 2240, + "token_counts_approximate": true, + "detail_token_budgets": { + "unspecified": 1120, + "low": 280, + "medium": 560, + "high": 1120, + "ultra_high": 2240 + } + }, + "provider_coverage": { + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.7-flash" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3.7-flash" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "google/gemini-3.8-flash": { "id": "google/gemini-3.8-flash", + "vendor": "google", + "reference_provider": "google", "label": "Gemini 3.8 Flash", "multimodal": true, "image_input_mimes": [ @@ -293,10 +2379,177 @@ "date": "2026-09-02", "basis": "model", "source_url": "https://ai.google.dev/gemini-api/docs/changelog" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "google/gemini-3.8-flash", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.8-flash", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.8-flash", + "unit": "usd_per_token", + "scope": "Regular Standard global token rates from the model page list-cost tiers; alternate service tiers and regional premiums are excluded.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 65535 + } + }, + "google": { + "provider": "google", + "id": "gemini-3.8-flash", + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash", + "endpoints": [ + { + "id": "gemini-3.8-flash", + "input": "text", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" + } + ], + "token_pricing": { + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "unit": "usd_per_token", + "scope": "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/gemini-3.8-flash", + "url": "https://openrouter.ai/google/gemini-3.8-flash", + "source_url": "https://openrouter.ai/google/gemini-3.8-flash", + "endpoints": [ + { + "id": "google/gemini-3.8-flash", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/google/gemini-3.8-flash", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded.", + "input": "0.0000015", + "output": "0.0000075", + "input_cache_read": "0.00000015" + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1048576, + "max_output_tokens": 65536 + } + }, + "grida": { + "provider": "grida", + "id": "google/gemini-3.8-flash", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "google/gemini-3.8-flash", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models" + } + ], + "qualifications": [ + { + "source_url": "https://gateway.grida.ai/v1/models", + "notes": "A regular, non-promotional token schedule has not been independently established from the inspected public discovery; published_pricing is omitted rather than inferred from another provider." + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 65535 + } + } + }, + "vision_tokenization": { + "source_url": "https://ai.google.dev/gemini-api/docs/media-resolution", + "maximum_tokens_per_image": 2240, + "token_counts_approximate": true, + "detail_token_budgets": { + "unspecified": 1120, + "low": 280, + "medium": 560, + "high": 1120, + "ultra_high": 2240 + } + }, + "provider_coverage": { + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gemini-3.8-flash" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3.8-flash" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "openai/gpt-5.5": { "id": "openai/gpt-5.5", + "vendor": "openai", + "reference_provider": "openai", "label": "GPT-5.5", "multimodal": true, "image_input_mimes": [ @@ -322,45 +2575,691 @@ "input_multiplier": 2, "output_multiplier": 1.5 } - } - }, - "openai/gpt-5.5-pro": { - "id": "openai/gpt-5.5-pro", - "label": "GPT-5.5 Pro", - "multimodal": true, - "image_input_mimes": [ - "image/png", - "image/jpeg", - "image/webp", - "image/gif" - ], - "tool_call": true, - "context_window": 1050000, - "output_limit": 128000, - "cost": { - "input": 30, - "output": 180 + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-5.5", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.5", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.5", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000005", + "output": "0.00003", + "input_cache_read": "0.0000005", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.000005", + "maximum_input_tokens": 272000 + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.00003", + "maximum_input_tokens": 272000 + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000045" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000005", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000001" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-5.5", + "url": "https://developers.openai.com/api/docs/models/gpt-5.5", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5", + "endpoints": [ + { + "id": "gpt-5.5", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5" + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5", + "unit": "usd_per_token", + "scope": "Standard synchronous text token rates; optional tools and other service tiers are excluded.", + "input": "0.000005", + "output": "0.00003", + "input_cache_read": "0.0000005", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000005" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000010" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00003" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000045" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000005" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000010" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-5.5", + "url": "https://openrouter.ai/openai/gpt-5.5", + "source_url": "https://openrouter.ai/openai/gpt-5.5", + "endpoints": [ + { + "id": "openai/gpt-5.5", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-5.5", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded.", + "input": "0.000005", + "output": "0.00003", + "input_cache_read": "0.0000005", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000005" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00003" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000045" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000005" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000001" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-5.5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.5", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.000005" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.00001" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.0000005" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.000001" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.00003" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.000045" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "patch_size_px": 32, + "token_multiplier": 1.2, + "token_rounding": "ceil", + "maximum_patch_count": 30000, + "detail_patch_budgets": { + "high": 2500, + "original": 10000, + "auto": 10000 + }, + "detail_maximum_edges": { + "low": 512, + "high": 2048, + "original": 6000, + "auto": 6000 + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.5" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-5.5" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } + } + }, + "openai/gpt-5.5-pro": { + "id": "openai/gpt-5.5-pro", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-5.5 Pro", + "multimodal": true, + "image_input_mimes": [ + "image/png", + "image/jpeg", + "image/webp", + "image/gif" + ], + "tool_call": true, + "context_window": 1050000, + "output_limit": 128000, + "cost": { + "input": 30, + "output": 180 }, "release": { - "date": "2026-04-23", - "basis": "model", - "source_url": "https://openai.com/index/introducing-gpt-5-5/" - } - }, - "openai/gpt-5.6-luna": { - "id": "openai/gpt-5.6-luna", - "label": "GPT-5.6 Luna", - "multimodal": true, - "image_input_mimes": [ - "image/png", - "image/jpeg", - "image/webp", - "image/gif" - ], - "tool_call": true, - "context_window": 1050000, - "output_limit": 128000, - "release": { + "date": "2026-04-23", + "basis": "model", + "source_url": "https://openai.com/index/introducing-gpt-5-5/" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-5.5-pro", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.5-pro", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.5-pro", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.00003", + "output": "0.00018", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.00003", + "maximum_input_tokens": 272000 + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00006" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.00018", + "maximum_input_tokens": 272000 + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00027" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-5.5-pro", + "url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", + "endpoints": [ + { + "id": "gpt-5.5-pro", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro" + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", + "unit": "usd_per_token", + "scope": "Standard text rates for prompts up to 272,000 input tokens; cached input has no discount. Longer-context rates are not recorded here.", + "input": "0.00003", + "output": "0.00018" + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": false + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-5.5-pro", + "url": "https://openrouter.ai/openai/gpt-5.5-pro", + "source_url": "https://openrouter.ai/openai/gpt-5.5-pro", + "endpoints": [ + { + "id": "openai/gpt-5.5-pro", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-5.5-pro", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded.", + "input": "0.00003", + "output": "0.00018", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00003" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00006" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00018" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00027" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-5.5-pro", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.5-pro", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.00003" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.00006" + }, + { + "id": "cached_input_tokens", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.00003" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.00018" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.00027" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1000000, + "max_output_tokens": 128000 + } + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.5-pro" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-5.5-pro" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } + } + }, + "openai/gpt-5.6-luna": { + "id": "openai/gpt-5.6-luna", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-5.6 Luna", + "multimodal": true, + "image_input_mimes": [ + "image/png", + "image/jpeg", + "image/webp", + "image/gif" + ], + "tool_call": true, + "context_window": 1050000, + "output_limit": 128000, + "release": { "date": "2026-07-09", "basis": "model", "source_url": "https://openai.com/index/gpt-5-6/" @@ -375,10 +3274,416 @@ "input_multiplier": 2, "output_multiplier": 1.5 } + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-5.6-luna", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-luna", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-luna", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.0000002", + "output": "0.0000012", + "input_cache_read": "0.00000002", + "input_cache_write": "0.00000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000002", + "maximum_input_tokens": 272000 + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000012", + "maximum_input_tokens": 272000 + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.00000002", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "usd_per_token": "0.00000025", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000005" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-5.6-luna", + "url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", + "endpoints": [ + { + "id": "gpt-5.6-luna", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna" + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", + "unit": "usd_per_token", + "scope": "Standard synchronous text token rates; optional tools and other service tiers are excluded.", + "input": "0.0000002", + "output": "0.0000012", + "input_cache_read": "0.00000002", + "input_cache_write": "0.00000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000012" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000180" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00000025" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000050" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-5.6-luna", + "url": "https://openrouter.ai/openai/gpt-5.6-luna", + "source_url": "https://openrouter.ai/openai/gpt-5.6-luna", + "endpoints": [ + { + "id": "openai/gpt-5.6-luna", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-5.6-luna", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded.", + "input": "0.0000002", + "output": "0.0000012", + "input_cache_read": "0.00000002", + "input_cache_write": "0.00000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000002" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000012" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00000025" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000005" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-5.6-luna", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-luna", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.0000002" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.0000004" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.00000002" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.00000004" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.0000012" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.0000018" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "patch_size_px": 32, + "token_multiplier": 1.2, + "token_rounding": "ceil", + "maximum_patch_count": 30000, + "detail_patch_budgets": { + "high": 2500 + }, + "detail_maximum_edges": { + "low": 512, + "high": 2048, + "original": 65535, + "auto": 65535 + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-luna" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-luna" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-5.6-luna" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } } }, "openai/gpt-5.6-sol": { "id": "openai/gpt-5.6-sol", + "vendor": "openai", + "reference_provider": "openai", "label": "GPT-5.6 Sol", "multimodal": true, "image_input_mimes": [ @@ -395,20 +3700,361 @@ "basis": "model", "source_url": "https://openai.com/index/gpt-5-6/" }, - "cost": { - "input": 4, - "output": 20, - "cache_read": 0.4, - "cache_write": 5, - "long_context": { - "input_tokens_above": 272000, - "input_multiplier": 2, - "output_multiplier": 1.5 + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-5.6-sol", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-sol", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-sol", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000004", + "output": "0.00002", + "input_cache_read": "0.0000004", + "input_cache_write": "0.000005", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.000004", + "maximum_input_tokens": 272000 + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000008" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.00002", + "maximum_input_tokens": 272000 + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00003" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000004", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000008" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "usd_per_token": "0.000005", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00001" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-5.6-sol", + "url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", + "endpoints": [ + { + "id": "gpt-5.6-sol", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" + } + ], + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-5.6-sol", + "url": "https://openrouter.ai/openai/gpt-5.6-sol", + "source_url": "https://openrouter.ai/openai/gpt-5.6-sol", + "endpoints": [ + { + "id": "openai/gpt-5.6-sol", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-5.6-sol", + "unit": "usd_per_token", + "scope": "Regular Standard Azure endpoint token rates, also shown as list input/output/cache-read rates in the model page. Other endpoints and service tiers may differ.", + "input": "0.000004", + "output": "0.00002", + "input_cache_read": "0.0000004", + "input_cache_write": "0.000005", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000004" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000008" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00002" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00003" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000004" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000008" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000005" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00001" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-5.6-sol", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-sol", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.000004" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.000008" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.0000004" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.0000008" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.00002" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.00003" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "patch_size_px": 32, + "token_multiplier": 1.2, + "token_rounding": "ceil", + "maximum_patch_count": 30000, + "detail_patch_budgets": { + "high": 2500 + }, + "detail_maximum_edges": { + "low": 512, + "high": 2048, + "original": 65535, + "auto": 65535 + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "reason": "Native model availability is verified; its published pricing is promotional, so an unqualified regular native price is not recorded.", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-sol" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-sol" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-5.6-sol" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." } } }, "openai/gpt-5.6-terra": { "id": "openai/gpt-5.6-terra", + "vendor": "openai", + "reference_provider": "openai", "label": "GPT-5.6 Terra", "multimodal": true, "image_input_mimes": [ @@ -425,61 +4071,868 @@ "basis": "model", "source_url": "https://openai.com/index/gpt-5-6/" }, - "cost": { - "input": 2, - "output": 12, - "cache_read": 0.2, - "cache_write": 2.5, - "long_context": { - "input_tokens_above": 272000, - "input_multiplier": 2, - "output_multiplier": 1.5 + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "long_context": { + "input_tokens_above": 272000, + "input_multiplier": 2, + "output_multiplier": 1.5 + } + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-5.6-terra", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-terra", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-terra", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "input_cache_write": "0.0000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.000002", + "maximum_input_tokens": 272000 + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.000012", + "maximum_input_tokens": 272000 + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000002", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000025", + "maximum_input_tokens": 272000 + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000005" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-5.6-terra", + "url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", + "endpoints": [ + { + "id": "gpt-5.6-terra", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra" + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", + "unit": "usd_per_token", + "scope": "Standard synchronous text token rates; optional tools and other service tiers are excluded.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "input_cache_write": "0.0000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000002" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000012" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000180" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000025" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000050" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-5.6-terra", + "url": "https://openrouter.ai/openai/gpt-5.6-terra", + "source_url": "https://openrouter.ai/openai/gpt-5.6-terra", + "endpoints": [ + { + "id": "openai/gpt-5.6-terra", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-5.6-terra", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded.", + "input": "0.000002", + "output": "0.000012", + "input_cache_read": "0.0000002", + "input_cache_write": "0.0000025", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000002" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000004" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000012" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000018" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000002" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000004" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000025" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000005" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-5.6-terra", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-5.6-terra", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.000002" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.000004" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.0000002" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.0000004" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272000" + }, + "usd_per_unit": "0.000012" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272000" + }, + "usd_per_unit": "0.000018" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "patch_size_px": 32, + "token_multiplier": 1.2, + "token_rounding": "ceil", + "maximum_patch_count": 30000, + "detail_patch_budgets": { + "high": 2500 + }, + "detail_maximum_edges": { + "low": 512, + "high": 2048, + "original": 65535, + "auto": 65535 + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-5.6-terra" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-5.6-terra" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-5.6-terra" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." + } + } + }, + "openai/gpt-6-astra": { + "id": "openai/gpt-6-astra", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-6 Astra", + "multimodal": true, + "image_input_mimes": [ + "image/png", + "image/jpeg", + "image/webp", + "image/gif" + ], + "tool_call": true, + "context_window": 1050000, + "output_limit": 128000, + "release": { + "date": "2026-09-04", + "basis": "provider_endpoint", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "long_context": { + "input_tokens_above": 272000, + "input_multiplier": 2, + "output_multiplier": 1.5 + } + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "openai/gpt-6-astra", + "url": "https://ai-gateway.vercel.sh/v1/models", + "endpoints": [ + { + "id": "openai/gpt-6-astra", + "input": "text", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + } + ], + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-astra", + "unit": "usd_per_token", + "scope": "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.000001", + "input_cache_write": "0.0000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "usd_per_token": "0.00001", + "maximum_input_tokens": 272001 + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "usd_per_token": "0.00005", + "maximum_input_tokens": 272001 + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "usd_per_token": "0.000001", + "maximum_input_tokens": 272001 + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "usd_per_token": "0.0000125", + "maximum_input_tokens": 272001 + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000025" + } + ] + }, + "capabilities": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-6-astra", + "url": "https://developers.openai.com/api/docs/models/gpt-6-astra", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra", + "endpoints": [ + { + "id": "gpt-6-astra", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra" + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra", + "unit": "usd_per_token", + "scope": "Standard synchronous text token rates; optional tools and other service tiers are excluded.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.000001", + "input_cache_write": "0.0000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00001" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00005" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000250" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra", + "image_input": true, + "reasoning": true, + "tools": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-6-astra", + "url": "https://openrouter.ai/openai/gpt-6-astra", + "source_url": "https://openrouter.ai/openai/gpt-6-astra", + "endpoints": [ + { + "id": "openai/gpt-6-astra", + "input": "text", + "source_url": "https://openrouter.ai/api/v1/models" + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-6-astra", + "unit": "usd_per_token", + "scope": "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded.", + "input": "0.00001", + "output": "0.00005", + "input_cache_read": "0.000001", + "input_cache_write": "0.0000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00001" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00005" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000025" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-6-astra", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "openai/gpt-6-astra", + "input": "text", + "source_url": "https://gateway.grida.ai/v1/models", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "input_tokens.0", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272001" + }, + "usd_per_unit": "0.00001" + }, + { + "id": "input_tokens.1", + "meter": "input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272001" + }, + "usd_per_unit": "0.00002" + }, + { + "id": "cached_input_tokens.0", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272001" + }, + "usd_per_unit": "0.000001" + }, + { + "id": "cached_input_tokens.1", + "meter": "cached_input_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272001" + }, + "usd_per_unit": "0.000002" + }, + { + "id": "output_tokens.0", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "0", + "max": "272001" + }, + "usd_per_unit": "0.00005" + }, + { + "id": "output_tokens.1", + "meter": "output_tokens", + "unit": "token", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "quantity_range": { + "meter": "total_input_tokens", + "min": "272001" + }, + "usd_per_unit": "0.000075" + } + ] + } + } + ], + "capabilities": { + "source_url": "https://gateway.grida.ai/v1/models", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://gateway.grida.ai/v1/models", + "context_tokens": 1050000, + "max_output_tokens": 128000 + } + } + }, + "vision_tokenization": { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "patch_size_px": 32, + "token_multiplier": 1.2, + "token_rounding": "ceil", + "maximum_patch_count": 30000, + "detail_patch_budgets": { + "high": 2500 + }, + "detail_maximum_edges": { + "low": 512, + "high": 65535, + "original": 65535, + "auto": 65535 } - } - }, - "openai/gpt-6-astra": { - "id": "openai/gpt-6-astra", - "label": "GPT-6 Astra", - "multimodal": true, - "image_input_mimes": [ - "image/png", - "image/jpeg", - "image/webp", - "image/gif" - ], - "tool_call": true, - "context_window": 1050000, - "output_limit": 128000, - "release": { - "date": "2026-09-04", - "basis": "provider_endpoint", - "source_url": "https://vercel.com/ai-gateway/models/gpt-6-astra" }, - "cost": { - "input": 10, - "output": 50, - "cache_read": 1, - "cache_write": 12.5, - "long_context": { - "input_tokens_above": 272000, - "input_multiplier": 2, - "output_multiplier": 1.5 + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-astra" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-astra" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-6-astra" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." } } } }, "image.models": { "bfl/flux-2-max": { + "reference_provider": "bfl", "id": "bfl/flux-2-max", "label": "Flux 2 Max", "short_description": "Black Forest Labs' highest-fidelity Flux 2 — maximum prompt adherence and detail.", "vendor": "black-forest-labs", "speed_label": "slow", "speed_max": "45s", - "constraints": { - "min_edge": 256, - "max_edge": 1440 - }, "pricing": { "type": "per_image_flat", "usd": 0.07 @@ -519,16 +4972,243 @@ "id": "fal-ai/flux-2-max", "pricing": { "type": "per_image_flat", - "usd": 0.07 + "usd": 0.07, + "included_megapixels": 1, + "included_megapixels_scope": "processed", + "usd_per_additional_megapixel": 0.03, + "input_megapixels_billed": true, + "source_url": "https://fal.ai/models/fal-ai/flux-2-max/edit" }, "avg_cost_usd": 0.07, - "url": "https://fal.ai/models/fal-ai/flux-2-max" + "url": "https://fal.ai/models/fal-ai/flux-2-max", + "endpoints": [ + { + "id": "fal-ai/flux-2-max", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/flux-2-max/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9" + ] + }, + "image_size.height": { + "type": "integer", + "maximum": 2560, + "minimum": 256, + "multiple_of": 16 + }, + "image_size.width": { + "type": "integer", + "maximum": 2560, + "minimum": 256, + "multiple_of": 16 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + }, + "image_constraints": { + "max_edge": 2560, + "min_edge": 256, + "max_pixels": 4194304, + "step": 16 + } + }, + { + "id": "fal-ai/flux-2-max/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/flux-2-max/edit/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "auto", + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9" + ] + }, + "image_size.height": { + "type": "integer", + "maximum": 14142, + "minimum": 1 + }, + "image_size.width": { + "type": "integer", + "maximum": 14142, + "minimum": 1 + }, + "image_urls": { + "type": "array" + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + } + ] + }, + "bfl": { + "provider": "bfl", + "id": "flux-2-max", + "source_url": "https://bfl.ai/pricing", + "url": "https://bfl.ai/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.07, + "included_megapixels": 1, + "included_megapixels_scope": "output", + "usd_per_additional_megapixel": 0.03, + "input_megapixels_billed": true, + "megapixel_rounding": "ceil", + "pixels_per_megapixel": 1048576, + "multiple_reference_images_megapixels_each": 1, + "source_url": "https://bfl.ai/pricing", + "input_max_megapixels": 4 + } + }, + "grida": { + "provider": "grida", + "id": "bfl/flux-2-max", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.bfl.flux-2-max.references", + "operation": "image.bfl.flux-2-max.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-max.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.07" + } + ] + } + }, + { + "id": "image.bfl.flux-2-max.text", + "operation": "image.bfl.flux-2-max.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-max.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.07" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/black-forest-labs/flux.2-max" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/flux-2-max" + }, + "bfl": { + "disposition": "listed", + "source_url": "https://bfl.ai/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, - "sizes": null + "sizes": null, + "constraints": null }, "bfl/flux-2-pro": { + "reference_provider": "bfl", "id": "bfl/flux-2-pro", "label": "Flux 2 Pro", "short_description": "Latest Flux model with best-in-class image quality and prompt adherence", @@ -578,16 +5258,245 @@ "id": "fal-ai/flux-2-pro", "pricing": { "type": "per_image_flat", - "usd": 0.03 + "usd": 0.03, + "included_megapixels": 1, + "included_megapixels_scope": "output", + "usd_per_additional_megapixel": 0.015, + "input_megapixels_billed": true, + "megapixel_rounding": "ceil", + "source_url": "https://fal.ai/models/fal-ai/flux-2-pro/edit" }, "avg_cost_usd": 0.03, - "url": "https://fal.ai/models/fal-ai/flux-2-pro" + "url": "https://fal.ai/models/fal-ai/flux-2-pro", + "endpoints": [ + { + "id": "fal-ai/flux-2-pro", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/flux-2-pro/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9" + ] + }, + "image_size.height": { + "maximum": 2560, + "type": "integer", + "minimum": 256, + "multiple_of": 16 + }, + "image_size.width": { + "maximum": 2560, + "type": "integer", + "minimum": 256, + "multiple_of": 16 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + }, + "image_constraints": { + "max_edge": 2560, + "min_edge": 256, + "max_pixels": 4194304, + "step": 16 + } + }, + { + "id": "fal-ai/flux-2-pro/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/flux-2-pro/edit/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "auto", + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_urls": { + "type": "array", + "max_items": 9, + "source_url": "https://fal.ai/models/fal-ai/flux-2-pro/edit" + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + } + ] + }, + "bfl": { + "provider": "bfl", + "id": "flux-2-pro", + "source_url": "https://bfl.ai/pricing", + "url": "https://bfl.ai/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.03, + "included_megapixels": 1, + "included_megapixels_scope": "output", + "usd_per_additional_megapixel": 0.015, + "input_megapixels_billed": true, + "megapixel_rounding": "ceil", + "pixels_per_megapixel": 1048576, + "multiple_reference_images_megapixels_each": 1, + "source_url": "https://bfl.ai/pricing", + "input_max_megapixels": 4 + } + }, + "grida": { + "provider": "grida", + "id": "bfl/flux-2-pro", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.bfl.flux-2-pro.references", + "operation": "image.bfl.flux-2-pro.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-pro.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.03" + } + ] + } + }, + { + "id": "image.bfl.flux-2-pro.text", + "operation": "image.bfl.flux-2-pro.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-pro.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.03" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/black-forest-labs/flux.2-pro" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/flux-2-pro" + }, + "bfl": { + "disposition": "listed", + "source_url": "https://bfl.ai/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, "sizes": null }, "bfl/flux-kontext-max": { + "reference_provider": "bfl", "id": "bfl/flux-kontext-max", "label": "Flux Kontext Max", "short_description": "Highest quality Flux model for context-aware image generation and editing", @@ -626,12 +5535,43 @@ }, "avg_cost_usd": 0.08, "url": "https://fal.ai/models/fal-ai/flux-pro/kontext/max" + }, + "bfl": { + "provider": "bfl", + "id": "flux-kontext-max", + "source_url": "https://docs.bfl.ai/quick_start/pricing", + "url": "https://docs.bfl.ai/quick_start/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.08, + "source_url": "https://docs.bfl.ai/quick_start/pricing" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/images/models", + "reason": "No matching model/version is listed in the inspected public image model catalogue." + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/flux-pro/kontext/max" + }, + "bfl": { + "disposition": "listed", + "source_url": "https://docs.bfl.ai/quick_start/pricing" } }, "styles": null, "sizes": null }, "bfl/flux-kontext-pro": { + "reference_provider": "bfl", "id": "bfl/flux-kontext-pro", "label": "Flux Kontext Pro", "short_description": "Fast context-aware image generation and editing", @@ -670,12 +5610,43 @@ }, "avg_cost_usd": 0.04, "url": "https://fal.ai/models/fal-ai/flux-pro/kontext" + }, + "bfl": { + "provider": "bfl", + "id": "flux-kontext-pro", + "source_url": "https://docs.bfl.ai/quick_start/pricing", + "url": "https://docs.bfl.ai/quick_start/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.04, + "source_url": "https://docs.bfl.ai/quick_start/pricing" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/images/models", + "reason": "No matching model/version is listed in the inspected public image model catalogue." + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/flux-pro/kontext" + }, + "bfl": { + "disposition": "listed", + "source_url": "https://docs.bfl.ai/quick_start/pricing" } }, "styles": null, "sizes": null }, "bfl/flux-pro-1.1": { + "reference_provider": "bfl", "id": "bfl/flux-pro-1.1", "label": "Flux Pro 1.1", "short_description": "Faster, better FLUX Pro. Text-to-image model with excellent image quality and output diversity.", @@ -705,12 +5676,55 @@ "usd": 0.04 }, "avg_cost_usd": 0.04 + }, + "bfl": { + "provider": "bfl", + "id": "flux-pro-1.1", + "source_url": "https://docs.bfl.ai/quick_start/pricing", + "url": "https://docs.bfl.ai/quick_start/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.04, + "source_url": "https://docs.bfl.ai/quick_start/pricing" + } + }, + "fal": { + "provider": "fal", + "id": "fal-ai/flux-pro/v1.1", + "source_url": "https://fal.ai/models/fal-ai/flux-pro/v1.1", + "url": "https://fal.ai/models/fal-ai/flux-pro/v1.1", + "pricing": { + "type": "per_megapixel", + "usd": 0.04, + "rounding": "ceil", + "source_url": "https://fal.ai/models/fal-ai/flux-pro/v1.1" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/images/models", + "reason": "No matching model/version is listed in the inspected public image model catalogue." + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/flux-pro/v1.1" + }, + "bfl": { + "disposition": "listed", + "source_url": "https://docs.bfl.ai/quick_start/pricing" } }, "styles": null, "sizes": null }, "bytedance/seedream-4.5": { + "reference_provider": "byteplus", "id": "bytedance/seedream-4.5", "label": "Seedream 4.5", "short_description": "ByteDance's unified image generation and editing model.", @@ -763,12 +5777,42 @@ }, "avg_cost_usd": 0.04, "url": "https://fal.ai/models/fal-ai/bytedance/seedream/v4.5/text-to-image" + }, + "byteplus": { + "provider": "byteplus", + "id": "seedream-4-5-251128", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.04, + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/bytedance-seed/seedream-4.5" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/bytedance/seedream/v4.5/text-to-image" + }, + "byteplus": { + "disposition": "listed", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } }, "styles": null, "sizes": null }, "bytedance/seedream-5.0-lite": { + "reference_provider": "byteplus", "id": "bytedance/seedream-5.0-lite", "label": "Seedream 5.0 Lite", "short_description": "ByteDance's fast 2K–4K image model — Seedream 5.0 quality at the 4.5 price point.", @@ -821,13 +5865,212 @@ "usd": 0.035 }, "avg_cost_usd": 0.035, - "url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image" + "url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image", + "endpoints": [ + { + "id": "bytedance/seedream/v5/lite/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_2K", + "auto_3K", + "auto_4K" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "max_images": { + "maximum": 6, + "minimum": 1, + "type": "integer" + }, + "num_images": { + "maximum": 6, + "minimum": 1, + "type": "integer" + }, + "prompt": { + "type": "string" + } + }, + "image_constraints": { + "min_pixels": 3686400, + "max_pixels": 16777216 + } + }, + { + "id": "fal-ai/bytedance/seedream/v5/lite/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/bytedance/seedream/v5/lite/edit/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_2K", + "auto_3K", + "auto_4K" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_urls": { + "type": "array", + "max_items": 10 + }, + "max_images": { + "maximum": 6, + "minimum": 1, + "type": "integer" + }, + "num_images": { + "maximum": 6, + "minimum": 1, + "type": "integer" + }, + "prompt": { + "type": "string" + } + }, + "image_constraints": { + "min_pixels": 3686400, + "max_pixels": 16777216 + } + } + ] + }, + "byteplus": { + "provider": "byteplus", + "id": "seedream-5-0-lite-260128", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.035, + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + } + }, + "grida": { + "provider": "grida", + "id": "bytedance/seedream-5.0-lite", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.bytedance.seedream-5.0-lite.references", + "operation": "image.bytedance.seedream-5.0-lite.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-lite.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.035" + } + ] + } + }, + { + "id": "image.bytedance.seedream-5.0-lite.text", + "operation": "image.bytedance.seedream-5.0-lite.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-lite.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.035" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/bytedance-seed/seedream-5-0-lite" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image" + }, + "byteplus": { + "disposition": "listed", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, "sizes": null }, "bytedance/seedream-5.0-pro": { + "reference_provider": "byteplus", "id": "bytedance/seedream-5.0-pro", "label": "Seedream 5.0 Pro", "short_description": "ByteDance's flagship image model — dense layouts, infographics and text-heavy compositions at 1K–2K.", @@ -876,7 +6119,215 @@ "usd": 0.0675 }, "avg_cost_usd": 0.0675, - "url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" + "url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image", + "endpoints": [ + { + "id": "bytedance/seedream/v5/pro/edit", + "input": "image", + "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/edit/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "enhance_prompt_mode": { + "enum": [ + "standard", + "fast" + ], + "type": "string" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_1K", + "auto_2K" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_urls": { + "type": "array", + "max_items": 10 + }, + "num_images": { + "maximum": 6, + "type": "integer", + "minimum": 1 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + } + }, + "image_constraints": { + "max_pixels": 4194304, + "min_pixels": 1048576, + "aspect_ratio": { + "min": 0.0625, + "max": 16 + } + } + }, + { + "id": "bytedance/seedream/v5/pro/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "enhance_prompt_mode": { + "enum": [ + "standard", + "fast" + ], + "type": "string" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_1K", + "auto_2K" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "num_images": { + "maximum": 6, + "type": "integer", + "minimum": 1 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" + }, + "prompt": { + "type": "string" + } + }, + "image_constraints": { + "max_pixels": 4194304, + "min_pixels": 1048576, + "aspect_ratio": { + "min": 0.0625, + "max": 16 + } + } + } + ] + }, + "byteplus": { + "provider": "byteplus", + "id": "dola-seedream-5-0-pro-260628", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "pricing": { + "type": "per_image_tiered", + "threshold_pixels": 2610000, + "tiers": { + "generation_at_or_below_threshold": 0.045, + "generation_above_threshold": 0.09, + "layer_decomposition_at_or_below_threshold": 0.0225, + "layer_decomposition_above_threshold": 0.045 + }, + "included_input_images": 1, + "usd_per_additional_input_image": 0.003, + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + } + }, + "grida": { + "provider": "grida", + "id": "bytedance/seedream-5.0-pro", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.bytedance.seedream-5.0-pro.references", + "operation": "image.bytedance.seedream-5.0-pro.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-pro.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0675" + } + ] + } + }, + { + "id": "image.bytedance.seedream-5.0-pro.text", + "operation": "image.bytedance.seedream-5.0-pro.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-pro.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0675" + } + ] + } + } + ] } }, "constraints": { @@ -886,19 +6337,39 @@ "max": 16 } }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/bytedance-seed/seedream-5-0-pro" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" + }, + "byteplus": { + "disposition": "listed", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + } + }, "styles": null, "sizes": null }, "google/gemini-3-pro-image": { + "reference_provider": "google", "id": "google/gemini-3-pro-image", "label": "Gemini 3 Pro Image", "short_description": "High-quality multimodal model with native image generation", "vendor": "google", "speed_label": "medium", "speed_max": "30s", - "constraints": { - "max_edge": 1536 - }, "pricing": { "type": "per_token", "input": 2, @@ -941,16 +6412,270 @@ "id": "fal-ai/nano-banana-pro", "pricing": { "type": "per_image_flat", - "usd": 0.15 + "usd": 0.15, + "resolution_multipliers": { + "4K": 2 + }, + "web_search_usd": 0.015, + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro" }, "avg_cost_usd": 0.15, - "url": "https://fal.ai/models/fal-ai/nano-banana-pro" + "url": "https://fal.ai/models/fal-ai/nano-banana-pro", + "endpoints": [ + { + "id": "fal-ai/nano-banana-pro", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16" + ] + }, + "enable_web_search": { + "type": "boolean" + }, + "limit_generations": { + "type": "boolean" + }, + "num_images": { + "minimum": 1, + "maximum": 4, + "type": "integer" + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "prompt": { + "max_length": 50000, + "type": "string", + "min_length": 3 + }, + "resolution": { + "type": "string", + "enum": [ + "1K", + "2K", + "4K" + ] + }, + "safety_tolerance": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ] + }, + "seed": { + "type": "integer" + }, + "system_prompt": { + "max_length": 50000, + "type": "string" + } + } + }, + { + "id": "fal-ai/nano-banana-pro/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/edit/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16" + ] + }, + "enable_web_search": { + "type": "boolean" + }, + "image_urls": { + "type": "array", + "max_items": 14, + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/edit" + }, + "limit_generations": { + "type": "boolean" + }, + "num_images": { + "minimum": 1, + "maximum": 4, + "type": "integer" + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "prompt": { + "max_length": 50000, + "type": "string", + "min_length": 3 + }, + "resolution": { + "type": "string", + "enum": [ + "1K", + "2K", + "4K" + ] + }, + "safety_tolerance": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ] + }, + "seed": { + "type": "integer" + }, + "system_prompt": { + "max_length": 50000, + "type": "string" + } + } + } + ] + }, + "google": { + "provider": "google", + "id": "gemini-3-pro-image", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_token", + "input": 2, + "text_output": 12, + "output": 120, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "grida": { + "provider": "grida", + "id": "google/gemini-3-pro-image", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.google.gemini-3-pro-image.references", + "operation": "image.google.gemini-3-pro-image.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3-pro-image.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.15" + } + ] + } + }, + { + "id": "image.google.gemini-3-pro-image.text", + "operation": "image.google.gemini-3-pro-image.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3-pro-image.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.15" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3-pro-image-preview" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, - "sizes": null + "sizes": null, + "constraints": null }, "google/gemini-3.1-flash-image-preview": { + "reference_provider": "google", "id": "google/gemini-3.1-flash-image-preview", "label": "Gemini 3.1 Flash Image", "short_description": "Fast, efficient multimodal model with native image generation", @@ -997,21 +6722,287 @@ "max": 14 } }, - "fal": { - "provider": "fal", - "id": "fal-ai/nano-banana-2", - "pricing": { - "type": "per_image_flat", - "usd": 0.08 - }, - "avg_cost_usd": 0.08, - "url": "https://fal.ai/models/fal-ai/nano-banana-2" + "fal": { + "provider": "fal", + "id": "fal-ai/nano-banana-2", + "pricing": { + "type": "per_image_flat", + "usd": 0.08, + "resolution_multipliers": { + "0.5K": 0.75, + "2K": 1.5, + "4K": 2 + }, + "web_search_usd": 0.015, + "high_thinking_usd": 0.002, + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2" + }, + "avg_cost_usd": 0.08, + "url": "https://fal.ai/models/fal-ai/nano-banana-2", + "endpoints": [ + { + "id": "fal-ai/nano-banana-2", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", + "4:1", + "1:4", + "8:1", + "1:8" + ], + "type": "string" + }, + "enable_web_search": { + "type": "boolean" + }, + "limit_generations": { + "type": "boolean" + }, + "num_images": { + "minimum": 1, + "maximum": 4, + "type": "integer" + }, + "output_format": { + "enum": [ + "jpeg", + "png", + "webp" + ], + "type": "string" + }, + "prompt": { + "min_length": 3, + "type": "string", + "max_length": 50000 + }, + "resolution": { + "enum": [ + "0.5K", + "1K", + "2K", + "4K" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + }, + "system_prompt": { + "type": "string", + "max_length": 50000 + } + } + }, + { + "id": "fal-ai/nano-banana-2/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/edit/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", + "4:1", + "1:4", + "8:1", + "1:8" + ], + "type": "string" + }, + "enable_web_search": { + "type": "boolean" + }, + "image_urls": { + "type": "array", + "max_items": 14, + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/edit" + }, + "limit_generations": { + "type": "boolean" + }, + "num_images": { + "minimum": 1, + "maximum": 4, + "type": "integer" + }, + "output_format": { + "enum": [ + "jpeg", + "png", + "webp" + ], + "type": "string" + }, + "prompt": { + "min_length": 3, + "type": "string", + "max_length": 50000 + }, + "resolution": { + "enum": [ + "0.5K", + "1K", + "2K", + "4K" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + }, + "system_prompt": { + "type": "string", + "max_length": 50000 + } + } + } + ] + }, + "google": { + "provider": "google", + "id": "gemini-3.1-flash-image", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_token", + "input": 0.5, + "text_output": 3, + "output": 60, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "grida": { + "provider": "grida", + "id": "google/gemini-3.1-flash-image-preview", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.google.gemini-3.1-flash-image-preview.references", + "operation": "image.google.gemini-3.1-flash-image-preview.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3.1-flash-image-preview.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.08" + } + ] + } + }, + { + "id": "image.google.gemini-3.1-flash-image-preview.text", + "operation": "image.google.gemini-3.1-flash-image-preview.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3.1-flash-image-preview.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.08" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3.1-flash-image" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, "sizes": null }, "google/gemini-3.1-flash-lite-image": { + "reference_provider": "google", "id": "google/gemini-3.1-flash-lite-image", "label": "Gemini 3.1 Flash Lite Image", "short_description": "Fastest, most cost-efficient Gemini image model; 1K output only.", @@ -1053,12 +7044,58 @@ }, "avg_cost_usd": 0.034, "url": "https://openrouter.ai/google/gemini-3.1-flash-lite-image" + }, + "google": { + "provider": "google", + "id": "gemini-3.1-flash-lite-image", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_token", + "input": 0.25, + "text_output": 1.5, + "output": 30, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "fal": { + "provider": "fal", + "id": "google/nano-banana-2-lite", + "source_url": "https://fal.ai/models/google/nano-banana-2-lite", + "url": "https://fal.ai/models/google/nano-banana-2-lite", + "pricing": { + "type": "per_token", + "input": 0.3125, + "image_input": 0.3125, + "text_output": 1.875, + "output": 37.5, + "source_url": "https://fal.ai/models/google/nano-banana-2-lite" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/gemini-3.1-flash-lite-image" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/google/nano-banana-2-lite" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" } }, "styles": null, "sizes": null }, "meta/muse-image-1.0": { + "reference_provider": "meta", "id": "meta/muse-image-1.0", "label": "Muse Image 1.0", "short_description": "Meta's agentic image model — reasons before it renders; generates and edits from text and references.", @@ -1094,6 +7131,54 @@ }, "avg_cost_usd": 0.01, "url": "https://fal.ai/models/meta/muse-image/text-to-image" + }, + "meta": { + "provider": "meta", + "id": "muse-image-1.0", + "source_url": "https://dev.meta.ai/docs/image-generation", + "url": "https://dev.meta.ai/docs/image-generation", + "pricing": { + "type": "per_image_flat", + "usd": 0.01, + "billing_quantity": "successfully_generated_returned_images", + "source_url": "https://dev.meta.ai/docs/image-generation" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "meta/muse-image", + "url": "https://openrouter.ai/meta/muse-image", + "source_url": "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints", + "pricing": { + "type": "per_token", + "image_input": 2.39520958083832, + "output": 2.39520958083832, + "source_url": "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints" + }, + "qualifications": [ + { + "source_url": "https://openrouter.ai/api/v1/images/models/meta/muse-image/endpoints", + "notes": "The model is listed in image discovery, but image-specific endpoint metadata is empty. Published token meters come from general endpoint metadata; image parameter parity is not inferred." + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/meta/muse-image/text-to-image" + }, + "meta": { + "disposition": "listed", + "source_url": "https://dev.meta.ai/docs/image-generation" } }, "styles": null, @@ -1101,6 +7186,7 @@ "constraints": null }, "openai/gpt-image-1-mini": { + "reference_provider": "openai", "id": "openai/gpt-image-1-mini", "label": "GPT Image Mini", "short_description": "Cost-efficient image generation model", @@ -1140,6 +7226,110 @@ "output": 8 }, "avg_cost_usd": 0.011 + }, + "openai": { + "provider": "openai", + "id": "gpt-image-1-mini", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1-mini", + "url": "https://developers.openai.com/api/docs/models/gpt-image-1-mini", + "pricing": { + "input": 2, + "cached_input": 0.2, + "image_input": 2.5, + "cached_image_input": 0.25, + "output": 8, + "type": "per_token", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1-mini" + } + }, + "fal": { + "provider": "fal", + "id": "fal-ai/gpt-image-1-mini", + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1-mini", + "url": "https://fal.ai/models/fal-ai/gpt-image-1-mini", + "pricing": { + "type": "per_image_tiered", + "tiers": { + "low/1024x1024": 0.005, + "low/1024x1536": 0.006, + "low/1536x1024": 0.006, + "medium/1024x1024": 0.011, + "medium/1024x1536": 0.015, + "medium/1536x1024": 0.015, + "high/1024x1024": 0.036, + "high/1024x1536": 0.052, + "high/1536x1024": 0.052 + }, + "input_text_usd_per_million": 2, + "total_rounding_usd": 0.01, + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1-mini" + }, + "input": "text" + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-image-1-mini", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints", + "url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints", + "pricing": { + "type": "per_token", + "image_input": 2.5, + "input": 2.0, + "output": 8.0, + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" + }, + "transparent_background": true, + "references": { + "id": "openai/gpt-image-1-mini", + "max": 16 + }, + "endpoints": [ + { + "id": "openai/gpt-image-1-mini", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints", + "parameters": { + "aspect_ratio": { + "enum": [ + "1:1", + "3:2", + "2:3", + "auto" + ] + }, + "quality": { + "enum": [ + "auto", + "low", + "medium", + "high" + ] + }, + "background": { + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "n": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "input_references": { + "type": "integer", + "minimum": 0, + "maximum": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "input": "text" + } + ] } }, "pricing": { @@ -1163,10 +7353,29 @@ "output": 8 } }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1-mini" + }, + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1-mini" + } + }, "styles": null, "constraints": null }, "openai/gpt-image-1.5": { + "reference_provider": "openai", "id": "openai/gpt-image-1.5", "label": "GPT Image 1.5", "short_description": "Previous-generation image model. Superseded by GPT Image 2.", @@ -1206,6 +7415,45 @@ "output": 32 }, "avg_cost_usd": 0.034 + }, + "openai": { + "provider": "openai", + "id": "gpt-image-1.5", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1.5", + "url": "https://developers.openai.com/api/docs/models/gpt-image-1.5", + "pricing": { + "input": 5, + "cached_input": 1.25, + "image_input": 8, + "cached_image_input": 2, + "output": 32, + "type": "per_token", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1.5" + } + }, + "fal": { + "provider": "fal", + "id": "fal-ai/gpt-image-1.5", + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1.5", + "url": "https://fal.ai/models/fal-ai/gpt-image-1.5", + "pricing": { + "type": "per_image_tiered", + "tiers": { + "low/1024x1024": 0.009, + "low/1024x1536": 0.013, + "low/1536x1024": 0.013, + "medium/1024x1024": 0.034, + "medium/1024x1536": 0.051, + "medium/1536x1024": 0.05, + "high/1024x1024": 0.133, + "high/1024x1536": 0.2, + "high/1536x1024": 0.199 + }, + "input_text_usd_per_million": 5, + "text_output_usd_per_million": 10, + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1.5" + }, + "input": "text" } }, "pricing": { @@ -1229,10 +7477,30 @@ "output": 32 } }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/images/models", + "reason": "No matching model/version is listed in the inspected public image model catalogue." + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/gpt-image-1.5" + }, + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-1.5" + } + }, "styles": null, "constraints": null }, "openai/gpt-image-2": { + "reference_provider": "openai", "id": "openai/gpt-image-2", "label": "GPT Image 2", "short_description": "Previous-generation image model. Superseded by GPT Image 2.5.", @@ -1275,35 +7543,319 @@ "avg_cost_usd": 0.053, "transparent_background": null }, + "fal": { + "endpoints": [ + { + "id": "openai/gpt-image-2", + "input": "text", + "source_url": "https://fal.ai/models/openai/gpt-image-2/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 2, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 4 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + }, + { + "id": "openai/gpt-image-2/edit", + "input": "image", + "source_url": "https://fal.ai/models/openai/gpt-image-2/edit/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 2, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 4 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "image_urls": { + "type": "array", + "max_items": 16 + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + } + ], + "provider": "fal", + "id": "openai/gpt-image-2", + "avg_cost_usd": 0.053, + "url": "https://fal.ai/models/openai/gpt-image-2", + "pricing": { + "source_url": "https://fal.ai/models/openai/gpt-image-2", + "rounding_usd": 0.0001, + "type": "per_token", + "input": 5, + "cached_input": 1.25, + "image_input": 8, + "cached_image_input": 2, + "text_output": 10, + "output": 30 + } + }, + "openai": { + "provider": "openai", + "id": "gpt-image-2", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2", + "url": "https://developers.openai.com/api/docs/models/gpt-image-2", + "pricing": { + "input": 5, + "cached_input": 1.25, + "image_input": 8, + "cached_image_input": 2, + "output": 30, + "type": "per_token", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2" + } + }, "openrouter": { "provider": "openrouter", "id": "openai/gpt-image-2", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints", + "url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints", "pricing": { "type": "per_token", - "input": 8, - "output": 8 + "image_input": 8.0, + "input": 5.0, + "output": 30.0, + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" }, - "avg_cost_usd": 0.05, - "url": "https://openrouter.ai/openai/gpt-image-2", "transparent_background": false, "references": { "id": "openai/gpt-image-2", "max": 16 - } + }, + "endpoints": [ + { + "id": "openai/gpt-image-2", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints", + "parameters": { + "aspect_ratio": { + "enum": [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto" + ] + }, + "quality": { + "enum": [ + "auto", + "low", + "medium", + "high" + ] + }, + "background": { + "enum": [ + "auto", + "opaque" + ] + }, + "n": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "input_references": { + "type": "integer", + "minimum": 0, + "maximum": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "input": "text" + } + ] }, - "fal": { - "provider": "fal", - "id": "fal-ai/gpt-image-2", - "avg_cost_usd": 0.053, - "url": "https://fal.ai/models/openai/gpt-image-2", - "pricing": { - "type": "per_image_tiered", - "tiers": { - "low/1024x1024": 0.006, - "medium/1024x1024": 0.053, - "high/1024x1024": 0.211 + "grida": { + "provider": "grida", + "id": "openai/gpt-image-2", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.openai.gpt-image-2.references", + "operation": "image.openai.gpt-image-2.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } + }, + { + "id": "image.openai.gpt-image-2.text", + "operation": "image.openai.gpt-image-2.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } } - } + ] } }, "constraints": { @@ -1336,9 +7888,128 @@ "output": 30 } }, + "output_token_calculator": { + "source_url": "https://developers.openai.com/api/docs/guides/image-generation", + "source_js_url": "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js", + "area_offset": 2000000, + "area_divisor": 4000000, + "short_axis_rounding": "nearest_ties_even", + "token_rounding": "ceil", + "quality_axes": { + "low": 16, + "medium": 48, + "high": 96 + }, + "examples": [ + { + "width": 1024, + "height": 1024, + "quality": "low", + "output_tokens": 196, + "usd": 0.00588, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1024, + "height": 1536, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1536, + "height": 1024, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1024, + "height": 1024, + "quality": "medium", + "output_tokens": 1756, + "usd": 0.05268, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1024, + "height": 1536, + "quality": "medium", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1536, + "height": 1024, + "quality": "medium", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1024, + "height": 1024, + "quality": "high", + "output_tokens": 7024, + "usd": 0.21072, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1024, + "height": 1536, + "quality": "high", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1536, + "height": 1024, + "quality": "high", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + } + ] + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/openai/gpt-image-2" + }, + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + } + }, "styles": null }, "openai/gpt-image-2.5-flare": { + "reference_provider": "openai", "id": "openai/gpt-image-2.5-flare", "label": "GPT Image 2.5 Flare", "short_description": "Fast image generation and reference-guided editing.", @@ -1399,24 +8070,175 @@ "avg_cost_usd": 0.055, "url": "https://vercel.com/ai-gateway/models/gpt-image-2.5-flare" }, - "openrouter": { - "provider": "openrouter", - "id": "openai/gpt-image-2.5-flare", - "pricing": { - "type": "per_token", - "input": 5, - "image_input": 8, - "output": 30 - }, - "avg_cost_usd": 0.055, - "url": "https://openrouter.ai/openai/gpt-image-2.5-flare", - "transparent_background": false, - "references": { - "id": "openai/gpt-image-2.5-flare", - "max": 16 - } - }, "fal": { + "endpoints": [ + { + "id": "openai/gpt-image-2.5/flare/edit", + "input": "image", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/edit/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 1, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "image_urls": { + "type": "array", + "max_items": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + }, + { + "id": "openai/gpt-image-2.5/flare/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 1, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + } + ], "provider": "fal", "id": "openai/gpt-image-2.5/flare/text-to-image", "avg_cost_usd": 0.055, @@ -1426,6 +8248,8 @@ "max": 16 }, "pricing": { + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image", + "rounding_usd": 0.0001, "type": "per_token", "input": 5, "cached_input": 1.25, @@ -1434,6 +8258,152 @@ "text_output": 10, "output": 30 } + }, + "openai": { + "provider": "openai", + "id": "gpt-image-2.5-flare", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare", + "url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare", + "pricing": { + "type": "per_token", + "input": 5, + "cached_input": 1.25, + "output": 30, + "image_input": 8, + "cached_image_input": 2, + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-image-2.5-flare", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints", + "url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints", + "pricing": { + "type": "per_token", + "image_input": 8.0, + "input": 5.0, + "output": 30.0, + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" + }, + "transparent_background": true, + "references": { + "id": "openai/gpt-image-2.5-flare", + "max": 16 + }, + "endpoints": [ + { + "id": "openai/gpt-image-2.5-flare", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints", + "parameters": { + "aspect_ratio": { + "enum": [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto" + ] + }, + "quality": { + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "n": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "input_references": { + "type": "integer", + "minimum": 0, + "maximum": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-image-2.5-flare", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.openai.gpt-image-2.5-flare.references", + "operation": "image.openai.gpt-image-2.5-flare.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-flare.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } + }, + { + "id": "image.openai.gpt-image-2.5-flare.text", + "operation": "image.openai.gpt-image-2.5-flare.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-flare.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } + } + ] } }, "constraints": { @@ -1445,9 +8415,359 @@ "max": 3 } }, + "output_token_calculator": { + "source_url": "https://developers.openai.com/api/docs/guides/image-generation", + "source_js_url": "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js", + "area_offset": 2000000, + "area_divisor": 4000000, + "short_axis_rounding": "nearest_ties_even", + "token_rounding": "ceil", + "quality_axes": { + "low": 16, + "medium": 24, + "high": 48, + "xhigh": 64, + "max": 96 + }, + "examples": [ + { + "width": 1024, + "height": 768, + "quality": "low", + "output_tokens": 134, + "usd": 0.00402, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "low", + "output_tokens": 196, + "usd": 0.00588, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "low", + "usd": 0.00441, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "low", + "output_tokens": 205, + "usd": 0.00615, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "low", + "output_tokens": 371, + "usd": 0.01113, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "medium", + "output_tokens": 301, + "usd": 0.00903, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "medium", + "output_tokens": 439, + "usd": 0.01317, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "medium", + "output_tokens": 343, + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "medium", + "output_tokens": 343, + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "medium", + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "medium", + "output_tokens": 478, + "usd": 0.01434, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "medium", + "output_tokens": 865, + "usd": 0.02595, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "high", + "output_tokens": 1204, + "usd": 0.03612, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "high", + "output_tokens": 1756, + "usd": 0.05268, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "high", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "high", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "high", + "usd": 0.0396, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "high", + "output_tokens": 1843, + "usd": 0.05529, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "high", + "output_tokens": 3336, + "usd": 0.10008, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "xhigh", + "output_tokens": 2140, + "usd": 0.0642, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "xhigh", + "output_tokens": 3122, + "usd": 0.09366, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "xhigh", + "output_tokens": 2459, + "usd": 0.07377, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "xhigh", + "output_tokens": 2459, + "usd": 0.07377, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "xhigh", + "usd": 0.07041, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "xhigh", + "output_tokens": 3276, + "usd": 0.09828, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "xhigh", + "output_tokens": 5930, + "usd": 0.1779, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "max", + "output_tokens": 4815, + "usd": 0.14445, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "max", + "output_tokens": 7024, + "usd": 0.21072, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "max", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "max", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "max", + "usd": 0.1584, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "max", + "output_tokens": 7370, + "usd": 0.2211, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "max", + "output_tokens": 13342, + "usd": 0.40026, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + } + ] + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-image-2.5-flare" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" + }, + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + } + }, "styles": null }, "openai/gpt-image-2.5-sunburst": { + "reference_provider": "openai", "id": "openai/gpt-image-2.5-sunburst", "label": "GPT Image 2.5 Sunburst", "short_description": "Detailed image generation and precise editing with longer generation times.", @@ -1508,24 +8828,175 @@ "avg_cost_usd": 0.055, "url": "https://vercel.com/ai-gateway/models/gpt-image-2.5-sunburst" }, - "openrouter": { - "provider": "openrouter", - "id": "openai/gpt-image-2.5-sunburst", - "pricing": { - "type": "per_token", - "input": 5, - "image_input": 8, - "output": 30 - }, - "avg_cost_usd": 0.055, - "url": "https://openrouter.ai/openai/gpt-image-2.5-sunburst", - "transparent_background": false, - "references": { - "id": "openai/gpt-image-2.5-sunburst", - "max": 16 - } - }, "fal": { + "endpoints": [ + { + "id": "openai/gpt-image-2.5/sunburst/edit", + "input": "image", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/edit/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 1, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "image_urls": { + "type": "array", + "max_items": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + }, + { + "id": "openai/gpt-image-2.5/sunburst/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image/api", + "parameters": { + "prompt": { + "type": "string", + "min_length": 1, + "max_length": 32000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "quality": { + "type": "string", + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "type": "string", + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto" + ] + }, + "image_size.width": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + }, + "image_size.height": { + "type": "integer", + "minimum": 1, + "maximum": 3840, + "multiple_of": 16 + } + }, + "image_constraints": { + "min_pixels": 655360, + "max_pixels": 8294400, + "step": 16, + "max_edge": 3840, + "aspect_ratio": { + "max": 3 + } + } + } + ], "provider": "fal", "id": "openai/gpt-image-2.5/sunburst/text-to-image", "avg_cost_usd": 0.055, @@ -1535,6 +9006,8 @@ "max": 16 }, "pricing": { + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image", + "rounding_usd": 0.0001, "type": "per_token", "input": 5, "cached_input": 1.25, @@ -1543,6 +9016,152 @@ "text_output": 10, "output": 30 } + }, + "openai": { + "provider": "openai", + "id": "gpt-image-2.5-sunburst", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst", + "url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst", + "pricing": { + "type": "per_token", + "input": 5, + "cached_input": 1.25, + "output": 30, + "image_input": 8, + "cached_image_input": 2, + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-image-2.5-sunburst", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints", + "url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints", + "pricing": { + "type": "per_token", + "image_input": 8.0, + "input": 5.0, + "output": 30.0, + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" + }, + "transparent_background": true, + "references": { + "id": "openai/gpt-image-2.5-sunburst", + "max": 16 + }, + "endpoints": [ + { + "id": "openai/gpt-image-2.5-sunburst", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints", + "parameters": { + "aspect_ratio": { + "enum": [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto" + ] + }, + "quality": { + "enum": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "background": { + "enum": [ + "auto", + "transparent", + "opaque" + ] + }, + "n": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "input_references": { + "type": "integer", + "minimum": 0, + "maximum": 16 + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "openai/gpt-image-2.5-sunburst", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.openai.gpt-image-2.5-sunburst.references", + "operation": "image.openai.gpt-image-2.5-sunburst.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-sunburst.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } + }, + { + "id": "image.openai.gpt-image-2.5-sunburst.text", + "operation": "image.openai.gpt-image-2.5-sunburst.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-sunburst.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "1" + } + ] + } + } + ] } }, "constraints": { @@ -1554,9 +9173,359 @@ "max": 3 } }, + "output_token_calculator": { + "source_url": "https://developers.openai.com/api/docs/guides/image-generation", + "source_js_url": "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js", + "area_offset": 2000000, + "area_divisor": 4000000, + "short_axis_rounding": "nearest_ties_even", + "token_rounding": "ceil", + "quality_axes": { + "low": 16, + "medium": 24, + "high": 48, + "xhigh": 64, + "max": 96 + }, + "examples": [ + { + "width": 1024, + "height": 768, + "quality": "low", + "output_tokens": 134, + "usd": 0.00402, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "low", + "output_tokens": 196, + "usd": 0.00588, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "low", + "output_tokens": 158, + "usd": 0.00474, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "low", + "usd": 0.00441, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "low", + "output_tokens": 205, + "usd": 0.00615, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "low", + "output_tokens": 371, + "usd": 0.01113, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "medium", + "output_tokens": 301, + "usd": 0.00903, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "medium", + "output_tokens": 439, + "usd": 0.01317, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "medium", + "output_tokens": 343, + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "medium", + "output_tokens": 343, + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "medium", + "usd": 0.01029, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "medium", + "output_tokens": 478, + "usd": 0.01434, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "medium", + "output_tokens": 865, + "usd": 0.02595, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "high", + "output_tokens": 1204, + "usd": 0.03612, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "high", + "output_tokens": 1756, + "usd": 0.05268, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "high", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "high", + "output_tokens": 1372, + "usd": 0.04116, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "high", + "usd": 0.0396, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "high", + "output_tokens": 1843, + "usd": 0.05529, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "high", + "output_tokens": 3336, + "usd": 0.10008, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "xhigh", + "output_tokens": 2140, + "usd": 0.0642, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "xhigh", + "output_tokens": 3122, + "usd": 0.09366, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "xhigh", + "output_tokens": 2459, + "usd": 0.07377, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "xhigh", + "output_tokens": 2459, + "usd": 0.07377, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "xhigh", + "usd": 0.07041, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "xhigh", + "output_tokens": 3276, + "usd": 0.09828, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "xhigh", + "output_tokens": 5930, + "usd": 0.1779, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 768, + "quality": "max", + "output_tokens": 4815, + "usd": 0.14445, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1024, + "quality": "max", + "output_tokens": 7024, + "usd": 0.21072, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1024, + "height": 1536, + "quality": "max", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 1536, + "height": 1024, + "quality": "max", + "output_tokens": 5488, + "usd": 0.16464, + "usd_precision": 5, + "source_url": "https://developers.openai.com/api/docs/guides/image-generation" + }, + { + "width": 1920, + "height": 1080, + "quality": "max", + "usd": 0.1584, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 2560, + "height": 1440, + "quality": "max", + "output_tokens": 7370, + "usd": 0.2211, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + { + "width": 3840, + "height": 2160, + "quality": "max", + "output_tokens": 13342, + "usd": 0.40026, + "usd_precision": 5, + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + } + ] + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-image-2.5-sunburst" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" + }, + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + } + }, "styles": null }, "recraft/recraft-v3": { + "reference_provider": "recraft", "id": "recraft/recraft-v3", "label": "Recraft V3", "short_description": "Design-grade image model with strong text rendering and vector styles.", @@ -1605,12 +9574,42 @@ }, "avg_cost_usd": 0.04, "url": "https://fal.ai/models/fal-ai/recraft/v3/text-to-image" + }, + "recraft": { + "provider": "recraft", + "id": "recraftv3", + "source_url": "https://www.recraft.ai/docs/api-reference/pricing", + "url": "https://www.recraft.ai/docs/api-reference/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.04, + "source_url": "https://www.recraft.ai/docs/api-reference/pricing" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/recraft/recraft-v3" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/recraft/v3/text-to-image" + }, + "recraft": { + "disposition": "listed", + "source_url": "https://www.recraft.ai/docs/api-reference/pricing" } }, "styles": null, "sizes": null }, "recraft/recraft-v4.1": { + "reference_provider": "recraft", "id": "recraft/recraft-v4.1", "label": "Recraft V4.1", "short_description": "Design-first image model — sharper prompt control and production-ready raster for brand and editorial work.", @@ -1662,13 +9661,117 @@ "usd": 0.035 }, "avg_cost_usd": 0.035, - "url": "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image" + "url": "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image", + "endpoints": [ + { + "id": "fal-ai/recraft/v4.1/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image/api", + "parameters": { + "enable_safety_checker": { + "type": "boolean" + }, + "image_size": { + "enum": [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9" + ] + }, + "image_size.height": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "image_size.width": { + "maximum": 14142, + "type": "integer", + "minimum": 1 + }, + "prompt": { + "min_length": 1, + "type": "string", + "max_length": 10000 + } + } + } + ] + }, + "recraft": { + "provider": "recraft", + "id": "recraftv4_1", + "source_url": "https://www.recraft.ai/docs/api-reference/pricing", + "url": "https://www.recraft.ai/docs/api-reference/pricing", + "pricing": { + "type": "per_image_flat", + "usd": 0.035, + "source_url": "https://www.recraft.ai/docs/api-reference/pricing" + } + }, + "grida": { + "provider": "grida", + "id": "recraft/recraft-v4.1", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.recraft.recraft-v4.1.text", + "operation": "image.recraft.recraft-v4.1.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.recraft.recraft-v4.1.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.035" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/recraft/recraft-v4.1" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image" + }, + "recraft": { + "disposition": "listed", + "source_url": "https://www.recraft.ai/docs/api-reference/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } }, "styles": null, "sizes": null }, "xai/grok-imagine-image-2.0": { + "reference_provider": "xai", "id": "xai/grok-imagine-image-2.0", "label": "Grok Imagine Image 2.0", "short_description": "SpaceXAI's image model — fast 1K/2K generation with a low-cost quality tier.", @@ -1731,7 +9834,210 @@ "low/2048x2048": 0.06, "medium/2048x2048": 0.08 } + }, + "endpoints": [ + { + "id": "xai/grok-imagine-image/v2.0/edit", + "input": "image", + "source_url": "https://fal.ai/models/xai/grok-imagine-image/v2.0/edit/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto", + "2:1", + "20:9", + "19.5:9", + "16:9", + "4:3", + "3:2", + "1:1", + "2:3", + "3:4", + "9:16", + "9:19.5", + "9:20", + "1:2" + ] + }, + "enable_safety_checker": { + "type": "boolean" + }, + "image_urls": { + "type": "array", + "max_items": 5 + }, + "num_images": { + "maximum": 4, + "minimum": 1, + "type": "integer" + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "prompt": { + "max_length": 8000, + "type": "string" + }, + "quality": { + "type": "string", + "enum": [ + "low", + "medium" + ] + }, + "resolution": { + "type": "string", + "enum": [ + "1k", + "2k" + ] + } + } + }, + { + "id": "xai/grok-imagine-image/v2.0/text-to-image", + "input": "text", + "source_url": "https://fal.ai/models/xai/grok-imagine-image/v2.0/text-to-image/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "2:1", + "20:9", + "19.5:9", + "16:9", + "4:3", + "3:2", + "1:1", + "2:3", + "3:4", + "9:16", + "9:19.5", + "9:20", + "1:2" + ] + }, + "enable_safety_checker": { + "type": "boolean" + }, + "num_images": { + "maximum": 4, + "minimum": 1, + "type": "integer" + }, + "output_format": { + "type": "string", + "enum": [ + "jpeg", + "png", + "webp" + ] + }, + "prompt": { + "max_length": 8000, + "type": "string" + }, + "quality": { + "type": "string", + "enum": [ + "low", + "medium" + ] + }, + "resolution": { + "type": "string", + "enum": [ + "1k", + "2k" + ] + } + } + } + ] + }, + "xai": { + "provider": "xai", + "id": "grok-imagine-image-2.0", + "source_url": "https://docs.x.ai/developers/models/grok-imagine-image-2.0", + "url": "https://docs.x.ai/developers/models/grok-imagine-image-2.0", + "pricing": { + "type": "per_image_tiered", + "tiers": { + "low/1k": 0.04, + "low/1.5k": 0.05, + "low/2k": 0.06, + "medium/1k": 0.06, + "medium/1.5k": 0.07, + "medium/2k": 0.08 + }, + "input_image_usd": 0.01, + "source_url": "https://docs.x.ai/developers/models/grok-imagine-image-2.0" } + }, + "grida": { + "provider": "grida", + "id": "xai/grok-imagine-image-2.0", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "image.xai.grok-imagine-image-2.0.references", + "operation": "image.xai.grok-imagine-image-2.0.references", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.xai.grok-imagine-image-2.0.references.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.edits", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "image.xai.grok-imagine-image-2.0.text", + "operation": "image.xai.grok-imagine-image-2.0.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/image.xai.grok-imagine-image-2.0.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", + "interface": "images.generations", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] } }, "pricing": { @@ -1743,12 +10049,35 @@ "medium/2048x2048": 0.08 } }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/x-ai/grok-imagine-image-2.0" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/xai/grok-imagine-image/v2.0/text-to-image" + }, + "xai": { + "disposition": "listed", + "source_url": "https://docs.x.ai/developers/models/grok-imagine-image-2.0" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" + } + }, "styles": null, "sizes": null } }, "video.models": { "alibaba/wan-3.0": { + "reference_provider": "alibaba", "id": "alibaba/wan-3.0", "label": "Wan 3.0", "short_description": "Alibaba's flagship video model — long clips (up to 30s) with bundled audio at the lowest per-second rates in the catalogue.", @@ -1811,21 +10140,309 @@ "audio": 0.2 } } + }, + "endpoints": [ + { + "id": "alibaba/wan-3.0/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/alibaba/wan-3.0/image-to-video/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "adaptive", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16" + ], + "type": "string" + }, + "audio": { + "type": "boolean" + }, + "duration": { + "maximum": 30, + "minimum": 2, + "type": "integer" + }, + "enable_prompt_expansion": { + "type": "boolean" + }, + "enable_safety_checker": { + "type": "boolean" + }, + "enable_thinking": { + "type": "boolean" + }, + "prompt": { + "max_length": 20000, + "type": "string" + }, + "resolution": { + "enum": [ + "480p", + "720p", + "1080p" + ], + "type": "string" + }, + "seed": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "start_image_url": { + "type": "string" + } + } + }, + { + "id": "alibaba/wan-3.0/text-to-video", + "input": "text", + "source_url": "https://fal.ai/models/alibaba/wan-3.0/text-to-video/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "adaptive", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16" + ], + "type": "string" + }, + "audio": { + "type": "boolean" + }, + "duration": { + "maximum": 30, + "minimum": 2, + "type": "integer" + }, + "enable_prompt_expansion": { + "type": "boolean" + }, + "enable_safety_checker": { + "type": "boolean" + }, + "enable_thinking": { + "type": "boolean" + }, + "prompt": { + "max_length": 20000, + "min_length": 1, + "type": "string" + }, + "resolution": { + "enum": [ + "480p", + "720p", + "1080p" + ], + "type": "string" + }, + "seed": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + } + } + } + ] + }, + "alibaba": { + "provider": "alibaba", + "id": "wan3.0-video", + "source_url": "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video", + "url": "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video", + "pricing": { + "type": "per_second", + "region": "Singapore", + "deployment_scope": "International", + "usd_per_second": { + "480p": 0.05, + "720p": 0.1, + "1080p": 0.2 + }, + "source_url": "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" } + }, + "openrouter": { + "provider": "openrouter", + "id": "alibaba/wan-3.0", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", + "pricing": { + "type": "provider_skus", + "skus": { + "duration_seconds_480p": "0.05", + "duration_seconds_720p": "0.1", + "duration_seconds_1080p": "0.2" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "alibaba/wan-3.0", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "480p", + "720p", + "1080p" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "16:9", + "4:3", + "1:1", + "3:4", + "9:16" + ] + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "alibaba/wan-3.0", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.alibaba.wan-3.0.image", + "operation": "video.alibaba.wan-3.0.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.alibaba.wan-3.0.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.05" + } + ] + } + }, + { + "id": "video.alibaba.wan-3.0.text", + "operation": "video.alibaba.wan-3.0.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.alibaba.wan-3.0.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.05" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/wan-v3.0-video" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/alibaba/wan-3.0/image-to-video" + }, + "alibaba": { + "disposition": "listed", + "source_url": "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "bytedance/seedance-2.0": { + "reference_provider": "byteplus", "id": "bytedance/seedance-2.0", "label": "Seedance 2.0", "short_description": "ByteDance's video model — image-to-video with reference modes, up to 4K, at roughly two-thirds the price of Seedance 2.5.", "vendor": "bytedance", "aspect_ratios": [ + "21:9", "16:9", - "9:16", - "1:1" + "4:3", + "1:1", + "3:4", + "9:16" ], - "min_duration": 5, + "min_duration": 4, "max_duration": 15, "audio": true, "speed_label": "slow", @@ -1852,29 +10469,377 @@ "audio": 0.682 } } + }, + "endpoints": [ + { + "id": "bytedance/seedance-2.0/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/bytedance/seedance-2.0/image-to-video/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto", + "21:9", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16" + ] + }, + "bitrate_mode": { + "enum": [ + "standard", + "high" + ], + "type": "string" + }, + "codec": { + "enum": [ + "auto", + "H264", + "H265" + ], + "type": "string" + }, + "duration": { + "enum": [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "type": "string" + }, + "resolution": { + "enum": [ + "480p", + "720p", + "1080p", + "4k" + ], + "type": "string" + } + } + }, + { + "id": "bytedance/seedance-2.0/text-to-video", + "input": "text", + "source_url": "https://fal.ai/models/bytedance/seedance-2.0/text-to-video/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto", + "21:9", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16" + ] + }, + "bitrate_mode": { + "enum": [ + "standard", + "high" + ], + "type": "string" + }, + "codec": { + "enum": [ + "auto", + "H264", + "H265" + ], + "type": "string" + }, + "duration": { + "enum": [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "prompt": { + "type": "string" + }, + "resolution": { + "enum": [ + "480p", + "720p", + "1080p", + "4k" + ], + "type": "string" + } + } + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "bytedance/seedance-2.0", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.0", + "url": "https://vercel.com/ai-gateway/models/seedance-2.0", + "pricing": { + "type": "video_token_tiers", + "tiers": [ + { + "resolution": "480p", + "no_video_input": { + "cost_per_million_tokens": "7" + }, + "with_video_input": { + "cost_per_million_tokens": "4.3" + } + }, + { + "resolution": "720p", + "no_video_input": { + "cost_per_million_tokens": "7" + }, + "with_video_input": { + "cost_per_million_tokens": "4.3" + } + }, + { + "resolution": "1080p", + "no_video_input": { + "cost_per_million_tokens": "7.7" + }, + "with_video_input": { + "cost_per_million_tokens": "4.7" + } + }, + { + "resolution": "4k", + "no_video_input": { + "cost_per_million_tokens": "4" + }, + "with_video_input": { + "cost_per_million_tokens": "2.4" + } + } + ], + "notes": "Pricing varies based on whether the input contains video. When video is included in the input, all tokens are billed at the reduced rate. Token count includes both input and output video and is subject to minimum token floors based on output duration.", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.0" + }, + "input": "text-or-image" + }, + "byteplus": { + "provider": "byteplus", + "id": "dreamina-seedance-2-0-260128", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "pricing": { + "type": "video_token_tiers", + "usd_per_million_tokens": { + "480p": { + "without_video_input": 7, + "with_video_input": 4.3 + }, + "720p": { + "without_video_input": 7, + "with_video_input": 4.3 + }, + "1080p": { + "without_video_input": 7.7, + "with_video_input": 4.7 + }, + "4k": { + "without_video_input": 4, + "with_video_input": 2.4 + } + }, + "billing_quantity": "usage.completion_tokens", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } }, "openrouter": { "provider": "openrouter", "id": "bytedance/seedance-2.0", - "input": "text-or-image", - "avg_cost_usd": 0.34, - "url": "https://openrouter.ai/bytedance/seedance-2.0", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", "pricing": { - "type": "per_second", - "usd_per_second": { - "480p": { - "audio": 0.06726 + "type": "provider_skus", + "skus": { + "video_tokens": "0.000007", + "video_tokens_4k": "0.000004", + "video_tokens_1080p": "0.0000077", + "video_tokens_without_audio": "0.000007", + "video_tokens_with_video_input": "0.0000043", + "video_tokens_4k_with_video_input": "0.0000024", + "video_tokens_1080p_with_video_input": "0.0000047" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "bytedance/seedance-2.0", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "480p", + "720p", + "1080p", + "4K" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "1:1", + "3:4", + "9:16", + "4:3", + "16:9", + "21:9", + "9:21" + ] + } }, - "720p": { - "audio": 0.06726 + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "bytedance/seedance-2.0", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.bytedance.seedance-2.0.image", + "operation": "video.bytedance.seedance-2.0.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.0.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.014" + } + ] + } + }, + { + "id": "video.bytedance.seedance-2.0.text", + "operation": "video.bytedance.seedance-2.0.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.0.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.014" + } + ] } } - } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.0" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/bytedance/seedance-2.0/image-to-video" + }, + "byteplus": { + "disposition": "listed", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "bytedance/seedance-2.5": { + "reference_provider": "byteplus", "id": "bytedance/seedance-2.5", "label": "Seedance 2.5", "short_description": "ByteDance's latest video model — up to 30-second clips with native audio, reference and editing modes.", @@ -1917,11 +10882,290 @@ "audio": 1.164 } } - } + }, + "endpoints": [ + { + "id": "bytedance/seedance-2.5/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/bytedance/seedance-2.5/image-to-video/api", + "parameters": { + "aspect_ratio": { + "type": "string", + "enum": [ + "auto" + ] + }, + "bitrate_mode": { + "type": "string", + "enum": [ + "standard", + "high" + ] + }, + "codec": { + "type": "string", + "enum": [ + "auto", + "H264", + "H265" + ] + }, + "draft": { + "type": "boolean" + }, + "duration": { + "type": "string", + "enum": [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30" + ] + }, + "generate_audio": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "type": "string" + }, + "resolution": { + "type": "string", + "enum": [ + "480p", + "720p", + "1080p" + ] + } + } + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "bytedance/seedance-2.5", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.5", + "url": "https://vercel.com/ai-gateway/models/seedance-2.5", + "pricing": { + "type": "video_token_tiers", + "tiers": [ + { + "resolution": "480p", + "no_video_input": { + "cost_per_million_tokens": "10.7" + }, + "with_video_input": { + "cost_per_million_tokens": "6.4" + } + }, + { + "resolution": "720p", + "no_video_input": { + "cost_per_million_tokens": "10.7" + }, + "with_video_input": { + "cost_per_million_tokens": "6.4" + } + }, + { + "resolution": "1080p", + "no_video_input": { + "cost_per_million_tokens": "11.7" + }, + "with_video_input": { + "cost_per_million_tokens": "7" + } + } + ], + "notes": "Pricing varies based on whether the input contains video. When video is included in the input, all tokens are billed at the reduced rate. Token count includes both input and output video and is subject to minimum token floors based on output duration.", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.5" + }, + "input": "text-or-image" + }, + "byteplus": { + "provider": "byteplus", + "id": "dreamina-seedance-2-5-260628", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing", + "pricing": { + "type": "video_token_tiers", + "usd_per_million_tokens": { + "480p": { + "without_video_input": 10.7, + "with_video_input": 6.4 + }, + "720p": { + "without_video_input": 10.7, + "with_video_input": 6.4 + }, + "1080p": { + "without_video_input": 11.7, + "with_video_input": 7 + } + }, + "billing_quantity": "usage.completion_tokens", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "bytedance/seedance-2.5", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", + "pricing": { + "type": "provider_skus", + "skus": { + "video_tokens": "0.0000107", + "video_tokens_without_audio": "0.0000107", + "video_tokens_with_video_input": "0.0000064" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "bytedance/seedance-2.5", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "480p", + "720p" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "16:9", + "4:3", + "1:1", + "3:4", + "9:16", + "21:9" + ] + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "bytedance/seedance-2.5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.bytedance.seedance-2.5.image", + "operation": "video.bytedance.seedance-2.5.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.5.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.0214" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/seedance-2.5" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/bytedance/seedance-2.5/image-to-video" + }, + "byteplus": { + "disposition": "listed", + "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "google/veo-3.1": { + "reference_provider": "google", "id": "google/veo-3.1", "label": "Veo 3.1", "short_description": "Google's flagship video model — strong prompt adherence with native, synchronized audio.", @@ -1987,7 +11231,121 @@ "silent": 0.4 } } - } + }, + "endpoints": [ + { + "id": "fal-ai/veo3.1", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p", + "4k" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + }, + { + "id": "fal-ai/veo3.1/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/image-to-video/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "auto", + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p", + "4k" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + } + ] }, "openrouter": { "provider": "openrouter", @@ -2006,10 +11364,113 @@ } } } + }, + "google": { + "provider": "google", + "id": "veo-3.1-generate-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_second", + "usd_per_second": { + "720p": { + "audio": 0.4 + }, + "1080p": { + "audio": 0.4 + }, + "4k": { + "audio": 0.6 + } + }, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "grida": { + "provider": "grida", + "id": "google/veo-3.1", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.google.veo-3.1.image", + "operation": "video.google.veo-3.1.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.4" + } + ] + } + }, + { + "id": "video.google.veo-3.1.text", + "operation": "video.google.veo-3.1.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.4" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/veo-3.1" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/veo-3.1-generate-001" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/image-to-video" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "google/veo-3.1-fast": { + "reference_provider": "google", "id": "google/veo-3.1-fast", "label": "Veo 3.1 Fast", "short_description": "Faster, cheaper Veo 3.1 — the same envelope and native audio at a fraction of the price.", @@ -2075,11 +11536,278 @@ "silent": 0.3 } } + }, + "endpoints": [ + { + "id": "fal-ai/veo3.1/fast", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/fast/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p", + "4k" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + }, + { + "id": "fal-ai/veo3.1/fast/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/fast/image-to-video/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "auto", + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p", + "4k" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + } + ] + }, + "google": { + "provider": "google", + "id": "veo-3.1-fast-generate-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_second", + "usd_per_second": { + "720p": { + "audio": 0.1 + }, + "1080p": { + "audio": 0.12 + }, + "4k": { + "audio": 0.3 + } + }, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/veo-3.1-fast", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", + "pricing": { + "type": "provider_skus", + "skus": { + "duration_seconds_with_audio": "0.12", + "duration_seconds_with_audio_4k": "0.30", + "duration_seconds_without_audio": "0.10", + "duration_seconds_with_audio_720p": "0.10", + "duration_seconds_without_audio_4k": "0.25", + "duration_seconds_without_audio_720p": "0.08" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "google/veo-3.1-fast", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "720p", + "1080p", + "4K" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 4, + 6, + 8 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "16:9", + "9:16" + ] + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "google/veo-3.1-fast", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.google.veo-3.1-fast.image", + "operation": "video.google.veo-3.1-fast.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-fast.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.15" + } + ] + } + }, + { + "id": "video.google.veo-3.1-fast.text", + "operation": "video.google.veo-3.1-fast.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-fast.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.15" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/veo-3.1-fast-generate-001" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/fast/image-to-video" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "google/veo-3.1-lite": { + "reference_provider": "google", "id": "google/veo-3.1-lite", "label": "Veo 3.1 Lite", "short_description": "Budget Veo 3.1 — 720p/1080p clips with native audio for a few cents a second.", @@ -2137,11 +11865,270 @@ "silent": 0.05 } } + }, + "endpoints": [ + { + "id": "fal-ai/veo3.1/lite", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/lite/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + }, + { + "id": "fal-ai/veo3.1/lite/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/lite/image-to-video/api", + "parameters": { + "aspect_ratio": { + "enum": [ + "auto", + "16:9", + "9:16" + ], + "type": "string" + }, + "auto_fix": { + "type": "boolean" + }, + "duration": { + "enum": [ + "4s", + "6s", + "8s" + ], + "type": "string" + }, + "generate_audio": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "type": "string", + "max_length": 20000 + }, + "resolution": { + "enum": [ + "720p", + "1080p" + ], + "type": "string" + }, + "safety_tolerance": { + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "string" + }, + "seed": { + "type": "integer" + } + } + } + ] + }, + "google": { + "provider": "google", + "id": "veo-3.1-lite-generate-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_second", + "usd_per_second": { + "720p": { + "audio": 0.05 + }, + "1080p": { + "audio": 0.08 + } + }, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/veo-3.1-lite", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", + "pricing": { + "type": "provider_skus", + "skus": { + "duration_seconds_with_audio": "0.08", + "duration_seconds_without_audio": "0.05", + "duration_seconds_with_audio_720p": "0.05", + "duration_seconds_without_audio_720p": "0.03" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "google/veo-3.1-lite", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "720p", + "1080p" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 8, + 4, + 6 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "16:9", + "9:16" + ] + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "google/veo-3.1-lite", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.google.veo-3.1-lite.image", + "operation": "video.google.veo-3.1-lite.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-lite.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.05" + } + ] + } + }, + { + "id": "video.google.veo-3.1-lite.text", + "operation": "video.google.veo-3.1-lite.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-lite.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.05" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/veo-3.1-lite-generate-001" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/veo3.1/lite/image-to-video" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } }, "xai/grok-imagine-video-1.5": { + "reference_provider": "xai", "id": "xai/grok-imagine-video-1.5", "label": "Grok Imagine Video 1.5", "short_description": "SpaceXAI's image-to-video model — animates a still into cinematic video with native, lip-synced audio.", @@ -2203,13 +12190,182 @@ "audio": 0.25 } } + }, + "endpoints": [ + { + "id": "xai/grok-imagine-video/v1.5/image-to-video", + "input": "image", + "source_url": "https://fal.ai/models/xai/grok-imagine-video/v1.5/image-to-video/api", + "parameters": { + "duration": { + "minimum": 1, + "maximum": 15, + "type": "integer" + }, + "enable_safety_checker": { + "type": "boolean" + }, + "image_url": { + "type": "string" + }, + "prompt": { + "max_length": 4096, + "type": "string" + }, + "resolution": { + "type": "string", + "enum": [ + "480p", + "720p", + "1080p" + ] + } + } + } + ] + }, + "xai": { + "provider": "xai", + "id": "grok-imagine-video-1.5", + "source_url": "https://docs.x.ai/developers/models/grok-imagine-video-1.5", + "url": "https://docs.x.ai/developers/models/grok-imagine-video-1.5", + "pricing": { + "type": "per_second", + "usd_per_second": { + "480p": 0.08, + "720p": 0.14, + "1080p": 0.25 + }, + "input_image_usd": 0.01, + "source_url": "https://docs.x.ai/developers/models/grok-imagine-video-1.5" } + }, + "openrouter": { + "provider": "openrouter", + "id": "x-ai/grok-imagine-video-1.5", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "url": "https://openrouter.ai/api/v1/videos/models", + "pricing": { + "type": "provider_skus", + "skus": { + "cents_per_image_input": "1", + "cents_per_video_output_second_480p": "8", + "cents_per_video_output_second_720p": "14", + "cents_per_video_output_second_1080p": "25" + }, + "source_unit_notes": "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "endpoints": [ + { + "id": "x-ai/grok-imagine-video-1.5", + "source_url": "https://openrouter.ai/api/v1/videos/models", + "parameters": { + "resolution": { + "enum": [ + "480p", + "720p", + "1080p" + ] + }, + "duration": { + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + }, + "aspect_ratio": { + "type": "string", + "enum": [ + "16:9", + "9:16", + "1:1", + "4:3", + "3:4", + "3:2", + "2:3" + ] + } + }, + "input": "text" + } + ] + }, + "grida": { + "provider": "grida", + "id": "xai/grok-imagine-video-1.5", + "url": "https://gateway.grida.ai/v1/models", + "endpoints": [ + { + "id": "video.xai.grok-imagine-video-1.5.image", + "operation": "video.xai.grok-imagine-video-1.5.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/video.xai.grok-imagine-video-1.5.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", + "interface": "videos", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/models", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/videos/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/grok-imagine-video-1.5" + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/xai/grok-imagine-video/v1.5/image-to-video" + }, + "xai": { + "disposition": "listed", + "source_url": "https://docs.x.ai/developers/models/grok-imagine-video-1.5" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/models" } } } }, "audio.music.models": { "google/lyria-3": { + "reference_provider": "google", "id": "google/lyria-3", "label": "Lyria 3", "short_description": "Generate 30-second 48kHz stereo music clips from text or images.", @@ -2249,9 +12405,64 @@ "mode": "fixed", "seconds": 30 } + }, + "providers": { + "google": { + "provider": "google", + "id": "lyria-3-clip-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_run_flat", + "usd": 0.04, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "fal": { + "provider": "fal", + "id": "fal-ai/lyria3", + "source_url": "https://fal.ai/models/fal-ai/lyria3", + "url": "https://fal.ai/models/fal-ai/lyria3", + "pricing": { + "type": "per_run_flat", + "usd": 0.04, + "source_url": "https://fal.ai/models/fal-ai/lyria3" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/lyria-3-clip-preview", + "source_url": "https://openrouter.ai/google/lyria-3-clip-preview", + "url": "https://openrouter.ai/google/lyria-3-clip-preview", + "pricing": { + "type": "per_run_flat", + "usd": 0.04, + "source_url": "https://openrouter.ai/google/lyria-3-clip-preview" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/lyria-3-clip-preview" + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/lyria3" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } } }, "google/lyria-3-pro": { + "reference_provider": "google", "id": "google/lyria-3-pro", "label": "Lyria 3 Pro", "short_description": "Generate full-length tracks up to ~3 minutes from text or images.", @@ -2291,11 +12502,66 @@ "mode": "up_to", "max_seconds": 180 } + }, + "providers": { + "google": { + "provider": "google", + "id": "lyria-3-pro-preview", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_run_flat", + "usd": 0.08, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "fal": { + "provider": "fal", + "id": "fal-ai/lyria3/pro", + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro", + "url": "https://fal.ai/models/fal-ai/lyria3/pro", + "pricing": { + "type": "per_run_flat", + "usd": 0.08, + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/lyria-3-pro-preview", + "source_url": "https://openrouter.ai/google/lyria-3-pro-preview", + "url": "https://openrouter.ai/google/lyria-3-pro-preview", + "pricing": { + "type": "per_run_flat", + "usd": 0.08, + "source_url": "https://openrouter.ai/google/lyria-3-pro-preview" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/google/lyria-3-pro-preview" + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/lyria3/pro" + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } } } }, "audio.sound_effects.models": { "eleven_text_to_sound_v2": { + "reference_provider": "elevenlabs", "id": "eleven_text_to_sound_v2", "label": "Eleven Text to Sound v2", "short_description": "Generate loopable sound effects up to 30 seconds from text.", @@ -2330,11 +12596,45 @@ "automatic_duration_credits": 100, "specified_duration_credits_per_second": 11 }, + "providers": { + "fal": { + "provider": "fal", + "id": "fal-ai/elevenlabs/sound-effects/v2", + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2", + "url": "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2", + "pricing": { + "type": "per_second", + "usd": 0.002, + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" + }, + "elevenlabs": { + "disposition": "listed", + "source_url": "https://elevenlabs.io/docs/api-reference/text-to-sound-effects/convert" + } + }, "avg_cost_usd": null } }, "audio.text_to_speech.models": { "eleven_v3": { + "reference_provider": "elevenlabs", "id": "eleven_v3", "label": "Eleven v3", "short_description": "Generate expressive speech with bracketed audio and emotion tags.", @@ -2364,11 +12664,45 @@ ], "sample_rate_hz": 44100, "bit_rate_kbps": 128 + }, + "providers": { + "fal": { + "provider": "fal", + "id": "fal-ai/elevenlabs/tts/eleven-v3", + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3", + "url": "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3", + "pricing": { + "type": "per_1000_characters", + "usd": 0.1, + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" + }, + "elevenlabs": { + "disposition": "listed", + "source_url": "https://elevenlabs.io/docs/api-reference/text-to-speech/convert" + } } } }, "three_d.models": { "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d": { + "reference_provider": "tencent", "id": "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d", "label": "Hunyuan 3D v3.1 Pro — Image", "short_description": "Generate a textured 3D asset from one image or up to eight views.", @@ -2403,9 +12737,150 @@ "multi_view": 0.15, "custom_face_count": 0.15 } + }, + "endpoints": [ + { + "id": "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/image-to-3d/api", + "parameters": { + "back_image_url": { + "type": "string" + }, + "bottom_image_url": { + "type": "string" + }, + "enable_pbr": { + "type": "boolean" + }, + "face_count": { + "minimum": 40000, + "type": "integer", + "maximum": 1500000 + }, + "generate_type": { + "enum": [ + "Normal", + "Geometry" + ], + "type": "string" + }, + "input_image_url": { + "type": "string" + }, + "left_front_image_url": { + "type": "string" + }, + "left_image_url": { + "type": "string" + }, + "right_front_image_url": { + "type": "string" + }, + "right_image_url": { + "type": "string" + }, + "top_image_url": { + "type": "string" + } + } + } + ], + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/image-to-3d" + }, + "tencent": { + "disposition": "listed", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "tencent": { + "provider": "tencent", + "id": "SubmitHunyuanTo3DProJob", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "url": "https://www.tencentcloud.com/document/api/1284/75540", + "endpoints": [ + { + "id": "SubmitHunyuanTo3DProJob", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "parameters": { + "Model": { + "type": "string", + "enum": [ + "3.1" + ] + }, + "Version": { + "type": "string", + "enum": [ + "2023-09-01" + ] + } + }, + "input": "image" + } + ], + "qualifications": [ + { + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "notes": "The native API supports version 3.1. Its regular USD price is not established by this API reference; no reseller price is substituted." + } + ] + }, + "grida": { + "provider": "grida", + "id": "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image", + "operation": "three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.015" + } + ] + } + } + ] + } } }, "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d": { + "reference_provider": "tencent", "id": "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d", "label": "Hunyuan 3D v3.1 Pro — Text", "short_description": "Generate a textured 3D asset from a text prompt.", @@ -2438,6 +12913,126 @@ "pbr": 0.15, "custom_face_count": 0.15 } + }, + "endpoints": [ + { + "id": "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/text-to-3d/api", + "parameters": { + "enable_pbr": { + "type": "boolean" + }, + "face_count": { + "minimum": 40000, + "type": "integer", + "maximum": 1500000 + }, + "generate_type": { + "enum": [ + "Normal", + "Geometry" + ], + "type": "string" + }, + "prompt": { + "type": "string", + "max_length": 1024 + } + } + } + ], + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/text-to-3d" + }, + "tencent": { + "disposition": "listed", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "tencent": { + "provider": "tencent", + "id": "SubmitHunyuanTo3DProJob", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "url": "https://www.tencentcloud.com/document/api/1284/75540", + "endpoints": [ + { + "id": "SubmitHunyuanTo3DProJob", + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "parameters": { + "Model": { + "type": "string", + "enum": [ + "3.1" + ] + }, + "Version": { + "type": "string", + "enum": [ + "2023-09-01" + ] + } + }, + "input": "text" + } + ], + "qualifications": [ + { + "source_url": "https://www.tencentcloud.com/document/api/1284/75540", + "notes": "The native API supports version 3.1. Its regular USD price is not established by this API reference; no reseller price is substituted." + } + ] + }, + "grida": { + "provider": "grida", + "id": "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text", + "operation": "three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.015" + } + ] + } + } + ] + } } }, "fal-ai/trellis-2": { @@ -2463,6 +13058,27 @@ "basis": "model", "source_url": "https://huggingface.co/microsoft/TRELLIS.2-4B" }, + "distribution": { + "source_url": "https://github.com/microsoft/TRELLIS.2", + "code": { + "repository_url": "https://github.com/microsoft/TRELLIS.2", + "license": { + "name": "MIT", + "url": "https://github.com/microsoft/TRELLIS.2/blob/main/LICENSE" + } + }, + "weights": [ + { + "id": "microsoft/TRELLIS.2-4B", + "url": "https://huggingface.co/microsoft/TRELLIS.2-4B", + "access": "public", + "license": { + "name": "MIT", + "url": "https://huggingface.co/microsoft/TRELLIS.2-4B" + } + } + ] + }, "pricing": { "type": "per_generation_by_resolution", "default_resolution": "1024", @@ -2471,11 +13087,231 @@ "1024": 0.3, "1536": 0.35 } + }, + "endpoints": [ + { + "id": "fal-ai/trellis-2", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/trellis-2/api", + "parameters": { + "decimation_target": { + "type": "integer", + "maximum": 2000000, + "minimum": 5000 + }, + "image_url": { + "type": "string" + }, + "remesh": { + "type": "boolean" + }, + "remesh_band": { + "type": "number", + "maximum": 4, + "minimum": 0 + }, + "remesh_project": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "resolution": { + "enum": [ + 512, + 1024, + 1536 + ], + "type": "integer" + }, + "seed": { + "type": "integer" + }, + "shape_slat_guidance_interval_end": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "shape_slat_guidance_interval_start": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "shape_slat_guidance_rescale": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "shape_slat_guidance_strength": { + "type": "number", + "maximum": 10, + "minimum": 0 + }, + "shape_slat_rescale_t": { + "type": "number", + "maximum": 6, + "minimum": 1 + }, + "shape_slat_sampling_steps": { + "type": "integer", + "maximum": 50, + "minimum": 1 + }, + "ss_guidance_interval_end": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "ss_guidance_interval_start": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "ss_guidance_rescale": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "ss_guidance_strength": { + "type": "number", + "maximum": 10, + "minimum": 0 + }, + "ss_rescale_t": { + "type": "number", + "maximum": 6, + "minimum": 1 + }, + "ss_sampling_steps": { + "type": "integer", + "maximum": 50, + "minimum": 1 + }, + "tex_slat_guidance_interval_end": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "tex_slat_guidance_interval_start": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "tex_slat_guidance_rescale": { + "type": "number", + "maximum": 1, + "minimum": 0 + }, + "tex_slat_guidance_strength": { + "type": "number", + "maximum": 10, + "minimum": 0 + }, + "tex_slat_rescale_t": { + "type": "number", + "maximum": 6, + "minimum": 1 + }, + "tex_slat_sampling_steps": { + "type": "integer", + "maximum": 50, + "minimum": 1 + }, + "texture_size": { + "enum": [ + 1024, + 2048, + 4096 + ], + "type": "integer" + }, + "uv_unwrap_angle_threshold_deg": { + "type": "number", + "maximum": 180, + "minimum": 0 + }, + "uv_unwrap_global_iterations": { + "type": "integer", + "maximum": 10, + "minimum": 1 + }, + "uv_unwrap_refine_iterations": { + "type": "integer", + "maximum": 10, + "minimum": 0 + }, + "uv_unwrap_smooth_strength": { + "type": "number", + "maximum": 10, + "minimum": 0 + } + } + } + ], + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/trellis-2" + }, + "microsoft": { + "disposition": "not_listed", + "source_url": "https://github.com/microsoft/TRELLIS.2", + "reason": "The official release distributes code and weights; it does not document a Microsoft-hosted inference API for this model." + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "grida": { + "provider": "grida", + "id": "fal-ai/trellis-2", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.fal-ai.trellis-2.image", + "operation": "three-d.fal-ai.trellis-2.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.trellis-2.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "fal_output_units", + "meter": "fal_output_units", + "unit": "provider_unit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.05" + } + ] + } + } + ] + } } } }, "three_d.model_generation.models": { "tripo/h3.1": { + "reference_provider": "tripo", "id": "tripo/h3.1", "vendor": "tripo", "provider": "tripo", @@ -2528,9 +13364,428 @@ "multiview": 20 }, "detailed_geometry_credits": 20 + }, + "endpoints": [ + { + "id": "/generation/text-to-model", + "input": "text", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/standard", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "compress": { + "type": "string", + "enum": [ + "geometry" + ] + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "maximum": 2000000 + }, + "generate_parts": { + "type": "boolean" + }, + "geometry_quality": { + "type": "string", + "enum": [ + "standard", + "detailed" + ] + }, + "image_seed": { + "type": "integer" + }, + "model": { + "type": "string", + "enum": [ + "v3.1-20260211" + ] + }, + "model_seed": { + "type": "integer" + }, + "negative_prompt": { + "type": "string", + "max_length": 255 + }, + "pbr": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 1024 + }, + "quad": { + "type": "boolean" + }, + "smart_low_poly": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/image-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-image-to-model/standard", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "compress": { + "type": "string", + "enum": [ + "geometry" + ] + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "maximum": 2000000 + }, + "generate_parts": { + "type": "boolean" + }, + "geometry_quality": { + "type": "string", + "enum": [ + "standard", + "detailed" + ] + }, + "input": { + "type": "string" + }, + "model": { + "type": "string", + "enum": [ + "v3.1-20260211" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "quad": { + "type": "boolean" + }, + "smart_low_poly": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/multiview-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/standard", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "compress": { + "type": "string", + "enum": [ + "geometry" + ] + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "maximum": 2000000 + }, + "generate_parts": { + "type": "boolean" + }, + "geometry_quality": { + "type": "string", + "enum": [ + "standard", + "detailed" + ] + }, + "inputs": { + "type": "array" + }, + "model": { + "type": "string", + "enum": [ + "v3.1-20260211" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "quad": { + "type": "boolean" + }, + "smart_low_poly": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + } + ], + "providers": { + "fal": { + "provider": "fal", + "id": "tripo3d/h3.1/text-to-3d", + "source_url": "https://fal.ai/models/tripo3d/h3.1/text-to-3d", + "url": "https://fal.ai/models/tripo3d/h3.1/text-to-3d", + "pricing": { + "type": "per_generation_credits", + "usd_per_credit": 0.01, + "base_credits": { + "text": 10, + "image": 20, + "multiview": 20 + }, + "texture_credits": { + "standard": 10, + "detailed": 20 + }, + "detailed_geometry_credits": 20, + "quad_credits": 5, + "source_url": "https://fal.ai/models/tripo3d/h3.1/text-to-3d" + }, + "endpoints": [ + { + "id": "tripo3d/h3.1/text-to-3d", + "source_url": "https://fal.ai/models/tripo3d/h3.1/text-to-3d/api", + "input": "text" + }, + { + "id": "tripo3d/h3.1/image-to-3d", + "source_url": "https://fal.ai/models/tripo3d/h3.1/image-to-3d/api", + "input": "image" + }, + { + "id": "tripo3d/h3.1/multiview-to-3d", + "source_url": "https://fal.ai/models/tripo3d/h3.1/multiview-to-3d/api", + "input": "image" + } + ] + }, + "grida": { + "provider": "grida", + "id": "tripo/h3.1", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.h3.1.image", + "operation": "three-d.tripo.h3.1.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.h3.1.multiview", + "operation": "three-d.tripo.h3.1.multiview", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.multiview.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.h3.1.text", + "operation": "three-d.tripo.h3.1.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/tripo3d/h3.1/text-to-3d" + }, + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/standard" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } } }, "tripo/p1": { + "reference_provider": "tripo", "id": "tripo/p1", "vendor": "tripo", "provider": "tripo", @@ -2577,9 +13832,339 @@ "image": 40, "multiview": 40 } + }, + "endpoints": [ + { + "id": "/generation/text-to-model", + "input": "text", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 50, + "maximum": 20000 + }, + "image_seed": { + "type": "integer" + }, + "model": { + "type": "string", + "enum": [ + "P1-20260311" + ] + }, + "model_seed": { + "type": "integer" + }, + "negative_prompt": { + "type": "string", + "max_length": 255 + }, + "pbr": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 1024 + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/image-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-image-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 50, + "maximum": 20000 + }, + "input": { + "type": "string" + }, + "model": { + "type": "string", + "enum": [ + "P1-20260311" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/multiview-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 50, + "maximum": 20000 + }, + "inputs": { + "type": "array" + }, + "model": { + "type": "string", + "enum": [ + "P1-20260311" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + } + ], + "providers": { + "fal": { + "provider": "fal", + "id": "tripo3d/p1/text-to-3d", + "source_url": "https://fal.ai/models/tripo3d/p1/text-to-3d", + "url": "https://fal.ai/models/tripo3d/p1/text-to-3d", + "pricing": { + "type": "per_generation_credits", + "usd_per_credit": 0.01, + "base_credits": 40, + "texture_credits": 10, + "source_url": "https://fal.ai/models/tripo3d/p1/text-to-3d" + } + }, + "grida": { + "provider": "grida", + "id": "tripo/p1", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.p1.image", + "operation": "three-d.tripo.p1.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.p1.multiview", + "operation": "three-d.tripo.p1.multiview", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.multiview.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.p1.text", + "operation": "three-d.tripo.p1.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/tripo3d/p1/text-to-3d" + }, + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } } }, "tripo/p2": { + "reference_provider": "tripo", "id": "tripo/p2", "vendor": "tripo", "provider": "tripo", @@ -2626,11 +14211,361 @@ "image": 100, "multiview": 100 } + }, + "endpoints": [ + { + "id": "/generation/text-to-model", + "input": "text", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 48, + "maximum": 50000 + }, + "image_seed": { + "type": "integer" + }, + "model": { + "type": "string", + "enum": [ + "P2-20260801" + ] + }, + "model_seed": { + "type": "integer" + }, + "negative_prompt": { + "type": "string", + "max_length": 255 + }, + "pbr": { + "type": "boolean" + }, + "prompt": { + "type": "string", + "max_length": 1024 + }, + "quad": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/image-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-image-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 48, + "maximum": 50000 + }, + "input": { + "type": "string" + }, + "model": { + "type": "string", + "enum": [ + "P2-20260801" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "quad": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + }, + { + "id": "/generation/multiview-to-model", + "input": "image", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/p", + "parameters": { + "auto_size": { + "type": "boolean" + }, + "export_orientation": { + "type": "string", + "enum": [ + "+x", + "-x", + "-y", + "+y" + ] + }, + "export_uv": { + "type": "boolean" + }, + "face_limit": { + "type": "integer", + "minimum": 48, + "maximum": 50000 + }, + "inputs": { + "type": "array" + }, + "model": { + "type": "string", + "enum": [ + "P2-20260801" + ] + }, + "model_seed": { + "type": "integer" + }, + "pbr": { + "type": "boolean" + }, + "quad": { + "type": "boolean" + }, + "texture": { + "type": "boolean" + }, + "texture_quality": { + "type": "string", + "enum": [ + "fast", + "standard", + "detailed", + "extreme" + ] + }, + "texture_seed": { + "type": "integer" + }, + "texture_version": { + "type": "string", + "enum": [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123" + ] + } + } + } + ], + "providers": { + "fal": { + "provider": "fal", + "id": "tripo3d/p2/text-to-3d", + "url": "https://fal.ai/models/tripo3d/p2/text-to-3d", + "source_url": "https://fal.ai/models/tripo3d/p2/text-to-3d/api", + "qualifications": [ + { + "source_url": "https://fal.ai/models/tripo3d/p2/text-to-3d", + "notes": "The public endpoint documentation verifies P2 submission. No regular USD rate is published on the inspected endpoint page; direct-provider pricing is not substituted." + } + ], + "endpoints": [ + { + "id": "tripo3d/p2/text-to-3d", + "source_url": "https://fal.ai/models/tripo3d/p2/text-to-3d/api", + "input": "text" + }, + { + "id": "tripo3d/p2/image-to-3d", + "source_url": "https://fal.ai/models/tripo3d/p2/image-to-3d/api", + "input": "image" + } + ] + }, + "grida": { + "provider": "grida", + "id": "tripo/p2", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.p2.image", + "operation": "three-d.tripo.p2.image", + "input": "image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.image.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.p2.multiview", + "operation": "three-d.tripo.p2.multiview", + "input": "multi_image", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.multiview.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + }, + { + "id": "three-d.tripo.p2.text", + "operation": "three-d.tripo.p2.text", + "input": "text", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.text.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/tripo3d/p2/text-to-3d/api" + }, + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } } } }, "three_d.rigging.models": { "tripo/rig-v1.0": { + "reference_provider": "tripo", "id": "tripo/rig-v1.0", "vendor": "tripo", "provider": "tripo", @@ -2672,9 +14607,108 @@ "basis": "provider_endpoint", "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig", "date": null + }, + "endpoints": [ + { + "id": "/animations/rig", + "input": "task", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig", + "parameters": { + "input": { + "type": "string" + }, + "model": { + "type": "string", + "enum": [ + "v1.0-20240301" + ] + }, + "out_format": { + "type": "string", + "enum": [ + "glb", + "fbx" + ] + }, + "rig_type": { + "type": "string", + "enum": [ + "biped" + ] + }, + "spec": { + "type": "string", + "enum": [ + "tripo", + "mixamo" + ] + } + } + } + ], + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "No matching model/version is listed in the inspected public media catalogue." + }, + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "grida": { + "provider": "grida", + "id": "tripo/rig-v1.0", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.rig-v1.0.mesh", + "operation": "three-d.tripo.rig-v1.0.mesh", + "input": "asset", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-v1.0.mesh.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } } }, "tripo/rig-v2.5": { + "reference_provider": "tripo", "id": "tripo/rig-v2.5", "vendor": "tripo", "provider": "tripo", @@ -2721,10 +14755,114 @@ "basis": "provider_endpoint", "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig", "date": null + }, + "endpoints": [ + { + "id": "/animations/rig", + "input": "task", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig", + "parameters": { + "input": { + "type": "string" + }, + "model": { + "type": "string", + "enum": [ + "v2.5-20260210" + ] + }, + "out_format": { + "type": "string", + "enum": [ + "glb", + "fbx" + ] + }, + "rig_type": { + "type": "string", + "enum": [ + "quadruped", + "hexapod", + "octopod", + "avian", + "serpentine", + "aquatic" + ] + }, + "spec": { + "type": "string", + "enum": [ + "tripo", + "mixamo" + ] + } + } + } + ], + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "No matching model/version is listed in the inspected public media catalogue." + }, + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig" + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "grida": { + "provider": "grida", + "id": "tripo/rig-v2.5", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.rig-v2.5.mesh", + "operation": "three-d.tripo.rig-v2.5.mesh", + "input": "asset", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-v2.5.mesh.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } } } }, "three_d.rig_check.operation": { + "reference_provider": "tripo", "feature": "rig-check", "provider": "tripo", "binding_id": "rig-check", @@ -2744,11 +14882,90 @@ "aquatic" ], "url": "https://developers.tripo3d.ai/en/docs/animations-rig-check", + "label": "Tripo Rig Check", + "vendor": "tripo", "pricing": { "type": "per_operation_credits", "credits": 0, "usd_per_credit": 0.01, "source_url": "https://developers.tripo3d.ai/en/pricing" + }, + "release": { + "basis": "provider_endpoint", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig-check", + "date": null + }, + "endpoints": [ + { + "id": "/animations/rig-check", + "input": "task", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig-check", + "parameters": { + "input": { + "type": "string" + } + } + } + ], + "provider_coverage": { + "tripo": { + "disposition": "listed", + "source_url": "https://developers.tripo3d.ai/en/docs/animations-rig-check" + }, + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No rig-check operation is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No rig-check operation is listed in the inspected public Gateway catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "No matching Tripo rig-check operation is listed in the inspected public media catalogue." + }, + "grida": { + "disposition": "listed", + "source_url": "https://gateway.grida.ai/v1/endpoints" + } + }, + "providers": { + "grida": { + "provider": "grida", + "id": "three-d.tripo.rig-check", + "url": "https://gateway.grida.ai/v1/endpoints", + "endpoints": [ + { + "id": "three-d.tripo.rig-check", + "operation": "three-d.tripo.rig-check", + "input": "asset", + "source_url": "https://gateway.grida.ai/schemas/operations.json", + "request_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-check.input", + "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/rig_check_result", + "interface": "endpoints", + "published_pricing": { + "source_url": "https://gateway.grida.ai/v1/endpoints", + "currency": "USD", + "components": [ + { + "id": "provider_credits", + "meter": "provider_credits", + "unit": "provider_credit", + "per_quantity": "1", + "when": {}, + "quantity_rounding": { + "mode": "none" + }, + "usd_per_unit": "0.01" + } + ] + } + } + ] + } } }, "image_tools.models": { @@ -2762,9 +14979,27 @@ "basis": "provider_endpoint", "source_url": "https://replicate.com/851-labs/background-remover/versions", "date": null + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "This card identifies a specific hosted implementation; no identical implementation/version was verified in the public media catalogue." + } } }, "bria/remove-background": { + "reference_provider": "bria", "id": "bria/remove-background", "label": "Bria Remove Background", "url": "https://replicate.com/bria/remove-background", @@ -2774,6 +15009,54 @@ "date": "2024-11-12", "basis": "model", "source_url": "https://bria.ai/blog/brias-new-state-of-the-art-remove-background-outperforms-the-competition" + }, + "providers": { + "fal": { + "provider": "fal", + "id": "fal-ai/bria/background/remove", + "source_url": "https://fal.ai/models/fal-ai/bria/background/remove", + "url": "https://fal.ai/models/fal-ai/bria/background/remove", + "pricing": { + "type": "per_image_tiered", + "tiers": { + "without_prompt": 0.018, + "with_prompt": 0.03 + }, + "source_url": "https://fal.ai/models/fal-ai/bria/background/remove" + } + }, + "bria": { + "provider": "bria", + "id": "/v2/image/edit/remove_background", + "source_url": "https://docs.bria.ai/image-editing/editing/background-remove", + "url": "https://docs.bria.ai/image-editing/editing/background-remove", + "qualifications": [ + { + "source_url": "https://docs.bria.ai/image-editing/editing/background-remove", + "notes": "Native background-removal endpoint verified. The API documentation does not establish a regular USD price or pin the current hosted checkpoint; neither is inferred from reseller listings." + } + ] + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "listed", + "source_url": "https://fal.ai/models/fal-ai/bria/background/remove" + }, + "bria": { + "disposition": "listed", + "source_url": "https://docs.bria.ai/image-editing/editing/background-remove" + } } }, "nightmareai/real-esrgan": { @@ -2786,9 +15069,33 @@ "date": "2021-07-22", "basis": "model", "source_url": "https://github.com/xinntao/Real-ESRGAN/releases/tag/v0.1.0" + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "This card identifies a specific hosted implementation; no identical implementation/version was verified in the public media catalogue." + } + }, + "distribution": { + "source_url": "https://github.com/xinntao/Real-ESRGAN", + "code": { + "repository_url": "https://github.com/xinntao/Real-ESRGAN" + } } }, "recraft-ai/recraft-remove-background": { + "reference_provider": "recraft", "id": "recraft-ai/recraft-remove-background", "label": "Recraft Remove Background", "url": "https://replicate.com/recraft-ai/recraft-remove-background", @@ -2798,11 +15105,54 @@ "basis": "provider_endpoint", "source_url": "https://replicate.com/recraft-ai/recraft-remove-background/versions", "date": null + }, + "providers": { + "recraft": { + "provider": "recraft", + "id": "/v1/images/removeBackground", + "source_url": "https://www.recraft.ai/docs/api-reference/tools/remove-background", + "url": "https://www.recraft.ai/docs/api-reference/tools/remove-background", + "pricing": { + "type": "per_run_flat", + "usd": 0.01, + "source_url": "https://www.recraft.ai/docs/api-reference/tools/remove-background" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "not_listed", + "source_url": "https://openrouter.ai/api/v1/models", + "reason": "No matching model/version is listed in the inspected public model catalogue." + }, + "vercel": { + "disposition": "not_listed", + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "reason": "No matching model/version is listed in the inspected public Gateway model catalogue." + }, + "fal": { + "disposition": "not_listed", + "source_url": "https://fal.ai/models", + "reason": "No matching model/version is listed in the inspected public media catalogue." + }, + "recraft": { + "disposition": "listed", + "source_url": "https://www.recraft.ai/docs/api-reference/tools/remove-background" + } } } }, "embedding.models": { "google/gemini-embedding-2": { + "pricing": { + "type": "per_token_input", + "input": 0.2, + "image_input": 0.45, + "audio_input": 6.5, + "video_input": 12, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + }, + "reference_provider": "google", "id": "google/gemini-embedding-2", "label": "Gemini Embedding 2", "deprecated": false, @@ -2812,16 +15162,72 @@ "dimensions": 1536, "normalized": true, "multimodal": true, - "pricing": { - "type": "per_token_input", - "input": 0.15 - }, "avg_cost_usd": 2e-05, "url": "https://ai.google.dev/gemini-api/docs/models/gemini-embedding-2-preview", "release": { "date": "2026-03-10", "basis": "model", "source_url": "https://ai.google.dev/gemini-api/docs/changelog" + }, + "providers": { + "google": { + "provider": "google", + "id": "gemini-embedding-2", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "pricing": { + "type": "per_token_input", + "input": 0.2, + "image_input": 0.45, + "audio_input": 6.5, + "video_input": 12, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } + }, + "vercel": { + "provider": "vercel", + "id": "google/gemini-embedding-2", + "source_url": "https://vercel.com/ai-gateway/models/gemini-embedding-2", + "url": "https://vercel.com/ai-gateway/models/gemini-embedding-2", + "pricing": { + "type": "per_token_input", + "input": 0.2, + "audio_input": 6.5, + "source_url": "https://vercel.com/ai-gateway/models/gemini-embedding-2" + } + }, + "openrouter": { + "provider": "openrouter", + "id": "google/gemini-embedding-2", + "source_url": "https://openrouter.ai/api/v1/embeddings/models", + "url": "https://openrouter.ai/api/v1/embeddings/models", + "pricing": { + "type": "per_token_input", + "input": 0.2, + "image_input": 0.45, + "audio_input": 6.5, + "source_url": "https://openrouter.ai/api/v1/embeddings/models" + } + } + }, + "provider_coverage": { + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/api/v1/embeddings/models" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gemini-embedding-2" + }, + "fal": { + "disposition": "excluded", + "source_url": "https://fal.ai/models", + "reason": "Embedding models are outside this catalogue's fal media-provider coverage." + }, + "google": { + "disposition": "listed", + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" + } } } } diff --git a/models/851-labs/background-remover/card.toml b/models/851-labs/background-remover/card.toml index cd57217..56c5553 100644 --- a/models/851-labs/background-remover/card.toml +++ b/models/851-labs/background-remover/card.toml @@ -10,3 +10,8 @@ cost_usd = 0.00048 [release] basis = "provider_endpoint" source_url = "https://replicate.com/851-labs/background-remover/versions" + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "not_listed", "source_url" = "https://fal.ai/models", "reason" = "This card identifies a specific hosted implementation; no identical implementation/version was verified in the public media catalogue." } diff --git a/models/alibaba/wan-3.0/card.toml b/models/alibaba/wan-3.0/card.toml index 38b9217..6771e4d 100644 --- a/models/alibaba/wan-3.0/card.toml +++ b/models/alibaba/wan-3.0/card.toml @@ -1,3 +1,4 @@ +reference_provider = "alibaba" id = "alibaba/wan-3.0" section = "video.models" @@ -45,3 +46,116 @@ type = "per_second" 480p = { audio = 0.05 } 720p = { audio = 0.1 } 1080p = { audio = 0.2 } + +[[providers.fal.endpoints]] +id = "alibaba/wan-3.0/image-to-video" +input = "image" +source_url = "https://fal.ai/models/alibaba/wan-3.0/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"], "type" = "string" } +"audio" = { "type" = "boolean" } +"duration" = { "maximum" = 30, "minimum" = 2, "type" = "integer" } +"enable_prompt_expansion" = { "type" = "boolean" } +"enable_safety_checker" = { "type" = "boolean" } +"enable_thinking" = { "type" = "boolean" } +"prompt" = { "max_length" = 20000, "type" = "string" } +"resolution" = { "enum" = ["480p", "720p", "1080p"], "type" = "string" } +"seed" = { "maximum" = 2147483647, "minimum" = 0, "type" = "integer" } +"start_image_url" = { "type" = "string" } + +[[providers.fal.endpoints]] +id = "alibaba/wan-3.0/text-to-video" +input = "text" +source_url = "https://fal.ai/models/alibaba/wan-3.0/text-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"], "type" = "string" } +"audio" = { "type" = "boolean" } +"duration" = { "maximum" = 30, "minimum" = 2, "type" = "integer" } +"enable_prompt_expansion" = { "type" = "boolean" } +"enable_safety_checker" = { "type" = "boolean" } +"enable_thinking" = { "type" = "boolean" } +"prompt" = { "max_length" = 20000, "min_length" = 1, "type" = "string" } +"resolution" = { "enum" = ["480p", "720p", "1080p"], "type" = "string" } +"seed" = { "maximum" = 2147483647, "minimum" = 0, "type" = "integer" } + +[providers.alibaba] +provider = "alibaba" +id = "wan3.0-video" +source_url = "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" +url = "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" +pricing = { "type" = "per_second", "region" = "Singapore", "deployment_scope" = "International", "usd_per_second" = { "480p" = 0.05, "720p" = 0.1, "1080p" = 0.2 }, "source_url" = "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/wan-v3.0-video" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/alibaba/wan-3.0/image-to-video" } +alibaba = { "disposition" = "listed", "source_url" = "https://www.alibabacloud.com/help/en/model-studio/wan3-0-video" } + +[providers.openrouter] +provider = "openrouter" +id = "alibaba/wan-3.0" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "duration_seconds_480p" = "0.05", "duration_seconds_720p" = "0.1", "duration_seconds_1080p" = "0.2" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "alibaba/wan-3.0", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "480p", + "720p", + "1080p", + ] }, "duration" = { "type" = "integer", "enum" = [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "16:9", + "4:3", + "1:1", + "3:4", + "9:16", + ] } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "alibaba/wan-3.0" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.alibaba.wan-3.0.image", "operation" = "video.alibaba.wan-3.0.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.alibaba.wan-3.0.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.05" }, + ] } }, + { "id" = "video.alibaba.wan-3.0.text", "operation" = "video.alibaba.wan-3.0.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.alibaba.wan-3.0.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.05" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/anthropic/claude-fable-5.1/card.toml b/models/anthropic/claude-fable-5.1/card.toml index f397883..6fe8e96 100644 --- a/models/anthropic/claude-fable-5.1/card.toml +++ b/models/anthropic/claude-fable-5.1/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-fable-5.1" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Fable 5.1" short_label = "Fable 5.1" @@ -14,3 +16,133 @@ cost = { input = 10, output = 50, cache_read = 0.25, cache_write = 12.5 } date = "2026-09-01" basis = "model" source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-fable-5.1" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-fable-5.1", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-fable-5.1" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.00000025" +input_cache_write = "0.0000125" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-fable-5-1" +url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" +source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" +endpoints = [ + { id = "claude-fable-5-1", input = "text", source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.00001" +output = "0.00005" +input_cache_write = "0.0000125" +input_cache_write_1h = "0.00002" +input_cache_read = "0.00000025" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-fable-5.1" +url = "https://openrouter.ai/anthropic/claude-fable-5.1" +source_url = "https://openrouter.ai/anthropic/claude-fable-5.1" +endpoints = [ + { id = "anthropic/claude-fable-5.1", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-fable-5.1" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.00000025" +input_cache_write = "0.0000125" +input_cache_write_1h = "0.00002" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/fable-5-1/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-fable-5.1" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-fable-5.1" + +[providers.grida] +provider = "grida" +id = "anthropic/claude-fable-5.1" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "anthropic/claude-fable-5.1", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00001" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00000025" }, + { "id" = "output_tokens", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00005" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-fable-5/card.toml b/models/anthropic/claude-fable-5/card.toml index c7accf4..79e141b 100644 --- a/models/anthropic/claude-fable-5/card.toml +++ b/models/anthropic/claude-fable-5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-fable-5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Fable 5" short_label = "Fable 5" @@ -14,3 +16,133 @@ cost = { input = 10, output = 50, cache_read = 1, cache_write = 12.5 } date = "2026-06-09" basis = "model" source_url = "https://platform.claude.com/docs/en/release-notes/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-fable-5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-fable-5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-fable-5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.000001" +input_cache_write = "0.0000125" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-fable-5" +url = "https://platform.claude.com/docs/en/models/fable-5/overview" +source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" +endpoints = [ + { id = "claude-fable-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.00001" +output = "0.00005" +input_cache_write = "0.0000125" +input_cache_write_1h = "0.00002" +input_cache_read = "0.000001" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-fable-5" +url = "https://openrouter.ai/anthropic/claude-fable-5" +source_url = "https://openrouter.ai/anthropic/claude-fable-5" +endpoints = [ + { id = "anthropic/claude-fable-5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-fable-5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.000001" +input_cache_write = "0.0000125" +input_cache_write_1h = "0.00002" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/fable-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-fable-5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-fable-5" + +[providers.grida] +provider = "grida" +id = "anthropic/claude-fable-5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "anthropic/claude-fable-5", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00001" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000001" }, + { "id" = "output_tokens", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00005" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-haiku-5.5/card.toml b/models/anthropic/claude-haiku-5.5/card.toml index 6776e70..bfb535d 100644 --- a/models/anthropic/claude-haiku-5.5/card.toml +++ b/models/anthropic/claude-haiku-5.5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-haiku-5.5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Haiku 5.5" short_label = "Haiku 5.5" @@ -26,3 +28,149 @@ cache_write = 0.125 input_tokens_above = 100_000 input_multiplier = 5 output_multiplier = 5 + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-haiku-5.5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-haiku-5.5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-haiku-5.5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.0000001" +output = "0.0000005" +input_cache_read = "0.00000001" +input_cache_write = "0.000000125" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000001", "maximum_input_tokens" = 100001 }, + { "meter" = "input", "minimum_input_tokens" = 100001, "usd_per_token" = "0.0000005" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000005", "maximum_input_tokens" = 100001 }, + { "meter" = "output", "minimum_input_tokens" = 100001, "usd_per_token" = "0.0000025" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.00000001", "maximum_input_tokens" = 100001 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 100001, "usd_per_token" = "0.00000005" }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 0, "usd_per_token" = "0.000000125", "maximum_input_tokens" = 100001 }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 100001, "usd_per_token" = "0.000000625" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-haiku-5-5" +url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" +source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" +endpoints = [ + { id = "claude-haiku-5-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.0000001" +output = "0.0000005" +input_cache_write = "0.000000125" +input_cache_write_1h = "0.0000002" +input_cache_read = "0.00000001" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 100001, usd_per_token = "0.0000001" }, + { meter = "input", minimum_input_tokens = 100001, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 100001, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 100001, usd_per_token = "0.0000025" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 100001, usd_per_token = "0.000000125" }, + { meter = "input_cache_write", minimum_input_tokens = 100001, usd_per_token = "0.000000625" }, + { meter = "input_cache_write_1h", minimum_input_tokens = 0, maximum_input_tokens = 100001, usd_per_token = "0.0000002" }, + { meter = "input_cache_write_1h", minimum_input_tokens = 100001, usd_per_token = "0.0000010" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 100001, usd_per_token = "0.00000001" }, + { meter = "input_cache_read", minimum_input_tokens = 100001, usd_per_token = "0.00000005" }, +] + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-haiku-5.5" +url = "https://openrouter.ai/anthropic/claude-haiku-5.5" +source_url = "https://openrouter.ai/anthropic/claude-haiku-5.5" +endpoints = [ + { id = "anthropic/claude-haiku-5.5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-haiku-5.5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.0000001" +output = "0.0000005" +input_cache_read = "0.00000001" +input_cache_write = "0.000000125" +input_cache_write_1h = "0.0000002" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 100000, usd_per_token = "0.0000001" }, + { meter = "input", minimum_input_tokens = 100000, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 100000, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 100000, usd_per_token = "0.0000025" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 100000, usd_per_token = "0.00000001" }, + { meter = "input_cache_read", minimum_input_tokens = 100000, usd_per_token = "0.00000005" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 100000, usd_per_token = "0.000000125" }, + { meter = "input_cache_write", minimum_input_tokens = 100000, usd_per_token = "0.000000625" }, + { meter = "input_cache_write_1h", minimum_input_tokens = 0, maximum_input_tokens = 100000, usd_per_token = "0.0000002" }, + { meter = "input_cache_write_1h", minimum_input_tokens = 100000, usd_per_token = "0.000001" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/haiku-5-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-haiku-5.5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-haiku-5.5" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-opus-4.8/card.toml b/models/anthropic/claude-opus-4.8/card.toml index 36568e7..403b89b 100644 --- a/models/anthropic/claude-opus-4.8/card.toml +++ b/models/anthropic/claude-opus-4.8/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-opus-4.8" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Opus 4.8" short_label = "Opus 4.8" @@ -14,3 +16,133 @@ cost = { input = 5, output = 25, cache_read = 0.5, cache_write = 6.25 } date = "2026-05-28" basis = "model" source_url = "https://platform.claude.com/docs/en/release-notes/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-opus-4.8" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-opus-4.8", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-opus-4.8" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000005" +output = "0.000025" +input_cache_read = "0.0000005" +input_cache_write = "0.00000625" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-opus-4-8" +url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" +source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" +endpoints = [ + { id = "claude-opus-4-8", input = "text", source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.000005" +output = "0.000025" +input_cache_write = "0.00000625" +input_cache_write_1h = "0.00001" +input_cache_read = "0.0000005" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-opus-4.8" +url = "https://openrouter.ai/anthropic/claude-opus-4.8" +source_url = "https://openrouter.ai/anthropic/claude-opus-4.8" +endpoints = [ + { id = "anthropic/claude-opus-4.8", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-opus-4.8" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.000005" +output = "0.000025" +input_cache_read = "0.0000005" +input_cache_write = "0.00000625" +input_cache_write_1h = "0.00001" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/opus-4-8/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-opus-4.8" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-opus-4.8" + +[providers.grida] +provider = "grida" +id = "anthropic/claude-opus-4.8" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "anthropic/claude-opus-4.8", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000005" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0000005" }, + { "id" = "output_tokens", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000025" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-opus-5.5/card.toml b/models/anthropic/claude-opus-5.5/card.toml index ba66f82..776c1e6 100644 --- a/models/anthropic/claude-opus-5.5/card.toml +++ b/models/anthropic/claude-opus-5.5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-opus-5.5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Opus 5.5" short_label = "Opus 5.5" @@ -14,3 +16,115 @@ cost = { input = 4, output = 20, cache_read = 0.2, cache_write = 5 } date = "2026-09-22" basis = "model" source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-opus-5.5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-opus-5.5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-opus-5.5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000004" +output = "0.00002" +input_cache_read = "0.0000002" +input_cache_write = "0.000005" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-opus-5-5" +url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" +source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" +endpoints = [ + { id = "claude-opus-5-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.000004" +output = "0.00002" +input_cache_write = "0.000005" +input_cache_write_1h = "0.000008" +input_cache_read = "0.0000002" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-opus-5.5" +url = "https://openrouter.ai/anthropic/claude-opus-5.5" +source_url = "https://openrouter.ai/anthropic/claude-opus-5.5" +endpoints = [ + { id = "anthropic/claude-opus-5.5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-opus-5.5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.000004" +output = "0.00002" +input_cache_read = "0.0000002" +input_cache_write = "0.000005" +input_cache_write_1h = "0.000008" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/opus-5-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-opus-5.5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-opus-5.5" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-opus-5/card.toml b/models/anthropic/claude-opus-5/card.toml index bd588d8..6cd9d6c 100644 --- a/models/anthropic/claude-opus-5/card.toml +++ b/models/anthropic/claude-opus-5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-opus-5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Opus 5" short_label = "Opus 5" @@ -14,3 +16,133 @@ cost = { input = 5, output = 25, cache_read = 0.5, cache_write = 6.25 } date = "2026-07-24" basis = "model" source_url = "https://platform.claude.com/docs/en/release-notes/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-opus-5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-opus-5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-opus-5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000005" +output = "0.000025" +input_cache_read = "0.0000005" +input_cache_write = "0.00000625" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-opus-5" +url = "https://platform.claude.com/docs/en/models/opus-5/overview" +source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" +endpoints = [ + { id = "claude-opus-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.000005" +output = "0.000025" +input_cache_write = "0.00000625" +input_cache_write_1h = "0.00001" +input_cache_read = "0.0000005" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-opus-5" +url = "https://openrouter.ai/anthropic/claude-opus-5" +source_url = "https://openrouter.ai/anthropic/claude-opus-5" +endpoints = [ + { id = "anthropic/claude-opus-5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-opus-5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.000005" +output = "0.000025" +input_cache_read = "0.0000005" +input_cache_write = "0.00000625" +input_cache_write_1h = "0.00001" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/opus-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-opus-5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-opus-5" + +[providers.grida] +provider = "grida" +id = "anthropic/claude-opus-5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "anthropic/claude-opus-5", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000005" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0000005" }, + { "id" = "output_tokens", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000025" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-sonnet-5.5/card.toml b/models/anthropic/claude-sonnet-5.5/card.toml index 7005424..5a2e709 100644 --- a/models/anthropic/claude-sonnet-5.5/card.toml +++ b/models/anthropic/claude-sonnet-5.5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-sonnet-5.5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Sonnet 5.5" short_label = "Sonnet 5.5" @@ -14,3 +16,115 @@ cost = { input = 2, output = 10, cache_read = 0.1, cache_write = 2.5 } date = "2026-09-28" basis = "model" source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-sonnet-5.5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-sonnet-5.5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-sonnet-5.5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000001" +input_cache_write = "0.0000025" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-sonnet-5-5" +url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" +source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" +endpoints = [ + { id = "claude-sonnet-5-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.000002" +output = "0.00001" +input_cache_write = "0.0000025" +input_cache_write_1h = "0.000004" +input_cache_read = "0.0000001" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-sonnet-5.5" +url = "https://openrouter.ai/anthropic/claude-sonnet-5.5" +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5.5" +endpoints = [ + { id = "anthropic/claude-sonnet-5.5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5.5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000001" +input_cache_write = "0.0000025" +input_cache_write_1h = "0.000004" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/sonnet-5-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-sonnet-5.5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5.5" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/anthropic/claude-sonnet-5/card.toml b/models/anthropic/claude-sonnet-5/card.toml index 965bf82..0661c30 100644 --- a/models/anthropic/claude-sonnet-5/card.toml +++ b/models/anthropic/claude-sonnet-5/card.toml @@ -1,5 +1,7 @@ id = "anthropic/claude-sonnet-5" section = "text.catalog" +vendor = "anthropic" +reference_provider = "anthropic" label = "Claude Sonnet 5" short_label = "Sonnet 5" @@ -14,3 +16,133 @@ cost = { input = 2, output = 10, cache_read = 0.2, cache_write = 2.5 } date = "2026-06-30" basis = "model" source_url = "https://platform.claude.com/docs/en/release-notes/overview" + +[providers.vercel] +provider = "vercel" +id = "anthropic/claude-sonnet-5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "anthropic/claude-sonnet-5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/claude-sonnet-5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000002" +input_cache_write = "0.0000025" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://platform.claude.com/docs/en/build-with-claude/vision" +patch_size_px = 28 +maximum_tokens_per_image = 4784 +detail_maximum_edges = { "default" = 2576 } + +[providers.anthropic] +provider = "anthropic" +id = "claude-sonnet-5" +url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" +source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" +endpoints = [ + { id = "claude-sonnet-5", input = "text", source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" }, +] + +[providers.anthropic.token_pricing] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" +unit = "usd_per_token" +scope = "Standard global synchronous service; input_cache_write is the 5-minute cache write, input_cache_write_1h is the 1-hour cache write. Batch, fast mode and regional premiums are excluded." +input = "0.000002" +output = "0.00001" +input_cache_write = "0.0000025" +input_cache_write_1h = "0.000004" +input_cache_read = "0.0000002" + +[providers.anthropic.capabilities] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" +image_input = true +reasoning = true + +[providers.anthropic.limits] +source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "anthropic/claude-sonnet-5" +url = "https://openrouter.ai/anthropic/claude-sonnet-5" +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5" +endpoints = [ + { id = "anthropic/claude-sonnet-5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. input_cache_write is the 5-minute cache write; input_cache_write_1h is the 1-hour cache write." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000002" +input_cache_write = "0.0000025" +input_cache_write_1h = "0.000004" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[provider_coverage.anthropic] +disposition = "listed" +source_url = "https://platform.claude.com/docs/en/models/sonnet-5/overview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/claude-sonnet-5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/anthropic/claude-sonnet-5" + +[providers.grida] +provider = "grida" +id = "anthropic/claude-sonnet-5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "anthropic/claude-sonnet-5", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.000002" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0000002" }, + { "id" = "output_tokens", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00001" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/black-forest-labs/flux-2-max/card.toml b/models/black-forest-labs/flux-2-max/card.toml index a27ad2e..907e08b 100644 --- a/models/black-forest-labs/flux-2-max/card.toml +++ b/models/black-forest-labs/flux-2-max/card.toml @@ -1,13 +1,13 @@ +reference_provider = "bfl" id = "bfl/flux-2-max" section = "image.models" -null_keys = ["styles", "sizes"] +null_keys = ["styles", "sizes", "constraints"] label = "Flux 2 Max" short_description = "Black Forest Labs' highest-fidelity Flux 2 — maximum prompt adherence and detail." vendor = "black-forest-labs" speed_label = "slow" speed_max = "45s" -constraints = { min_edge = 256, max_edge = 1440 } pricing = { type = "per_image_flat", usd = 0.07 } avg_cost_usd = 0.07 @@ -33,6 +33,89 @@ references = { id = "black-forest-labs/flux.2-max", max = 8 } [providers.fal] provider = "fal" id = "fal-ai/flux-2-max" -pricing = { type = "per_image_flat", usd = 0.07 } +pricing = { type = "per_image_flat", usd = 0.07, included_megapixels = 1, included_megapixels_scope = "processed", usd_per_additional_megapixel = 0.03, input_megapixels_billed = true, source_url = "https://fal.ai/models/fal-ai/flux-2-max/edit" } avg_cost_usd = 0.07 url = "https://fal.ai/models/fal-ai/flux-2-max" + +[[providers.fal.endpoints]] +id = "fal-ai/flux-2-max" +input = "text" +source_url = "https://fal.ai/models/fal-ai/flux-2-max/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", +] } +"image_size.height" = { "type" = "integer", "maximum" = 2560, "minimum" = 256, "multiple_of" = 16 } +"image_size.width" = { "type" = "integer", "maximum" = 2560, "minimum" = 256, "multiple_of" = 16 } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5"], "type" = "string" } +"seed" = { "type" = "integer" } + +[providers.fal.endpoints.image_constraints] +max_edge = 2560 +min_edge = 256 +max_pixels = 4194304 +step = 16 + +[[providers.fal.endpoints]] +id = "fal-ai/flux-2-max/edit" +input = "image" +source_url = "https://fal.ai/models/fal-ai/flux-2-max/edit/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "auto", + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", +] } +"image_size.height" = { "type" = "integer", "maximum" = 14142, "minimum" = 1 } +"image_size.width" = { "type" = "integer", "maximum" = 14142, "minimum" = 1 } +"image_urls" = { "type" = "array" } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5"], "type" = "string" } +"seed" = { "type" = "integer" } + + +[providers.bfl] +provider = "bfl" +id = "flux-2-max" +source_url = "https://bfl.ai/pricing" +url = "https://bfl.ai/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.07, "included_megapixels" = 1, "included_megapixels_scope" = "output", "usd_per_additional_megapixel" = 0.03, "input_megapixels_billed" = true, "megapixel_rounding" = "ceil", "pixels_per_megapixel" = 1048576, "multiple_reference_images_megapixels_each" = 1, "source_url" = "https://bfl.ai/pricing", "input_max_megapixels" = 4 } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/black-forest-labs/flux.2-max" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/flux-2-max" } +bfl = { "disposition" = "listed", "source_url" = "https://bfl.ai/pricing" } + +[providers.grida] +provider = "grida" +id = "bfl/flux-2-max" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.bfl.flux-2-max.references", "operation" = "image.bfl.flux-2-max.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-max.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.07" }, + ] } }, + { "id" = "image.bfl.flux-2-max.text", "operation" = "image.bfl.flux-2-max.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-max.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.07" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/black-forest-labs/flux-2-pro/card.toml b/models/black-forest-labs/flux-2-pro/card.toml index 3f8a7d7..d410ec1 100644 --- a/models/black-forest-labs/flux-2-pro/card.toml +++ b/models/black-forest-labs/flux-2-pro/card.toml @@ -1,3 +1,4 @@ +reference_provider = "bfl" id = "bfl/flux-2-pro" section = "image.models" null_keys = ["styles", "sizes"] @@ -33,6 +34,89 @@ references = { id = "black-forest-labs/flux.2-pro", max = 8 } [providers.fal] provider = "fal" id = "fal-ai/flux-2-pro" -pricing = { type = "per_image_flat", usd = 0.03 } +pricing = { type = "per_image_flat", usd = 0.03, included_megapixels = 1, included_megapixels_scope = "output", usd_per_additional_megapixel = 0.015, input_megapixels_billed = true, megapixel_rounding = "ceil", source_url = "https://fal.ai/models/fal-ai/flux-2-pro/edit" } avg_cost_usd = 0.03 url = "https://fal.ai/models/fal-ai/flux-2-pro" + +[[providers.fal.endpoints]] +id = "fal-ai/flux-2-pro" +input = "text" +source_url = "https://fal.ai/models/fal-ai/flux-2-pro/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", +] } +"image_size.height" = { "maximum" = 2560, "type" = "integer", "minimum" = 256, "multiple_of" = 16 } +"image_size.width" = { "maximum" = 2560, "type" = "integer", "minimum" = 256, "multiple_of" = 16 } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5"], "type" = "string" } +"seed" = { "type" = "integer" } + +[providers.fal.endpoints.image_constraints] +max_edge = 2560 +min_edge = 256 +max_pixels = 4194304 +step = 16 + +[[providers.fal.endpoints]] +id = "fal-ai/flux-2-pro/edit" +input = "image" +source_url = "https://fal.ai/models/fal-ai/flux-2-pro/edit/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "auto", + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_urls" = { "type" = "array", "max_items" = 9, "source_url" = "https://fal.ai/models/fal-ai/flux-2-pro/edit" } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5"], "type" = "string" } +"seed" = { "type" = "integer" } + + +[providers.bfl] +provider = "bfl" +id = "flux-2-pro" +source_url = "https://bfl.ai/pricing" +url = "https://bfl.ai/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.03, "included_megapixels" = 1, "included_megapixels_scope" = "output", "usd_per_additional_megapixel" = 0.015, "input_megapixels_billed" = true, "megapixel_rounding" = "ceil", "pixels_per_megapixel" = 1048576, "multiple_reference_images_megapixels_each" = 1, "source_url" = "https://bfl.ai/pricing", "input_max_megapixels" = 4 } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/black-forest-labs/flux.2-pro" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/flux-2-pro" } +bfl = { "disposition" = "listed", "source_url" = "https://bfl.ai/pricing" } + +[providers.grida] +provider = "grida" +id = "bfl/flux-2-pro" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.bfl.flux-2-pro.references", "operation" = "image.bfl.flux-2-pro.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-pro.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.03" }, + ] } }, + { "id" = "image.bfl.flux-2-pro.text", "operation" = "image.bfl.flux-2-pro.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bfl.flux-2-pro.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.03" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/black-forest-labs/flux-kontext-max/card.toml b/models/black-forest-labs/flux-kontext-max/card.toml index 599ec13..919bfec 100644 --- a/models/black-forest-labs/flux-kontext-max/card.toml +++ b/models/black-forest-labs/flux-kontext-max/card.toml @@ -1,3 +1,4 @@ +reference_provider = "bfl" id = "bfl/flux-kontext-max" section = "image.models" null_keys = ["styles", "sizes"] @@ -28,3 +29,16 @@ id = "fal-ai/flux-pro/kontext/max" pricing = { type = "per_image_flat", usd = 0.08 } avg_cost_usd = 0.08 url = "https://fal.ai/models/fal-ai/flux-pro/kontext/max" + +[providers.bfl] +provider = "bfl" +id = "flux-kontext-max" +source_url = "https://docs.bfl.ai/quick_start/pricing" +url = "https://docs.bfl.ai/quick_start/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.08, "source_url" = "https://docs.bfl.ai/quick_start/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/images/models", "reason" = "No matching model/version is listed in the inspected public image model catalogue." } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/flux-pro/kontext/max" } +bfl = { "disposition" = "listed", "source_url" = "https://docs.bfl.ai/quick_start/pricing" } diff --git a/models/black-forest-labs/flux-kontext-pro/card.toml b/models/black-forest-labs/flux-kontext-pro/card.toml index 52fcc7b..b899ff4 100644 --- a/models/black-forest-labs/flux-kontext-pro/card.toml +++ b/models/black-forest-labs/flux-kontext-pro/card.toml @@ -1,3 +1,4 @@ +reference_provider = "bfl" id = "bfl/flux-kontext-pro" section = "image.models" null_keys = ["styles", "sizes"] @@ -28,3 +29,16 @@ id = "fal-ai/flux-pro/kontext" pricing = { type = "per_image_flat", usd = 0.04 } avg_cost_usd = 0.04 url = "https://fal.ai/models/fal-ai/flux-pro/kontext" + +[providers.bfl] +provider = "bfl" +id = "flux-kontext-pro" +source_url = "https://docs.bfl.ai/quick_start/pricing" +url = "https://docs.bfl.ai/quick_start/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.04, "source_url" = "https://docs.bfl.ai/quick_start/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/images/models", "reason" = "No matching model/version is listed in the inspected public image model catalogue." } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/flux-pro/kontext" } +bfl = { "disposition" = "listed", "source_url" = "https://docs.bfl.ai/quick_start/pricing" } diff --git a/models/black-forest-labs/flux-pro-1.1/card.toml b/models/black-forest-labs/flux-pro-1.1/card.toml index 0ae4c9d..ca532b8 100644 --- a/models/black-forest-labs/flux-pro-1.1/card.toml +++ b/models/black-forest-labs/flux-pro-1.1/card.toml @@ -1,3 +1,4 @@ +reference_provider = "bfl" id = "bfl/flux-pro-1.1" section = "image.models" null_keys = ["styles", "sizes"] @@ -21,3 +22,23 @@ provider = "vercel" id = "bfl/flux-pro-1.1" pricing = { type = "per_image_flat", usd = 0.04 } avg_cost_usd = 0.04 + +[providers.bfl] +provider = "bfl" +id = "flux-pro-1.1" +source_url = "https://docs.bfl.ai/quick_start/pricing" +url = "https://docs.bfl.ai/quick_start/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.04, "source_url" = "https://docs.bfl.ai/quick_start/pricing" } + +[providers.fal] +provider = "fal" +id = "fal-ai/flux-pro/v1.1" +source_url = "https://fal.ai/models/fal-ai/flux-pro/v1.1" +url = "https://fal.ai/models/fal-ai/flux-pro/v1.1" +pricing = { "type" = "per_megapixel", "usd" = 0.04, "rounding" = "ceil", "source_url" = "https://fal.ai/models/fal-ai/flux-pro/v1.1" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/images/models", "reason" = "No matching model/version is listed in the inspected public image model catalogue." } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/flux-pro/v1.1" } +bfl = { "disposition" = "listed", "source_url" = "https://docs.bfl.ai/quick_start/pricing" } diff --git a/models/bria/remove-background/card.toml b/models/bria/remove-background/card.toml index dd25689..fa56d5d 100644 --- a/models/bria/remove-background/card.toml +++ b/models/bria/remove-background/card.toml @@ -1,3 +1,4 @@ +reference_provider = "bria" id = "bria/remove-background" section = "image_tools.models" @@ -10,3 +11,25 @@ cost_usd = 0.018 date = "2024-11-12" basis = "model" source_url = "https://bria.ai/blog/brias-new-state-of-the-art-remove-background-outperforms-the-competition" + +[providers.fal] +provider = "fal" +id = "fal-ai/bria/background/remove" +source_url = "https://fal.ai/models/fal-ai/bria/background/remove" +url = "https://fal.ai/models/fal-ai/bria/background/remove" +pricing = { "type" = "per_image_tiered", "tiers" = { "without_prompt" = 0.018, "with_prompt" = 0.03 }, "source_url" = "https://fal.ai/models/fal-ai/bria/background/remove" } + +[providers.bria] +provider = "bria" +id = "/v2/image/edit/remove_background" +source_url = "https://docs.bria.ai/image-editing/editing/background-remove" +url = "https://docs.bria.ai/image-editing/editing/background-remove" +qualifications = [ + { "source_url" = "https://docs.bria.ai/image-editing/editing/background-remove", "notes" = "Native background-removal endpoint verified. The API documentation does not establish a regular USD price or pin the current hosted checkpoint; neither is inferred from reseller listings." }, +] + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/bria/background/remove" } +bria = { "disposition" = "listed", "source_url" = "https://docs.bria.ai/image-editing/editing/background-remove" } diff --git a/models/bytedance/seedance-2.0/card.toml b/models/bytedance/seedance-2.0/card.toml index baf2177..13795ae 100644 --- a/models/bytedance/seedance-2.0/card.toml +++ b/models/bytedance/seedance-2.0/card.toml @@ -1,11 +1,12 @@ +reference_provider = "byteplus" id = "bytedance/seedance-2.0" section = "video.models" label = "Seedance 2.0" short_description = "ByteDance's video model — image-to-video with reference modes, up to 4K, at roughly two-thirds the price of Seedance 2.5." vendor = "bytedance" -aspect_ratios = ["16:9", "9:16", "1:1"] -min_duration = 5 +aspect_ratios = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"] +min_duration = 4 max_duration = 15 audio = true speed_label = "slow" @@ -27,13 +28,154 @@ url = "https://fal.ai/models/bytedance/seedance-2.0/image-to-video" type = "per_second" usd_per_second = { 720p = { audio = 0.3034 }, 1080p = { audio = 0.682 } } +[[providers.fal.endpoints]] +id = "bytedance/seedance-2.0/image-to-video" +input = "image" +source_url = "https://fal.ai/models/bytedance/seedance-2.0/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "auto", + "21:9", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16", +] } +"bitrate_mode" = { "enum" = ["standard", "high"], "type" = "string" } +"codec" = { "enum" = ["auto", "H264", "H265"], "type" = "string" } +"duration" = { "enum" = [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", +], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "type" = "string" } +"resolution" = { "enum" = ["480p", "720p", "1080p", "4k"], "type" = "string" } + +[[providers.fal.endpoints]] +id = "bytedance/seedance-2.0/text-to-video" +input = "text" +source_url = "https://fal.ai/models/bytedance/seedance-2.0/text-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "auto", + "21:9", + "16:9", + "4:3", + "1:1", + "3:4", + "9:16", +] } +"bitrate_mode" = { "enum" = ["standard", "high"], "type" = "string" } +"codec" = { "enum" = ["auto", "H264", "H265"], "type" = "string" } +"duration" = { "enum" = [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", +], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"prompt" = { "type" = "string" } +"resolution" = { "enum" = ["480p", "720p", "1080p", "4k"], "type" = "string" } + +[providers.vercel] +provider = "vercel" +id = "bytedance/seedance-2.0" +source_url = "https://vercel.com/ai-gateway/models/seedance-2.0" +url = "https://vercel.com/ai-gateway/models/seedance-2.0" +pricing = { "type" = "video_token_tiers", "tiers" = [ + { "resolution" = "480p", "no_video_input" = { "cost_per_million_tokens" = "7" }, "with_video_input" = { "cost_per_million_tokens" = "4.3" } }, + { "resolution" = "720p", "no_video_input" = { "cost_per_million_tokens" = "7" }, "with_video_input" = { "cost_per_million_tokens" = "4.3" } }, + { "resolution" = "1080p", "no_video_input" = { "cost_per_million_tokens" = "7.7" }, "with_video_input" = { "cost_per_million_tokens" = "4.7" } }, + { "resolution" = "4k", "no_video_input" = { "cost_per_million_tokens" = "4" }, "with_video_input" = { "cost_per_million_tokens" = "2.4" } }, +], "notes" = "Pricing varies based on whether the input contains video. When video is included in the input, all tokens are billed at the reduced rate. Token count includes both input and output video and is subject to minimum token floors based on output duration.", "source_url" = "https://vercel.com/ai-gateway/models/seedance-2.0" } +input = "text-or-image" + +[providers.byteplus] +provider = "byteplus" +id = "dreamina-seedance-2-0-260128" +source_url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +pricing = { "type" = "video_token_tiers", "usd_per_million_tokens" = { "480p" = { "without_video_input" = 7, "with_video_input" = 4.3 }, "720p" = { "without_video_input" = 7, "with_video_input" = 4.3 }, "1080p" = { "without_video_input" = 7.7, "with_video_input" = 4.7 }, "4k" = { "without_video_input" = 4, "with_video_input" = 2.4 } }, "billing_quantity" = "usage.completion_tokens", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/seedance-2.0" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/bytedance/seedance-2.0/image-to-video" } +byteplus = { "disposition" = "listed", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + [providers.openrouter] provider = "openrouter" id = "bytedance/seedance-2.0" -input = "text-or-image" -avg_cost_usd = 0.34 -url = "https://openrouter.ai/bytedance/seedance-2.0" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "video_tokens" = "0.000007", "video_tokens_4k" = "0.000004", "video_tokens_1080p" = "0.0000077", "video_tokens_without_audio" = "0.000007", "video_tokens_with_video_input" = "0.0000043", "video_tokens_4k_with_video_input" = "0.0000024", "video_tokens_1080p_with_video_input" = "0.0000047" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "bytedance/seedance-2.0", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "480p", + "720p", + "1080p", + "4K", + ] }, "duration" = { "type" = "integer", "enum" = [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "1:1", + "3:4", + "9:16", + "4:3", + "16:9", + "21:9", + "9:21", + ] } }, "input" = "text" }, +] -[providers.openrouter.pricing] -type = "per_second" -usd_per_second = { 480p = { audio = 0.06726 }, 720p = { audio = 0.06726 } } +[providers.grida] +provider = "grida" +id = "bytedance/seedance-2.0" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.bytedance.seedance-2.0.image", "operation" = "video.bytedance.seedance-2.0.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.0.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.014" }, + ] } }, + { "id" = "video.bytedance.seedance-2.0.text", "operation" = "video.bytedance.seedance-2.0.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.0.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.014" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/bytedance/seedance-2.5/card.toml b/models/bytedance/seedance-2.5/card.toml index 5ba96f7..2fb239d 100644 --- a/models/bytedance/seedance-2.5/card.toml +++ b/models/bytedance/seedance-2.5/card.toml @@ -1,3 +1,4 @@ +reference_provider = "byteplus" id = "bytedance/seedance-2.5" section = "video.models" @@ -30,3 +31,135 @@ type = "per_second" 480p = { audio = 0.2205 } 720p = { audio = 0.473 } 1080p = { audio = 1.164 } + +[[providers.fal.endpoints]] +id = "bytedance/seedance-2.5/image-to-video" +input = "image" +source_url = "https://fal.ai/models/bytedance/seedance-2.5/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = ["auto"] } +"bitrate_mode" = { "type" = "string", "enum" = ["standard", "high"] } +"codec" = { "type" = "string", "enum" = ["auto", "H264", "H265"] } +"draft" = { "type" = "boolean" } +"duration" = { "type" = "string", "enum" = [ + "auto", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", +] } +"generate_audio" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "type" = "string" } +"resolution" = { "type" = "string", "enum" = ["480p", "720p", "1080p"] } + +[providers.vercel] +provider = "vercel" +id = "bytedance/seedance-2.5" +source_url = "https://vercel.com/ai-gateway/models/seedance-2.5" +url = "https://vercel.com/ai-gateway/models/seedance-2.5" +pricing = { "type" = "video_token_tiers", "tiers" = [ + { "resolution" = "480p", "no_video_input" = { "cost_per_million_tokens" = "10.7" }, "with_video_input" = { "cost_per_million_tokens" = "6.4" } }, + { "resolution" = "720p", "no_video_input" = { "cost_per_million_tokens" = "10.7" }, "with_video_input" = { "cost_per_million_tokens" = "6.4" } }, + { "resolution" = "1080p", "no_video_input" = { "cost_per_million_tokens" = "11.7" }, "with_video_input" = { "cost_per_million_tokens" = "7" } }, +], "notes" = "Pricing varies based on whether the input contains video. When video is included in the input, all tokens are billed at the reduced rate. Token count includes both input and output video and is subject to minimum token floors based on output duration.", "source_url" = "https://vercel.com/ai-gateway/models/seedance-2.5" } +input = "text-or-image" + +[providers.byteplus] +provider = "byteplus" +id = "dreamina-seedance-2-5-260628" +source_url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +pricing = { "type" = "video_token_tiers", "usd_per_million_tokens" = { "480p" = { "without_video_input" = 10.7, "with_video_input" = 6.4 }, "720p" = { "without_video_input" = 10.7, "with_video_input" = 6.4 }, "1080p" = { "without_video_input" = 11.7, "with_video_input" = 7 } }, "billing_quantity" = "usage.completion_tokens", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/seedance-2.5" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/bytedance/seedance-2.5/image-to-video" } +byteplus = { "disposition" = "listed", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[providers.openrouter] +provider = "openrouter" +id = "bytedance/seedance-2.5" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "video_tokens" = "0.0000107", "video_tokens_without_audio" = "0.0000107", "video_tokens_with_video_input" = "0.0000064" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "bytedance/seedance-2.5", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "480p", + "720p", + ] }, "duration" = { "type" = "integer", "enum" = [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "16:9", + "4:3", + "1:1", + "3:4", + "9:16", + "21:9", + ] } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "bytedance/seedance-2.5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.bytedance.seedance-2.5.image", "operation" = "video.bytedance.seedance-2.5.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.bytedance.seedance-2.5.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0214" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/bytedance/seedream-4.5/card.toml b/models/bytedance/seedream-4.5/card.toml index 766d7ed..392bc56 100644 --- a/models/bytedance/seedream-4.5/card.toml +++ b/models/bytedance/seedream-4.5/card.toml @@ -1,3 +1,4 @@ +reference_provider = "byteplus" id = "bytedance/seedream-4.5" section = "image.models" null_keys = ["styles", "sizes"] @@ -36,3 +37,16 @@ id = "fal-ai/bytedance/seedream/v4.5/text-to-image" pricing = { type = "per_image_flat", usd = 0.04 } avg_cost_usd = 0.04 url = "https://fal.ai/models/fal-ai/bytedance/seedream/v4.5/text-to-image" + +[providers.byteplus] +provider = "byteplus" +id = "seedream-4-5-251128" +source_url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.04, "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/bytedance-seed/seedream-4.5" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/bytedance/seedream/v4.5/text-to-image" } +byteplus = { "disposition" = "listed", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } diff --git a/models/bytedance/seedream-5.0-lite/card.toml b/models/bytedance/seedream-5.0-lite/card.toml index 0fb914b..ece57e7 100644 --- a/models/bytedance/seedream-5.0-lite/card.toml +++ b/models/bytedance/seedream-5.0-lite/card.toml @@ -1,3 +1,4 @@ +reference_provider = "byteplus" id = "bytedance/seedream-5.0-lite" section = "image.models" null_keys = ["styles", "sizes"] @@ -36,3 +37,90 @@ id = "bytedance/seedream/v5/lite/text-to-image" pricing = { type = "per_image_flat", usd = 0.035 } avg_cost_usd = 0.035 url = "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image" + +[[providers.fal.endpoints]] +id = "bytedance/seedream/v5/lite/text-to-image" +input = "text" +source_url = "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_2K", + "auto_3K", + "auto_4K", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"max_images" = { "maximum" = 6, "minimum" = 1, "type" = "integer" } +"num_images" = { "maximum" = 6, "minimum" = 1, "type" = "integer" } +"prompt" = { "type" = "string" } + +[providers.fal.endpoints.image_constraints] +min_pixels = 3686400 +max_pixels = 16777216 + +[[providers.fal.endpoints]] +id = "fal-ai/bytedance/seedream/v5/lite/edit" +input = "image" +source_url = "https://fal.ai/models/fal-ai/bytedance/seedream/v5/lite/edit/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_2K", + "auto_3K", + "auto_4K", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_urls" = { "type" = "array", "max_items" = 10 } +"max_images" = { "maximum" = 6, "minimum" = 1, "type" = "integer" } +"num_images" = { "maximum" = 6, "minimum" = 1, "type" = "integer" } +"prompt" = { "type" = "string" } + +[providers.fal.endpoints.image_constraints] +min_pixels = 3686400 +max_pixels = 16777216 + +[providers.byteplus] +provider = "byteplus" +id = "seedream-5-0-lite-260128" +source_url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.035, "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/bytedance-seed/seedream-5-0-lite" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image" } +byteplus = { "disposition" = "listed", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[providers.grida] +provider = "grida" +id = "bytedance/seedream-5.0-lite" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.bytedance.seedream-5.0-lite.references", "operation" = "image.bytedance.seedream-5.0-lite.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-lite.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.035" }, + ] } }, + { "id" = "image.bytedance.seedream-5.0-lite.text", "operation" = "image.bytedance.seedream-5.0-lite.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-lite.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.035" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/bytedance/seedream-5.0-pro/card.toml b/models/bytedance/seedream-5.0-pro/card.toml index 9587d90..245c98c 100644 --- a/models/bytedance/seedream-5.0-pro/card.toml +++ b/models/bytedance/seedream-5.0-pro/card.toml @@ -1,3 +1,4 @@ +reference_provider = "byteplus" id = "bytedance/seedream-5.0-pro" section = "image.models" null_keys = ["styles", "sizes"] @@ -40,3 +41,92 @@ url = "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" min_pixels = 1_048_576 max_pixels = 4_194_304 aspect_ratio = { max = 16 } + +[[providers.fal.endpoints]] +id = "bytedance/seedream/v5/pro/edit" +input = "image" +source_url = "https://fal.ai/models/bytedance/seedream/v5/pro/edit/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"enhance_prompt_mode" = { "enum" = ["standard", "fast"], "type" = "string" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_1K", + "auto_2K", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_urls" = { "type" = "array", "max_items" = 10 } +"num_images" = { "maximum" = 6, "type" = "integer", "minimum" = 1 } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } + +[providers.fal.endpoints.image_constraints] +max_pixels = 4194304 +min_pixels = 1048576 +aspect_ratio = { "min" = 0.0625, "max" = 16 } + +[[providers.fal.endpoints]] +id = "bytedance/seedream/v5/pro/text-to-image" +input = "text" +source_url = "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"enhance_prompt_mode" = { "enum" = ["standard", "fast"], "type" = "string" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto_1K", + "auto_2K", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"num_images" = { "maximum" = 6, "type" = "integer", "minimum" = 1 } +"output_format" = { "enum" = ["jpeg", "png"], "type" = "string" } +"prompt" = { "type" = "string" } + +[providers.fal.endpoints.image_constraints] +max_pixels = 4194304 +min_pixels = 1048576 +aspect_ratio = { "min" = 0.0625, "max" = 16 } + +[providers.byteplus] +provider = "byteplus" +id = "dola-seedream-5-0-pro-260628" +source_url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +url = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" +pricing = { "type" = "per_image_tiered", "threshold_pixels" = 2610000, "tiers" = { "generation_at_or_below_threshold" = 0.045, "generation_above_threshold" = 0.09, "layer_decomposition_at_or_below_threshold" = 0.0225, "layer_decomposition_above_threshold" = 0.045 }, "included_input_images" = 1, "usd_per_additional_input_image" = 0.003, "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/bytedance-seed/seedream-5-0-pro" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" } +byteplus = { "disposition" = "listed", "source_url" = "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" } + +[providers.grida] +provider = "grida" +id = "bytedance/seedream-5.0-pro" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.bytedance.seedream-5.0-pro.references", "operation" = "image.bytedance.seedream-5.0-pro.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-pro.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0675" }, + ] } }, + { "id" = "image.bytedance.seedream-5.0-pro.text", "operation" = "image.bytedance.seedream-5.0-pro.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.bytedance.seedream-5.0-pro.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.0675" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/elevenlabs/eleven_text_to_sound_v2/card.toml b/models/elevenlabs/eleven_text_to_sound_v2/card.toml index a91d730..031649b 100644 --- a/models/elevenlabs/eleven_text_to_sound_v2/card.toml +++ b/models/elevenlabs/eleven_text_to_sound_v2/card.toml @@ -1,3 +1,4 @@ +reference_provider = "elevenlabs" id = "eleven_text_to_sound_v2" section = "audio.sound_effects.models" null_keys = ["avg_cost_usd"] @@ -27,3 +28,16 @@ duration = { mode = "automatic_or_fixed", min_seconds = 0.5, max_seconds = 30 } type = "provider_credits" automatic_duration_credits = 100 specified_duration_credits_per_second = 11 + +[providers.fal] +provider = "fal" +id = "fal-ai/elevenlabs/sound-effects/v2" +source_url = "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" +url = "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" +pricing = { "type" = "per_second", "usd" = 0.002, "source_url" = "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/elevenlabs/sound-effects/v2" } +elevenlabs = { "disposition" = "listed", "source_url" = "https://elevenlabs.io/docs/api-reference/text-to-sound-effects/convert" } diff --git a/models/elevenlabs/eleven_v3/card.toml b/models/elevenlabs/eleven_v3/card.toml index 53e6115..00e8ad9 100644 --- a/models/elevenlabs/eleven_v3/card.toml +++ b/models/elevenlabs/eleven_v3/card.toml @@ -1,3 +1,4 @@ +reference_provider = "elevenlabs" id = "eleven_v3" section = "audio.text_to_speech.models" @@ -21,3 +22,16 @@ default_format = "mp3" formats = ["mp3"] sample_rate_hz = 44_100 bit_rate_kbps = 128 + +[providers.fal] +provider = "fal" +id = "fal-ai/elevenlabs/tts/eleven-v3" +source_url = "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" +url = "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" +pricing = { "type" = "per_1000_characters", "usd" = 0.1, "source_url" = "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/elevenlabs/tts/eleven-v3" } +elevenlabs = { "disposition" = "listed", "source_url" = "https://elevenlabs.io/docs/api-reference/text-to-speech/convert" } diff --git a/models/google/gemini-3-pro-image/card.toml b/models/google/gemini-3-pro-image/card.toml index a4b6601..9f57b7f 100644 --- a/models/google/gemini-3-pro-image/card.toml +++ b/models/google/gemini-3-pro-image/card.toml @@ -1,13 +1,13 @@ +reference_provider = "google" id = "google/gemini-3-pro-image" section = "image.models" -null_keys = ["styles", "sizes"] +null_keys = ["styles", "sizes", "constraints"] label = "Gemini 3 Pro Image" short_description = "High-quality multimodal model with native image generation" vendor = "google" speed_label = "medium" speed_max = "30s" -constraints = { max_edge = 1536 } pricing = { type = "per_token", input = 2, output = 12 } avg_cost_usd = 0.015 @@ -33,6 +33,95 @@ references = { id = "google/gemini-3-pro-image-preview", max = 14 } [providers.fal] provider = "fal" id = "fal-ai/nano-banana-pro" -pricing = { type = "per_image_flat", usd = 0.15 } +pricing = { type = "per_image_flat", usd = 0.15, resolution_multipliers = { "4K" = 2 }, web_search_usd = 0.015, source_url = "https://fal.ai/models/fal-ai/nano-banana-pro" } avg_cost_usd = 0.15 url = "https://fal.ai/models/fal-ai/nano-banana-pro" + +[[providers.fal.endpoints]] +id = "fal-ai/nano-banana-pro" +input = "text" +source_url = "https://fal.ai/models/fal-ai/nano-banana-pro/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", +] } +"enable_web_search" = { "type" = "boolean" } +"limit_generations" = { "type" = "boolean" } +"num_images" = { "minimum" = 1, "maximum" = 4, "type" = "integer" } +"output_format" = { "type" = "string", "enum" = ["jpeg", "png", "webp"] } +"prompt" = { "max_length" = 50000, "type" = "string", "min_length" = 3 } +"resolution" = { "type" = "string", "enum" = ["1K", "2K", "4K"] } +"safety_tolerance" = { "type" = "string", "enum" = ["1", "2", "3", "4", "5", "6"] } +"seed" = { "type" = "integer" } +"system_prompt" = { "max_length" = 50000, "type" = "string" } + +[[providers.fal.endpoints]] +id = "fal-ai/nano-banana-pro/edit" +input = "image" +source_url = "https://fal.ai/models/fal-ai/nano-banana-pro/edit/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", +] } +"enable_web_search" = { "type" = "boolean" } +"image_urls" = { "type" = "array", "max_items" = 14, "source_url" = "https://fal.ai/models/fal-ai/nano-banana-pro/edit" } +"limit_generations" = { "type" = "boolean" } +"num_images" = { "minimum" = 1, "maximum" = 4, "type" = "integer" } +"output_format" = { "type" = "string", "enum" = ["jpeg", "png", "webp"] } +"prompt" = { "max_length" = 50000, "type" = "string", "min_length" = 3 } +"resolution" = { "type" = "string", "enum" = ["1K", "2K", "4K"] } +"safety_tolerance" = { "type" = "string", "enum" = ["1", "2", "3", "4", "5", "6"] } +"seed" = { "type" = "integer" } +"system_prompt" = { "max_length" = 50000, "type" = "string" } + +[providers.google] +provider = "google" +id = "gemini-3-pro-image" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_token", "input" = 2, "text_output" = 12, "output" = 120, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/gemini-3-pro-image-preview" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/nano-banana-pro" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.grida] +provider = "grida" +id = "google/gemini-3-pro-image" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.google.gemini-3-pro-image.references", "operation" = "image.google.gemini-3-pro-image.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3-pro-image.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.15" }, + ] } }, + { "id" = "image.google.gemini-3-pro-image.text", "operation" = "image.google.gemini-3-pro-image.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3-pro-image.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.15" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/google/gemini-3.1-flash-image-preview/card.toml b/models/google/gemini-3.1-flash-image-preview/card.toml index fc7b4c8..4f6fdbb 100644 --- a/models/google/gemini-3.1-flash-image-preview/card.toml +++ b/models/google/gemini-3.1-flash-image-preview/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/gemini-3.1-flash-image-preview" section = "image.models" null_keys = ["styles", "sizes"] @@ -33,6 +34,103 @@ references = { id = "google/gemini-3.1-flash-image", max = 14 } [providers.fal] provider = "fal" id = "fal-ai/nano-banana-2" -pricing = { type = "per_image_flat", usd = 0.08 } +pricing = { type = "per_image_flat", usd = 0.08, resolution_multipliers = { "0.5K" = 0.75, "2K" = 1.5, "4K" = 2 }, web_search_usd = 0.015, high_thinking_usd = 0.002, source_url = "https://fal.ai/models/fal-ai/nano-banana-2" } avg_cost_usd = 0.08 url = "https://fal.ai/models/fal-ai/nano-banana-2" + +[[providers.fal.endpoints]] +id = "fal-ai/nano-banana-2" +input = "text" +source_url = "https://fal.ai/models/fal-ai/nano-banana-2/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", + "4:1", + "1:4", + "8:1", + "1:8", +], "type" = "string" } +"enable_web_search" = { "type" = "boolean" } +"limit_generations" = { "type" = "boolean" } +"num_images" = { "minimum" = 1, "maximum" = 4, "type" = "integer" } +"output_format" = { "enum" = ["jpeg", "png", "webp"], "type" = "string" } +"prompt" = { "min_length" = 3, "type" = "string", "max_length" = 50000 } +"resolution" = { "enum" = ["0.5K", "1K", "2K", "4K"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } +"system_prompt" = { "type" = "string", "max_length" = 50000 } + +[[providers.fal.endpoints]] +id = "fal-ai/nano-banana-2/edit" +input = "image" +source_url = "https://fal.ai/models/fal-ai/nano-banana-2/edit/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = [ + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16", + "4:1", + "1:4", + "8:1", + "1:8", +], "type" = "string" } +"enable_web_search" = { "type" = "boolean" } +"image_urls" = { "type" = "array", "max_items" = 14, "source_url" = "https://fal.ai/models/fal-ai/nano-banana-2/edit" } +"limit_generations" = { "type" = "boolean" } +"num_images" = { "minimum" = 1, "maximum" = 4, "type" = "integer" } +"output_format" = { "enum" = ["jpeg", "png", "webp"], "type" = "string" } +"prompt" = { "min_length" = 3, "type" = "string", "max_length" = 50000 } +"resolution" = { "enum" = ["0.5K", "1K", "2K", "4K"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } +"system_prompt" = { "type" = "string", "max_length" = 50000 } + +[providers.google] +provider = "google" +id = "gemini-3.1-flash-image" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_token", "input" = 0.5, "text_output" = 3, "output" = 60, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/gemini-3.1-flash-image" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/nano-banana-2" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.grida] +provider = "grida" +id = "google/gemini-3.1-flash-image-preview" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.google.gemini-3.1-flash-image-preview.references", "operation" = "image.google.gemini-3.1-flash-image-preview.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3.1-flash-image-preview.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.08" }, + ] } }, + { "id" = "image.google.gemini-3.1-flash-image-preview.text", "operation" = "image.google.gemini-3.1-flash-image-preview.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.google.gemini-3.1-flash-image-preview.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.08" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/google/gemini-3.1-flash-lite-image/card.toml b/models/google/gemini-3.1-flash-lite-image/card.toml index e220826..9ac3db8 100644 --- a/models/google/gemini-3.1-flash-lite-image/card.toml +++ b/models/google/gemini-3.1-flash-lite-image/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/gemini-3.1-flash-lite-image" section = "image.models" null_keys = ["styles", "sizes"] @@ -28,3 +29,23 @@ id = "google/gemini-3.1-flash-lite-image" pricing = { type = "per_token", input = 0.25, output = 1.5 } avg_cost_usd = 0.034 url = "https://openrouter.ai/google/gemini-3.1-flash-lite-image" + +[providers.google] +provider = "google" +id = "gemini-3.1-flash-lite-image" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_token", "input" = 0.25, "text_output" = 1.5, "output" = 30, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.fal] +provider = "fal" +id = "google/nano-banana-2-lite" +source_url = "https://fal.ai/models/google/nano-banana-2-lite" +url = "https://fal.ai/models/google/nano-banana-2-lite" +pricing = { "type" = "per_token", "input" = 0.3125, "image_input" = 0.3125, "text_output" = 1.875, "output" = 37.5, "source_url" = "https://fal.ai/models/google/nano-banana-2-lite" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/gemini-3.1-flash-lite-image" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/google/nano-banana-2-lite" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } diff --git a/models/google/gemini-3.1-pro-preview/card.toml b/models/google/gemini-3.1-pro-preview/card.toml index d34c8c3..04df642 100644 --- a/models/google/gemini-3.1-pro-preview/card.toml +++ b/models/google/gemini-3.1-pro-preview/card.toml @@ -1,5 +1,7 @@ id = "google/gemini-3.1-pro-preview" section = "text.catalog" +vendor = "google" +reference_provider = "google" label = "Gemini 3.1 Pro Preview" short_label = "Gemini 3.1 Pro" @@ -23,3 +25,157 @@ cache_read = 0.2 input_tokens_above = 200_000 input_multiplier = 2 output_multiplier = 1.5 + +[providers.vercel] +provider = "vercel" +id = "google/gemini-3.1-pro-preview" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "google/gemini-3.1-pro-preview", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gemini-3.1-pro-preview" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.000002", "maximum_input_tokens" = 200001 }, + { "meter" = "input", "minimum_input_tokens" = 200001, "usd_per_token" = "0.000004" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.000012", "maximum_input_tokens" = 200001 }, + { "meter" = "output", "minimum_input_tokens" = 200001, "usd_per_token" = "0.000018" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000002", "maximum_input_tokens" = 200001 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 200001, "usd_per_token" = "0.0000004" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 64000 + +[vision_tokenization] +source_url = "https://ai.google.dev/gemini-api/docs/media-resolution" +maximum_tokens_per_image = 2240 +token_counts_approximate = true +detail_token_budgets = { "unspecified" = 1120, "low" = 280, "medium" = 560, "high" = 1120, "ultra_high" = 2240 } + +[providers.google] +provider = "google" +id = "gemini-3.1-pro-preview" +url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" +endpoints = [ + { id = "gemini-3.1-pro-preview", input = "text", source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" }, +] + +[providers.google.token_pricing] +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +unit = "usd_per_token" +scope = "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 200001, usd_per_token = "0.000002" }, + { meter = "input", minimum_input_tokens = 200001, usd_per_token = "0.000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 200001, usd_per_token = "0.000012" }, + { meter = "output", minimum_input_tokens = 200001, usd_per_token = "0.000018" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 200001, usd_per_token = "0.0000002" }, + { meter = "input_cache_read", minimum_input_tokens = 200001, usd_per_token = "0.0000004" }, +] + +[providers.google.capabilities] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" +image_input = true +reasoning = true +tools = true +structured_output = true + +[providers.google.limits] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" +context_tokens = 1048576 +max_output_tokens = 65536 + +[providers.openrouter] +provider = "openrouter" +id = "google/gemini-3.1-pro-preview" +url = "https://openrouter.ai/google/gemini-3.1-pro-preview" +source_url = "https://openrouter.ai/google/gemini-3.1-pro-preview" +endpoints = [ + { id = "google/gemini-3.1-pro-preview", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/google/gemini-3.1-pro-preview" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 200000, usd_per_token = "0.000002" }, + { meter = "input", minimum_input_tokens = 200000, usd_per_token = "0.000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 200000, usd_per_token = "0.000012" }, + { meter = "output", minimum_input_tokens = 200000, usd_per_token = "0.000018" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 200000, usd_per_token = "0.0000002" }, + { meter = "input_cache_read", minimum_input_tokens = 200000, usd_per_token = "0.0000004" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1048576 +max_output_tokens = 65536 + +[provider_coverage.google] +disposition = "listed" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gemini-3.1-pro-preview" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/google/gemini-3.1-pro-preview" + +[providers.grida] +provider = "grida" +id = "google/gemini-3.1-pro-preview" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "google/gemini-3.1-pro-preview", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "200001" }, "usd_per_unit" = "0.000002" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "200001" }, "usd_per_unit" = "0.000004" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "200001" }, "usd_per_unit" = "0.0000002" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "200001" }, "usd_per_unit" = "0.0000004" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "200001" }, "usd_per_unit" = "0.000012" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "200001" }, "usd_per_unit" = "0.000018" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 64000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/google/gemini-3.7-flash/card.toml b/models/google/gemini-3.7-flash/card.toml index 9523f35..75f4c3f 100644 --- a/models/google/gemini-3.7-flash/card.toml +++ b/models/google/gemini-3.7-flash/card.toml @@ -1,5 +1,7 @@ id = "google/gemini-3.7-flash" section = "text.catalog" +vendor = "google" +reference_provider = "google" label = "Gemini 3.7 Flash" multimodal = true @@ -13,3 +15,130 @@ cost = { input = 1.5, output = 7.5, cache_read = 0.15 } date = "2026-08-13" basis = "model" source_url = "https://ai.google.dev/gemini-api/docs/changelog" + +[providers.vercel] +provider = "vercel" +id = "google/gemini-3.7-flash" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "google/gemini-3.7-flash", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gemini-3.7-flash" +unit = "usd_per_token" +scope = "Regular Standard global token rates from the model page list-cost tiers; alternate service tiers and regional premiums are excluded." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 65535 + +[vision_tokenization] +source_url = "https://ai.google.dev/gemini-api/docs/media-resolution" +maximum_tokens_per_image = 2240 +token_counts_approximate = true +detail_token_budgets = { "unspecified" = 1120, "low" = 280, "medium" = 560, "high" = 1120, "ultra_high" = 2240 } + +[providers.google] +provider = "google" +id = "gemini-3.7-flash" +url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" +endpoints = [ + { id = "gemini-3.7-flash", input = "text", source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" }, +] +deprecated = true + +[providers.google.token_pricing] +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +unit = "usd_per_token" +scope = "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded. Deprecated model ID redirects to Gemini 3.8 Flash under the native API." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.google.capabilities] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" +image_input = true +reasoning = true +tools = true +structured_output = true + +[providers.google.limits] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" +context_tokens = 1048576 +max_output_tokens = 65536 + +[providers.openrouter] +provider = "openrouter" +id = "google/gemini-3.7-flash" +url = "https://openrouter.ai/google/gemini-3.7-flash" +source_url = "https://openrouter.ai/google/gemini-3.7-flash" +endpoints = [ + { id = "google/gemini-3.7-flash", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/google/gemini-3.7-flash" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1048576 +max_output_tokens = 65536 + +[provider_coverage.google] +disposition = "listed" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.7-flash" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gemini-3.7-flash" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/google/gemini-3.7-flash" + +[providers.grida] +provider = "grida" +id = "google/gemini-3.7-flash" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { id = "google/gemini-3.7-flash", input = "text", source_url = "https://gateway.grida.ai/v1/models" }, +] +qualifications = [ + { source_url = "https://gateway.grida.ai/v1/models", notes = "A regular, non-promotional token schedule has not been independently established from the inspected public discovery; published_pricing is omitted rather than inferred from another provider." }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 65535 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/google/gemini-3.8-flash/card.toml b/models/google/gemini-3.8-flash/card.toml index 02eb0f2..5083f63 100644 --- a/models/google/gemini-3.8-flash/card.toml +++ b/models/google/gemini-3.8-flash/card.toml @@ -1,5 +1,7 @@ id = "google/gemini-3.8-flash" section = "text.catalog" +vendor = "google" +reference_provider = "google" label = "Gemini 3.8 Flash" multimodal = true @@ -13,3 +15,129 @@ cost = { input = 1.5, output = 7.5, cache_read = 0.15 } date = "2026-09-02" basis = "model" source_url = "https://ai.google.dev/gemini-api/docs/changelog" + +[providers.vercel] +provider = "vercel" +id = "google/gemini-3.8-flash" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "google/gemini-3.8-flash", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gemini-3.8-flash" +unit = "usd_per_token" +scope = "Regular Standard global token rates from the model page list-cost tiers; alternate service tiers and regional premiums are excluded." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 65535 + +[vision_tokenization] +source_url = "https://ai.google.dev/gemini-api/docs/media-resolution" +maximum_tokens_per_image = 2240 +token_counts_approximate = true +detail_token_budgets = { "unspecified" = 1120, "low" = 280, "medium" = 560, "high" = 1120, "ultra_high" = 2240 } + +[providers.google] +provider = "google" +id = "gemini-3.8-flash" +url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" +endpoints = [ + { id = "gemini-3.8-flash", input = "text", source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" }, +] + +[providers.google.token_pricing] +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +unit = "usd_per_token" +scope = "Regular Standard paid-tier input/output/cache-read token rates. Context-cache storage per hour, grounding tools and alternate service tiers are excluded." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.google.capabilities] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" +image_input = true +reasoning = true +tools = true +structured_output = true + +[providers.google.limits] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" +context_tokens = 1048576 +max_output_tokens = 65536 + +[providers.openrouter] +provider = "openrouter" +id = "google/gemini-3.8-flash" +url = "https://openrouter.ai/google/gemini-3.8-flash" +source_url = "https://openrouter.ai/google/gemini-3.8-flash" +endpoints = [ + { id = "google/gemini-3.8-flash", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/google/gemini-3.8-flash" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded. Context-cache storage per hour is excluded." +input = "0.0000015" +output = "0.0000075" +input_cache_read = "0.00000015" + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1048576 +max_output_tokens = 65536 + +[provider_coverage.google] +disposition = "listed" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gemini-3.8-flash" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/google/gemini-3.8-flash" + +[providers.grida] +provider = "grida" +id = "google/gemini-3.8-flash" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { id = "google/gemini-3.8-flash", input = "text", source_url = "https://gateway.grida.ai/v1/models" }, +] +qualifications = [ + { source_url = "https://gateway.grida.ai/v1/models", notes = "A regular, non-promotional token schedule has not been independently established from the inspected public discovery; published_pricing is omitted rather than inferred from another provider." }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 65535 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/google/gemini-embedding-2/card.toml b/models/google/gemini-embedding-2/card.toml index ee8db82..0a3e0e6 100644 --- a/models/google/gemini-embedding-2/card.toml +++ b/models/google/gemini-embedding-2/card.toml @@ -1,3 +1,5 @@ +pricing = { "type" = "per_token_input", "input" = 0.2, "image_input" = 0.45, "audio_input" = 6.5, "video_input" = 12, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } +reference_provider = "google" id = "google/gemini-embedding-2" section = "embedding.models" @@ -9,7 +11,6 @@ category = "embedding/multimodal" dimensions = 1536 normalized = true multimodal = true -pricing = { type = "per_token_input", input = 0.15 } avg_cost_usd = 2e-05 url = "https://ai.google.dev/gemini-api/docs/models/gemini-embedding-2-preview" @@ -17,3 +18,30 @@ url = "https://ai.google.dev/gemini-api/docs/models/gemini-embedding-2-preview" date = "2026-03-10" basis = "model" source_url = "https://ai.google.dev/gemini-api/docs/changelog" + +[providers.google] +provider = "google" +id = "gemini-embedding-2" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_token_input", "input" = 0.2, "image_input" = 0.45, "audio_input" = 6.5, "video_input" = 12, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.vercel] +provider = "vercel" +id = "google/gemini-embedding-2" +source_url = "https://vercel.com/ai-gateway/models/gemini-embedding-2" +url = "https://vercel.com/ai-gateway/models/gemini-embedding-2" +pricing = { "type" = "per_token_input", "input" = 0.2, "audio_input" = 6.5, "source_url" = "https://vercel.com/ai-gateway/models/gemini-embedding-2" } + +[providers.openrouter] +provider = "openrouter" +id = "google/gemini-embedding-2" +source_url = "https://openrouter.ai/api/v1/embeddings/models" +url = "https://openrouter.ai/api/v1/embeddings/models" +pricing = { "type" = "per_token_input", "input" = 0.2, "image_input" = 0.45, "audio_input" = 6.5, "source_url" = "https://openrouter.ai/api/v1/embeddings/models" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/embeddings/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/gemini-embedding-2" } +fal = { "disposition" = "excluded", "source_url" = "https://fal.ai/models", "reason" = "Embedding models are outside this catalogue's fal media-provider coverage." } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } diff --git a/models/google/lyria-3-pro/card.toml b/models/google/lyria-3-pro/card.toml index 19f0939..b284185 100644 --- a/models/google/lyria-3-pro/card.toml +++ b/models/google/lyria-3-pro/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/lyria-3-pro" section = "audio.music.models" @@ -26,3 +27,30 @@ formats = ["mp3"] sample_rate_hz = 48_000 channels = 2 duration = { mode = "up_to", max_seconds = 180 } + +[providers.google] +provider = "google" +id = "lyria-3-pro-preview" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_run_flat", "usd" = 0.08, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.fal] +provider = "fal" +id = "fal-ai/lyria3/pro" +source_url = "https://fal.ai/models/fal-ai/lyria3/pro" +url = "https://fal.ai/models/fal-ai/lyria3/pro" +pricing = { "type" = "per_run_flat", "usd" = 0.08, "source_url" = "https://fal.ai/models/fal-ai/lyria3/pro" } + +[providers.openrouter] +provider = "openrouter" +id = "google/lyria-3-pro-preview" +source_url = "https://openrouter.ai/google/lyria-3-pro-preview" +url = "https://openrouter.ai/google/lyria-3-pro-preview" +pricing = { "type" = "per_run_flat", "usd" = 0.08, "source_url" = "https://openrouter.ai/google/lyria-3-pro-preview" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/lyria-3-pro-preview" } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/lyria3/pro" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } diff --git a/models/google/lyria-3/card.toml b/models/google/lyria-3/card.toml index a059f6c..0f800db 100644 --- a/models/google/lyria-3/card.toml +++ b/models/google/lyria-3/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/lyria-3" section = "audio.music.models" @@ -26,3 +27,30 @@ formats = ["mp3"] sample_rate_hz = 48_000 channels = 2 duration = { mode = "fixed", seconds = 30 } + +[providers.google] +provider = "google" +id = "lyria-3-clip-preview" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_run_flat", "usd" = 0.04, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.fal] +provider = "fal" +id = "fal-ai/lyria3" +source_url = "https://fal.ai/models/fal-ai/lyria3" +url = "https://fal.ai/models/fal-ai/lyria3" +pricing = { "type" = "per_run_flat", "usd" = 0.04, "source_url" = "https://fal.ai/models/fal-ai/lyria3" } + +[providers.openrouter] +provider = "openrouter" +id = "google/lyria-3-clip-preview" +source_url = "https://openrouter.ai/google/lyria-3-clip-preview" +url = "https://openrouter.ai/google/lyria-3-clip-preview" +pricing = { "type" = "per_run_flat", "usd" = 0.04, "source_url" = "https://openrouter.ai/google/lyria-3-clip-preview" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/lyria-3-clip-preview" } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/lyria3" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } diff --git a/models/google/veo-3.1-fast/card.toml b/models/google/veo-3.1-fast/card.toml index d243462..5321945 100644 --- a/models/google/veo-3.1-fast/card.toml +++ b/models/google/veo-3.1-fast/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/veo-3.1-fast" section = "video.models" @@ -45,3 +46,85 @@ type = "per_second" 720p = { audio = 0.15, silent = 0.1 } 1080p = { audio = 0.15, silent = 0.1 } 4k = { audio = 0.35, silent = 0.3 } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1/fast" +input = "text" +source_url = "https://fal.ai/models/fal-ai/veo3.1/fast/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p", "4k"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1/fast/image-to-video" +input = "image" +source_url = "https://fal.ai/models/fal-ai/veo3.1/fast/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["auto", "16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p", "4k"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[providers.google] +provider = "google" +id = "veo-3.1-fast-generate-preview" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_second", "usd_per_second" = { "720p" = { "audio" = 0.1 }, "1080p" = { "audio" = 0.12 }, "4k" = { "audio" = 0.3 } }, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/veo-3.1-fast-generate-001" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/veo3.1/fast/image-to-video" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.openrouter] +provider = "openrouter" +id = "google/veo-3.1-fast" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "duration_seconds_with_audio" = "0.12", "duration_seconds_with_audio_4k" = "0.30", "duration_seconds_without_audio" = "0.10", "duration_seconds_with_audio_720p" = "0.10", "duration_seconds_without_audio_4k" = "0.25", "duration_seconds_without_audio_720p" = "0.08" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "google/veo-3.1-fast", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "720p", + "1080p", + "4K", + ] }, "duration" = { "type" = "integer", "enum" = [ + 4, + 6, + 8, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "16:9", + "9:16", + ] } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "google/veo-3.1-fast" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.google.veo-3.1-fast.image", "operation" = "video.google.veo-3.1-fast.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-fast.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.15" }, + ] } }, + { "id" = "video.google.veo-3.1-fast.text", "operation" = "video.google.veo-3.1-fast.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-fast.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.15" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/google/veo-3.1-lite/card.toml b/models/google/veo-3.1-lite/card.toml index c85ebb9..8817748 100644 --- a/models/google/veo-3.1-lite/card.toml +++ b/models/google/veo-3.1-lite/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/veo-3.1-lite" section = "video.models" @@ -43,3 +44,84 @@ type = "per_second" [providers.fal.pricing.usd_per_second] 720p = { audio = 0.05, silent = 0.03 } 1080p = { audio = 0.08, silent = 0.05 } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1/lite" +input = "text" +source_url = "https://fal.ai/models/fal-ai/veo3.1/lite/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1/lite/image-to-video" +input = "image" +source_url = "https://fal.ai/models/fal-ai/veo3.1/lite/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["auto", "16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[providers.google] +provider = "google" +id = "veo-3.1-lite-generate-preview" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_second", "usd_per_second" = { "720p" = { "audio" = 0.05 }, "1080p" = { "audio" = 0.08 } }, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/veo-3.1-lite-generate-001" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/veo3.1/lite/image-to-video" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.openrouter] +provider = "openrouter" +id = "google/veo-3.1-lite" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "duration_seconds_with_audio" = "0.08", "duration_seconds_without_audio" = "0.05", "duration_seconds_with_audio_720p" = "0.05", "duration_seconds_without_audio_720p" = "0.03" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "google/veo-3.1-lite", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "720p", + "1080p", + ] }, "duration" = { "type" = "integer", "enum" = [ + 8, + 4, + 6, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "16:9", + "9:16", + ] } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "google/veo-3.1-lite" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.google.veo-3.1-lite.image", "operation" = "video.google.veo-3.1-lite.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-lite.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.05" }, + ] } }, + { "id" = "video.google.veo-3.1-lite.text", "operation" = "video.google.veo-3.1-lite.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1-lite.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.05" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/google/veo-3.1/card.toml b/models/google/veo-3.1/card.toml index 82ee5df..952d094 100644 --- a/models/google/veo-3.1/card.toml +++ b/models/google/veo-3.1/card.toml @@ -1,3 +1,4 @@ +reference_provider = "google" id = "google/veo-3.1" section = "video.models" @@ -56,3 +57,64 @@ url = "https://openrouter.ai/google/veo-3.1" [providers.openrouter.pricing] type = "per_second" usd_per_second = { 720p = { audio = 0.4 }, 1080p = { audio = 0.4 } } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1" +input = "text" +source_url = "https://fal.ai/models/fal-ai/veo3.1/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p", "4k"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[[providers.fal.endpoints]] +id = "fal-ai/veo3.1/image-to-video" +input = "image" +source_url = "https://fal.ai/models/fal-ai/veo3.1/image-to-video/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "enum" = ["auto", "16:9", "9:16"], "type" = "string" } +"auto_fix" = { "type" = "boolean" } +"duration" = { "enum" = ["4s", "6s", "8s"], "type" = "string" } +"generate_audio" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "type" = "string", "max_length" = 20000 } +"resolution" = { "enum" = ["720p", "1080p", "4k"], "type" = "string" } +"safety_tolerance" = { "enum" = ["1", "2", "3", "4", "5", "6"], "type" = "string" } +"seed" = { "type" = "integer" } + +[providers.google] +provider = "google" +id = "veo-3.1-generate-preview" +source_url = "https://ai.google.dev/gemini-api/docs/pricing" +url = "https://ai.google.dev/gemini-api/docs/pricing" +pricing = { "type" = "per_second", "usd_per_second" = { "720p" = { "audio" = 0.4 }, "1080p" = { "audio" = 0.4 }, "4k" = { "audio" = 0.6 } }, "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/google/veo-3.1" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/veo-3.1-generate-001" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/veo3.1/image-to-video" } +google = { "disposition" = "listed", "source_url" = "https://ai.google.dev/gemini-api/docs/pricing" } + +[providers.grida] +provider = "grida" +id = "google/veo-3.1" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.google.veo-3.1.image", "operation" = "video.google.veo-3.1.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.4" }, + ] } }, + { "id" = "video.google.veo-3.1.text", "operation" = "video.google.veo-3.1.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.google.veo-3.1.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.4" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/meta/muse-image-1.0/card.toml b/models/meta/muse-image-1.0/card.toml index 95f1e34..947f96b 100644 --- a/models/meta/muse-image-1.0/card.toml +++ b/models/meta/muse-image-1.0/card.toml @@ -1,3 +1,4 @@ +reference_provider = "meta" id = "meta/muse-image-1.0" section = "image.models" null_keys = ["styles", "sizes", "constraints"] @@ -27,3 +28,27 @@ id = "meta/muse-image/text-to-image" pricing = { type = "per_image_flat", usd = 0.01 } avg_cost_usd = 0.01 url = "https://fal.ai/models/meta/muse-image/text-to-image" + +[providers.meta] +provider = "meta" +id = "muse-image-1.0" +source_url = "https://dev.meta.ai/docs/image-generation" +url = "https://dev.meta.ai/docs/image-generation" +pricing = { "type" = "per_image_flat", "usd" = 0.01, "billing_quantity" = "successfully_generated_returned_images", "source_url" = "https://dev.meta.ai/docs/image-generation" } + + +[providers.openrouter] +provider = "openrouter" +id = "meta/muse-image" +url = "https://openrouter.ai/meta/muse-image" +source_url = "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints" +pricing = { "type" = "per_token", "image_input" = 2.39520958083832, "output" = 2.39520958083832, "source_url" = "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints" } +qualifications = [ + { "source_url" = "https://openrouter.ai/api/v1/images/models/meta/muse-image/endpoints", "notes" = "The model is listed in image discovery, but image-specific endpoint metadata is empty. Published token meters come from general endpoint metadata; image parameter parity is not inferred." }, +] + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/models/meta/muse-image/endpoints" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/meta/muse-image/text-to-image" } +meta = { "disposition" = "listed", "source_url" = "https://dev.meta.ai/docs/image-generation" } diff --git a/models/microsoft/trellis-2/card.toml b/models/microsoft/trellis-2/card.toml index 2a18742..07f7dea 100644 --- a/models/microsoft/trellis-2/card.toml +++ b/models/microsoft/trellis-2/card.toml @@ -16,7 +16,77 @@ date = "2025-12-16" basis = "model" source_url = "https://huggingface.co/microsoft/TRELLIS.2-4B" +[distribution] +source_url = "https://github.com/microsoft/TRELLIS.2" + +[distribution.code] +repository_url = "https://github.com/microsoft/TRELLIS.2" +license = { name = "MIT", url = "https://github.com/microsoft/TRELLIS.2/blob/main/LICENSE" } + +[[distribution.weights]] +id = "microsoft/TRELLIS.2-4B" +url = "https://huggingface.co/microsoft/TRELLIS.2-4B" +access = "public" +license = { name = "MIT", url = "https://huggingface.co/microsoft/TRELLIS.2-4B" } + [pricing] type = "per_generation_by_resolution" default_resolution = "1024" usd_by_resolution = { 512 = 0.25, 1024 = 0.3, 1536 = 0.35 } + +[[endpoints]] +id = "fal-ai/trellis-2" +input = "image" +source_url = "https://fal.ai/models/fal-ai/trellis-2/api" + +[endpoints.parameters] +"decimation_target" = { "type" = "integer", "maximum" = 2000000, "minimum" = 5000 } +"image_url" = { "type" = "string" } +"remesh" = { "type" = "boolean" } +"remesh_band" = { "type" = "number", "maximum" = 4, "minimum" = 0 } +"remesh_project" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"resolution" = { "enum" = [512, 1024, 1536], "type" = "integer" } +"seed" = { "type" = "integer" } +"shape_slat_guidance_interval_end" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"shape_slat_guidance_interval_start" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"shape_slat_guidance_rescale" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"shape_slat_guidance_strength" = { "type" = "number", "maximum" = 10, "minimum" = 0 } +"shape_slat_rescale_t" = { "type" = "number", "maximum" = 6, "minimum" = 1 } +"shape_slat_sampling_steps" = { "type" = "integer", "maximum" = 50, "minimum" = 1 } +"ss_guidance_interval_end" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"ss_guidance_interval_start" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"ss_guidance_rescale" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"ss_guidance_strength" = { "type" = "number", "maximum" = 10, "minimum" = 0 } +"ss_rescale_t" = { "type" = "number", "maximum" = 6, "minimum" = 1 } +"ss_sampling_steps" = { "type" = "integer", "maximum" = 50, "minimum" = 1 } +"tex_slat_guidance_interval_end" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"tex_slat_guidance_interval_start" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"tex_slat_guidance_rescale" = { "type" = "number", "maximum" = 1, "minimum" = 0 } +"tex_slat_guidance_strength" = { "type" = "number", "maximum" = 10, "minimum" = 0 } +"tex_slat_rescale_t" = { "type" = "number", "maximum" = 6, "minimum" = 1 } +"tex_slat_sampling_steps" = { "type" = "integer", "maximum" = 50, "minimum" = 1 } +"texture_size" = { "enum" = [1024, 2048, 4096], "type" = "integer" } +"uv_unwrap_angle_threshold_deg" = { "type" = "number", "maximum" = 180, "minimum" = 0 } +"uv_unwrap_global_iterations" = { "type" = "integer", "maximum" = 10, "minimum" = 1 } +"uv_unwrap_refine_iterations" = { "type" = "integer", "maximum" = 10, "minimum" = 0 } +"uv_unwrap_smooth_strength" = { "type" = "number", "maximum" = 10, "minimum" = 0 } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/trellis-2" } +microsoft = { "disposition" = "not_listed", "source_url" = "https://github.com/microsoft/TRELLIS.2", "reason" = "The official release distributes code and weights; it does not document a Microsoft-hosted inference API for this model." } + +[providers.grida] +provider = "grida" +id = "fal-ai/trellis-2" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.fal-ai.trellis-2.image", "operation" = "three-d.fal-ai.trellis-2.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.trellis-2.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.05" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/nightmareai/real-esrgan/card.toml b/models/nightmareai/real-esrgan/card.toml index 92f98fe..ce4a31f 100644 --- a/models/nightmareai/real-esrgan/card.toml +++ b/models/nightmareai/real-esrgan/card.toml @@ -10,3 +10,12 @@ cost_usd = 0.002 date = "2021-07-22" basis = "model" source_url = "https://github.com/xinntao/Real-ESRGAN/releases/tag/v0.1.0" + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "not_listed", "source_url" = "https://fal.ai/models", "reason" = "This card identifies a specific hosted implementation; no identical implementation/version was verified in the public media catalogue." } + +[distribution] +source_url = "https://github.com/xinntao/Real-ESRGAN" +code = { "repository_url" = "https://github.com/xinntao/Real-ESRGAN" } diff --git a/models/openai/gpt-5.5-pro/card.toml b/models/openai/gpt-5.5-pro/card.toml index fdcba14..d185690 100644 --- a/models/openai/gpt-5.5-pro/card.toml +++ b/models/openai/gpt-5.5-pro/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-5.5-pro" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-5.5 Pro" multimodal = true @@ -13,3 +15,136 @@ cost = { input = 30, output = 180 } date = "2026-04-23" basis = "model" source_url = "https://openai.com/index/introducing-gpt-5-5/" + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-5.5-pro" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-5.5-pro", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-5.5-pro" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.00003" +output = "0.00018" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.00003", "maximum_input_tokens" = 272000 }, + { "meter" = "input", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00006" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.00018", "maximum_input_tokens" = 272000 }, + { "meter" = "output", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00027" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[providers.openai] +provider = "openai" +id = "gpt-5.5-pro" +url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" +endpoints = [ + { id = "gpt-5.5-pro", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" +unit = "usd_per_token" +scope = "Standard text rates for prompts up to 272,000 input tokens; cached input has no discount. Longer-context rates are not recorded here." +input = "0.00003" +output = "0.00018" + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = false + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-5.5-pro" +url = "https://openrouter.ai/openai/gpt-5.5-pro" +source_url = "https://openrouter.ai/openai/gpt-5.5-pro" +endpoints = [ + { id = "openai/gpt-5.5-pro", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-5.5-pro" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded." +input = "0.00003" +output = "0.00018" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00003" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.00006" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00018" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.00027" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5-pro" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-5.5-pro" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-5.5-pro" + +[providers.grida] +provider = "grida" +id = "openai/gpt-5.5-pro" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-5.5-pro", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.00003" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.00006" }, + { "id" = "cached_input_tokens", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.00003" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.00018" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.00027" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-5.5/card.toml b/models/openai/gpt-5.5/card.toml index 9bc8be9..dc8e376 100644 --- a/models/openai/gpt-5.5/card.toml +++ b/models/openai/gpt-5.5/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-5.5" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-5.5" multimodal = true @@ -22,3 +24,161 @@ cache_read = 0.5 input_tokens_above = 272_000 input_multiplier = 2 output_multiplier = 1.5 + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-5.5" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-5.5", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-5.5" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000005" +output = "0.00003" +input_cache_read = "0.0000005" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.000005", "maximum_input_tokens" = 272000 }, + { "meter" = "input", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00001" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.00003", "maximum_input_tokens" = 272000 }, + { "meter" = "output", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000045" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000005", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000001" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1000000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://developers.openai.com/api/docs/guides/images-vision" +patch_size_px = 32 +token_multiplier = 1.2 +token_rounding = "ceil" +maximum_patch_count = 30000 +detail_patch_budgets = { "high" = 2500, "original" = 10000, "auto" = 10000 } +detail_maximum_edges = { "low" = 512, "high" = 2048, "original" = 6000, "auto" = 6000 } + +[providers.openai] +provider = "openai" +id = "gpt-5.5" +url = "https://developers.openai.com/api/docs/models/gpt-5.5" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" +endpoints = [ + { id = "gpt-5.5", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" +unit = "usd_per_token" +scope = "Standard synchronous text token rates; optional tools and other service tiers are excluded." +input = "0.000005" +output = "0.00003" +input_cache_read = "0.0000005" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000005" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.000010" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00003" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000045" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000005" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.0000010" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-5.5" +url = "https://openrouter.ai/openai/gpt-5.5" +source_url = "https://openrouter.ai/openai/gpt-5.5" +endpoints = [ + { id = "openai/gpt-5.5", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-5.5" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded." +input = "0.000005" +output = "0.00003" +input_cache_read = "0.0000005" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000005" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.00001" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00003" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.000045" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000005" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.000001" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.5" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-5.5" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-5.5" + +[providers.grida] +provider = "grida" +id = "openai/gpt-5.5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-5.5", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.000005" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.00001" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.0000005" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.000001" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.00003" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.000045" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1000000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-5.6-luna/card.toml b/models/openai/gpt-5.6-luna/card.toml index b9e1004..dab28ee 100644 --- a/models/openai/gpt-5.6-luna/card.toml +++ b/models/openai/gpt-5.6-luna/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-5.6-luna" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-5.6 Luna" multimodal = true @@ -23,3 +25,170 @@ cache_write = 0.25 input_tokens_above = 272_000 input_multiplier = 2 output_multiplier = 1.5 + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-5.6-luna" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-5.6-luna", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-luna" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.0000002" +output = "0.0000012" +input_cache_read = "0.00000002" +input_cache_write = "0.00000025" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000002", "maximum_input_tokens" = 272000 }, + { "meter" = "input", "minimum_input_tokens" = 272000, "usd_per_token" = "0.0000004" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000012", "maximum_input_tokens" = 272000 }, + { "meter" = "output", "minimum_input_tokens" = 272000, "usd_per_token" = "0.0000018" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.00000002", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00000004" }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 0, "usd_per_token" = "0.00000025", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 272000, "usd_per_token" = "0.0000005" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://developers.openai.com/api/docs/guides/images-vision" +patch_size_px = 32 +token_multiplier = 1.2 +token_rounding = "ceil" +maximum_patch_count = 30000 +detail_patch_budgets = { "high" = 2500 } +detail_maximum_edges = { "low" = 512, "high" = 2048, "original" = 65535, "auto" = 65535 } + +[providers.openai] +provider = "openai" +id = "gpt-5.6-luna" +url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" +endpoints = [ + { id = "gpt-5.6-luna", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" +unit = "usd_per_token" +scope = "Standard synchronous text token rates; optional tools and other service tiers are excluded." +input = "0.0000002" +output = "0.0000012" +input_cache_read = "0.00000002" +input_cache_write = "0.00000025" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.0000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000012" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.00000180" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00000002" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.00000004" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00000025" }, + { meter = "input_cache_write", minimum_input_tokens = 272001, usd_per_token = "0.00000050" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-5.6-luna" +url = "https://openrouter.ai/openai/gpt-5.6-luna" +source_url = "https://openrouter.ai/openai/gpt-5.6-luna" +endpoints = [ + { id = "openai/gpt-5.6-luna", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-5.6-luna" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded." +input = "0.0000002" +output = "0.0000012" +input_cache_read = "0.00000002" +input_cache_write = "0.00000025" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000002" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.0000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000012" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.0000018" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00000002" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.00000004" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00000025" }, + { meter = "input_cache_write", minimum_input_tokens = 272000, usd_per_token = "0.0000005" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-luna" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-luna" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-5.6-luna" + +[providers.grida] +provider = "grida" +id = "openai/gpt-5.6-luna" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-5.6-luna", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.0000002" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.0000004" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.00000002" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.00000004" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.0000012" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.0000018" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1050000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-5.6-sol/card.toml b/models/openai/gpt-5.6-sol/card.toml index 7f4ab50..c3ddb15 100644 --- a/models/openai/gpt-5.6-sol/card.toml +++ b/models/openai/gpt-5.6-sol/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-5.6-sol" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-5.6 Sol" multimodal = true @@ -13,13 +15,151 @@ date = "2026-07-09" basis = "model" source_url = "https://openai.com/index/gpt-5-6/" -[cost] -input = 4 -output = 20 -cache_read = 0.4 -cache_write = 5 +[providers.vercel] +provider = "vercel" +id = "openai/gpt-5.6-sol" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-5.6-sol", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-sol" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000004" +output = "0.00002" +input_cache_read = "0.0000004" +input_cache_write = "0.000005" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.000004", "maximum_input_tokens" = 272000 }, + { "meter" = "input", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000008" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.00002", "maximum_input_tokens" = 272000 }, + { "meter" = "output", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00003" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000004", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 272000, "usd_per_token" = "0.0000008" }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 0, "usd_per_token" = "0.000005", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 272000, "usd_per_token" = "0.00001" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://developers.openai.com/api/docs/guides/images-vision" +patch_size_px = 32 +token_multiplier = 1.2 +token_rounding = "ceil" +maximum_patch_count = 30000 +detail_patch_budgets = { "high" = 2500 } +detail_maximum_edges = { "low" = 512, "high" = 2048, "original" = 65535, "auto" = 65535 } + +[providers.openai] +provider = "openai" +id = "gpt-5.6-sol" +url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" +endpoints = [ + { id = "gpt-5.6-sol", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-5.6-sol" +url = "https://openrouter.ai/openai/gpt-5.6-sol" +source_url = "https://openrouter.ai/openai/gpt-5.6-sol" +endpoints = [ + { id = "openai/gpt-5.6-sol", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-5.6-sol" +unit = "usd_per_token" +scope = "Regular Standard Azure endpoint token rates, also shown as list input/output/cache-read rates in the model page. Other endpoints and service tiers may differ." +input = "0.000004" +output = "0.00002" +input_cache_read = "0.0000004" +input_cache_write = "0.000005" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000004" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.000008" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00002" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.00003" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000004" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.0000008" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000005" }, + { meter = "input_cache_write", minimum_input_tokens = 272000, usd_per_token = "0.00001" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +reason = "Native model availability is verified; its published pricing is promotional, so an unqualified regular native price is not recorded." +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-sol" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-sol" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-5.6-sol" + +[providers.grida] +provider = "grida" +id = "openai/gpt-5.6-sol" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-5.6-sol", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.000004" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.000008" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.0000004" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.0000008" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.00002" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.00003" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1050000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" -[cost.long_context] -input_tokens_above = 272_000 -input_multiplier = 2 -output_multiplier = 1.5 +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-5.6-terra/card.toml b/models/openai/gpt-5.6-terra/card.toml index 9c39f0a..bf39619 100644 --- a/models/openai/gpt-5.6-terra/card.toml +++ b/models/openai/gpt-5.6-terra/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-5.6-terra" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-5.6 Terra" multimodal = true @@ -23,3 +25,170 @@ cache_write = 2.5 input_tokens_above = 272_000 input_multiplier = 2 output_multiplier = 1.5 + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-5.6-terra" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-5.6-terra", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-terra" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +input_cache_write = "0.0000025" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.000002", "maximum_input_tokens" = 272000 }, + { "meter" = "input", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000004" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.000012", "maximum_input_tokens" = 272000 }, + { "meter" = "output", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000018" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000002", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 272000, "usd_per_token" = "0.0000004" }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000025", "maximum_input_tokens" = 272000 }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 272000, "usd_per_token" = "0.000005" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://developers.openai.com/api/docs/guides/images-vision" +patch_size_px = 32 +token_multiplier = 1.2 +token_rounding = "ceil" +maximum_patch_count = 30000 +detail_patch_budgets = { "high" = 2500 } +detail_maximum_edges = { "low" = 512, "high" = 2048, "original" = 65535, "auto" = 65535 } + +[providers.openai] +provider = "openai" +id = "gpt-5.6-terra" +url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" +endpoints = [ + { id = "gpt-5.6-terra", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" +unit = "usd_per_token" +scope = "Standard synchronous text token rates; optional tools and other service tiers are excluded." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +input_cache_write = "0.0000025" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000002" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000012" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.0000180" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.0000004" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000025" }, + { meter = "input_cache_write", minimum_input_tokens = 272001, usd_per_token = "0.0000050" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-5.6-terra" +url = "https://openrouter.ai/openai/gpt-5.6-terra" +source_url = "https://openrouter.ai/openai/gpt-5.6-terra" +endpoints = [ + { id = "openai/gpt-5.6-terra", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-5.6-terra" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded." +input = "0.000002" +output = "0.000012" +input_cache_read = "0.0000002" +input_cache_write = "0.0000025" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000002" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.000004" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000012" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.000018" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000002" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.0000004" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000025" }, + { meter = "input_cache_write", minimum_input_tokens = 272000, usd_per_token = "0.000005" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-5.6-terra" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-5.6-terra" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-5.6-terra" + +[providers.grida] +provider = "grida" +id = "openai/gpt-5.6-terra" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-5.6-terra", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.000002" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.000004" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.0000002" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.0000004" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272000" }, "usd_per_unit" = "0.000012" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272000" }, "usd_per_unit" = "0.000018" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1050000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-6-astra/card.toml b/models/openai/gpt-6-astra/card.toml index bd0c380..2376cfc 100644 --- a/models/openai/gpt-6-astra/card.toml +++ b/models/openai/gpt-6-astra/card.toml @@ -1,5 +1,7 @@ id = "openai/gpt-6-astra" section = "text.catalog" +vendor = "openai" +reference_provider = "openai" label = "GPT-6 Astra" multimodal = true @@ -11,7 +13,7 @@ output_limit = 128_000 [release] date = "2026-09-04" basis = "provider_endpoint" -source_url = "https://vercel.com/ai-gateway/models/gpt-6-astra" +source_url = "https://ai-gateway.vercel.sh/v1/models" [cost] input = 10 @@ -23,3 +25,170 @@ cache_write = 12.5 input_tokens_above = 272_000 input_multiplier = 2 output_multiplier = 1.5 + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-6-astra" +url = "https://ai-gateway.vercel.sh/v1/models" +endpoints = [ + { id = "openai/gpt-6-astra", input = "text", source_url = "https://ai-gateway.vercel.sh/v1/models" }, +] + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-astra" +unit = "usd_per_token" +scope = "Standard global token rates; alternate service tiers, optional tools and regional premiums are excluded. Cache-write rates, where present, use the default cache duration." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.000001" +input_cache_write = "0.0000125" +tiers = [ + { "meter" = "input", "minimum_input_tokens" = 0, "usd_per_token" = "0.00001", "maximum_input_tokens" = 272001 }, + { "meter" = "input", "minimum_input_tokens" = 272001, "usd_per_token" = "0.00002" }, + { "meter" = "output", "minimum_input_tokens" = 0, "usd_per_token" = "0.00005", "maximum_input_tokens" = 272001 }, + { "meter" = "output", "minimum_input_tokens" = 272001, "usd_per_token" = "0.000075" }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 0, "usd_per_token" = "0.000001", "maximum_input_tokens" = 272001 }, + { "meter" = "input_cache_read", "minimum_input_tokens" = 272001, "usd_per_token" = "0.000002" }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 0, "usd_per_token" = "0.0000125", "maximum_input_tokens" = 272001 }, + { "meter" = "input_cache_write", "minimum_input_tokens" = 272001, "usd_per_token" = "0.000025" }, +] + +[providers.vercel.capabilities] +source_url = "https://ai-gateway.vercel.sh/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://ai-gateway.vercel.sh/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[vision_tokenization] +source_url = "https://developers.openai.com/api/docs/guides/images-vision" +patch_size_px = 32 +token_multiplier = 1.2 +token_rounding = "ceil" +maximum_patch_count = 30000 +detail_patch_budgets = { "high" = 2500 } +detail_maximum_edges = { "low" = 512, "high" = 65535, "original" = 65535, "auto" = 65535 } + +[providers.openai] +provider = "openai" +id = "gpt-6-astra" +url = "https://developers.openai.com/api/docs/models/gpt-6-astra" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" +endpoints = [ + { id = "gpt-6-astra", input = "text", source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" +unit = "usd_per_token" +scope = "Standard synchronous text token rates; optional tools and other service tiers are excluded." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.000001" +input_cache_write = "0.0000125" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00001" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.00002" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00005" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000075" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.000002" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000125" }, + { meter = "input_cache_write", minimum_input_tokens = 272001, usd_per_token = "0.0000250" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" +image_input = true +reasoning = true +tools = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" +context_tokens = 1050000 +max_output_tokens = 128000 + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-6-astra" +url = "https://openrouter.ai/openai/gpt-6-astra" +source_url = "https://openrouter.ai/openai/gpt-6-astra" +endpoints = [ + { id = "openai/gpt-6-astra", input = "text", source_url = "https://openrouter.ai/api/v1/models" }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-6-astra" +unit = "usd_per_token" +scope = "Standard route token rates; optional tools, regional premiums and alternate service tiers are excluded." +input = "0.00001" +output = "0.00005" +input_cache_read = "0.000001" +input_cache_write = "0.0000125" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00001" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.00002" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00005" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.000075" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.000002" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000125" }, + { meter = "input_cache_write", minimum_input_tokens = 272000, usd_per_token = "0.000025" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +tools = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 1050000 +max_output_tokens = 128000 + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-astra" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-astra" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-6-astra" + +[providers.grida] +provider = "grida" +id = "openai/gpt-6-astra" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "openai/gpt-6-astra", "input" = "text", "source_url" = "https://gateway.grida.ai/v1/models", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "input_tokens.0", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272001" }, "usd_per_unit" = "0.00001" }, + { "id" = "input_tokens.1", "meter" = "input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272001" }, "usd_per_unit" = "0.00002" }, + { "id" = "cached_input_tokens.0", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272001" }, "usd_per_unit" = "0.000001" }, + { "id" = "cached_input_tokens.1", "meter" = "cached_input_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272001" }, "usd_per_unit" = "0.000002" }, + { "id" = "output_tokens.0", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "0", "max" = "272001" }, "usd_per_unit" = "0.00005" }, + { "id" = "output_tokens.1", "meter" = "output_tokens", "unit" = "token", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "quantity_range" = { "meter" = "total_input_tokens", "min" = "272001" }, "usd_per_unit" = "0.000075" }, + ] } }, +] +capabilities = { "source_url" = "https://gateway.grida.ai/v1/models", "image_input" = true, "tools" = true, "reasoning" = true, "structured_output" = true } +limits = { "source_url" = "https://gateway.grida.ai/v1/models", "context_tokens" = 1050000, "max_output_tokens" = 128000 } + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" + +[provider_coverage.fal] +disposition = "excluded" +source_url = "https://fal.ai/models" +reason = "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." diff --git a/models/openai/gpt-image-1-mini/card.toml b/models/openai/gpt-image-1-mini/card.toml index 0a1c940..54ee8f0 100644 --- a/models/openai/gpt-image-1-mini/card.toml +++ b/models/openai/gpt-image-1-mini/card.toml @@ -1,3 +1,4 @@ +reference_provider = "openai" id = "openai/gpt-image-1-mini" section = "image.models" null_keys = ["styles", "constraints"] @@ -41,3 +42,50 @@ cached_input = 0.2 image_input = 2.5 cached_image_input = 0.25 output = 8 + +[providers.openai] +provider = "openai" +id = "gpt-image-1-mini" +source_url = "https://developers.openai.com/api/docs/models/gpt-image-1-mini" +url = "https://developers.openai.com/api/docs/models/gpt-image-1-mini" +pricing = { "input" = 2, "cached_input" = 0.2, "image_input" = 2.5, "cached_image_input" = 0.25, "output" = 8, "type" = "per_token", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-1-mini" } + +[providers.fal] +provider = "fal" +id = "fal-ai/gpt-image-1-mini" +source_url = "https://fal.ai/models/fal-ai/gpt-image-1-mini" +url = "https://fal.ai/models/fal-ai/gpt-image-1-mini" +pricing = { "type" = "per_image_tiered", "tiers" = { "low/1024x1024" = 0.005, "low/1024x1536" = 0.006, "low/1536x1024" = 0.006, "medium/1024x1024" = 0.011, "medium/1024x1536" = 0.015, "medium/1536x1024" = 0.015, "high/1024x1024" = 0.036, "high/1024x1536" = 0.052, "high/1536x1024" = 0.052 }, "input_text_usd_per_million" = 2, "total_rounding_usd" = 0.01, "source_url" = "https://fal.ai/models/fal-ai/gpt-image-1-mini" } +input = "text" + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/gpt-image-1-mini" } +openai = { "disposition" = "listed", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-1-mini" } + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-image-1-mini" +source_url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" +url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" +pricing = { "type" = "per_token", "image_input" = 2.5, "input" = 2.0, "output" = 8.0, "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints" } +transparent_background = true +references = { "id" = "openai/gpt-image-1-mini", "max" = 16 } +endpoints = [ + { "id" = "openai/gpt-image-1-mini", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-1-mini/endpoints", "parameters" = { "aspect_ratio" = { "enum" = [ + "1:1", + "3:2", + "2:3", + "auto", + ] }, "quality" = { "enum" = [ + "auto", + "low", + "medium", + "high", + ] }, "background" = { "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "n" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "input_references" = { "type" = "integer", "minimum" = 0, "maximum" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 } }, "input" = "text" }, +] diff --git a/models/openai/gpt-image-1.5/card.toml b/models/openai/gpt-image-1.5/card.toml index 74783b7..6b24ae7 100644 --- a/models/openai/gpt-image-1.5/card.toml +++ b/models/openai/gpt-image-1.5/card.toml @@ -1,3 +1,4 @@ +reference_provider = "openai" id = "openai/gpt-image-1.5" section = "image.models" null_keys = ["styles", "constraints"] @@ -41,3 +42,24 @@ cached_input = 1.25 image_input = 8 cached_image_input = 2 output = 32 + +[providers.openai] +provider = "openai" +id = "gpt-image-1.5" +source_url = "https://developers.openai.com/api/docs/models/gpt-image-1.5" +url = "https://developers.openai.com/api/docs/models/gpt-image-1.5" +pricing = { "input" = 5, "cached_input" = 1.25, "image_input" = 8, "cached_image_input" = 2, "output" = 32, "type" = "per_token", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-1.5" } + +[providers.fal] +provider = "fal" +id = "fal-ai/gpt-image-1.5" +source_url = "https://fal.ai/models/fal-ai/gpt-image-1.5" +url = "https://fal.ai/models/fal-ai/gpt-image-1.5" +pricing = { "type" = "per_image_tiered", "tiers" = { "low/1024x1024" = 0.009, "low/1024x1536" = 0.013, "low/1536x1024" = 0.013, "medium/1024x1024" = 0.034, "medium/1024x1536" = 0.051, "medium/1536x1024" = 0.05, "high/1024x1024" = 0.133, "high/1024x1536" = 0.2, "high/1536x1024" = 0.199 }, "input_text_usd_per_million" = 5, "text_output_usd_per_million" = 10, "source_url" = "https://fal.ai/models/fal-ai/gpt-image-1.5" } +input = "text" + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/images/models", "reason" = "No matching model/version is listed in the inspected public image model catalogue." } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/gpt-image-1.5" } +openai = { "disposition" = "listed", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-1.5" } diff --git a/models/openai/gpt-image-2.5-flare/card.toml b/models/openai/gpt-image-2.5-flare/card.toml index 8634160..c7dfbd2 100644 --- a/models/openai/gpt-image-2.5-flare/card.toml +++ b/models/openai/gpt-image-2.5-flare/card.toml @@ -1,3 +1,4 @@ +reference_provider = "openai" id = "openai/gpt-image-2.5-flare" section = "image.models" null_keys = ["styles"] @@ -25,16 +26,57 @@ pricing = { type = "per_token", input = 5, cached_input = 1.25, output = 30 } avg_cost_usd = 0.055 url = "https://vercel.com/ai-gateway/models/gpt-image-2.5-flare" -[providers.openrouter] -provider = "openrouter" -id = "openai/gpt-image-2.5-flare" -pricing = { type = "per_token", input = 5, image_input = 8, output = 30 } -avg_cost_usd = 0.055 -url = "https://openrouter.ai/openai/gpt-image-2.5-flare" -transparent_background = false -references = { id = "openai/gpt-image-2.5-flare", max = 16 } - [providers.fal] +endpoints = [ + { "id" = "openai/gpt-image-2.5/flare/edit", "input" = "image", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/edit/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 1, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "image_urls" = { "type" = "array", "max_items" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, + { "id" = "openai/gpt-image-2.5/flare/text-to-image", "input" = "text", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 1, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, +] provider = "fal" id = "openai/gpt-image-2.5/flare/text-to-image" avg_cost_usd = 0.055 @@ -42,6 +84,8 @@ url = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" references = { id = "openai/gpt-image-2.5/flare/edit", max = 16 } [providers.fal.pricing] +source_url = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" +rounding_usd = 0.0001 type = "per_token" input = 5 cached_input = 1.25 @@ -56,3 +100,112 @@ max_edge = 3840 min_pixels = 655_360 max_pixels = 8_294_400 aspect_ratio = { max = 3 } + +[output_token_calculator] +source_url = "https://developers.openai.com/api/docs/guides/image-generation" +source_js_url = "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js" +area_offset = 2000000 +area_divisor = 4000000 +short_axis_rounding = "nearest_ties_even" +token_rounding = "ceil" +quality_axes = { "low" = 16, "medium" = 24, "high" = 48, "xhigh" = 64, "max" = 96 } +examples = [ + { "width" = 1024, "height" = 768, "quality" = "low", "output_tokens" = 134, "usd" = 0.00402, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "low", "output_tokens" = 196, "usd" = 0.00588, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "low", "usd" = 0.00441, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "low", "output_tokens" = 205, "usd" = 0.00615, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "low", "output_tokens" = 371, "usd" = 0.01113, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "medium", "output_tokens" = 301, "usd" = 0.00903, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "medium", "output_tokens" = 439, "usd" = 0.01317, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "medium", "output_tokens" = 343, "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "medium", "output_tokens" = 343, "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "medium", "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "medium", "output_tokens" = 478, "usd" = 0.01434, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "medium", "output_tokens" = 865, "usd" = 0.02595, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "high", "output_tokens" = 1204, "usd" = 0.03612, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "high", "output_tokens" = 1756, "usd" = 0.05268, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "high", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "high", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "high", "usd" = 0.0396, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "high", "output_tokens" = 1843, "usd" = 0.05529, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "high", "output_tokens" = 3336, "usd" = 0.10008, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "xhigh", "output_tokens" = 2140, "usd" = 0.0642, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "xhigh", "output_tokens" = 3122, "usd" = 0.09366, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "xhigh", "output_tokens" = 2459, "usd" = 0.07377, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "xhigh", "output_tokens" = 2459, "usd" = 0.07377, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "xhigh", "usd" = 0.07041, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "xhigh", "output_tokens" = 3276, "usd" = 0.09828, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "xhigh", "output_tokens" = 5930, "usd" = 0.1779, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "max", "output_tokens" = 4815, "usd" = 0.14445, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "max", "output_tokens" = 7024, "usd" = 0.21072, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "max", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "max", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "max", "usd" = 0.1584, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "max", "output_tokens" = 7370, "usd" = 0.2211, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "max", "output_tokens" = 13342, "usd" = 0.40026, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" }, +] + +[providers.openai] +provider = "openai" +id = "gpt-image-2.5-flare" +source_url = "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" +url = "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" +pricing = { "type" = "per_token", "input" = 5, "cached_input" = 1.25, "output" = 30, "image_input" = 8, "cached_image_input" = 2, "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/gpt-image-2.5-flare" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/flare/text-to-image" } +openai = { "disposition" = "listed", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2.5-flare" } + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-image-2.5-flare" +source_url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" +url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" +pricing = { "type" = "per_token", "image_input" = 8.0, "input" = 5.0, "output" = 30.0, "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints" } +transparent_background = true +references = { "id" = "openai/gpt-image-2.5-flare", "max" = 16 } +endpoints = [ + { "id" = "openai/gpt-image-2.5-flare", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-flare/endpoints", "parameters" = { "aspect_ratio" = { "enum" = [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto", + ] }, "quality" = { "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "n" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "input_references" = { "type" = "integer", "minimum" = 0, "maximum" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "openai/gpt-image-2.5-flare" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.openai.gpt-image-2.5-flare.references", "operation" = "image.openai.gpt-image-2.5-flare.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-flare.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, + { "id" = "image.openai.gpt-image-2.5-flare.text", "operation" = "image.openai.gpt-image-2.5-flare.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-flare.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/openai/gpt-image-2.5-sunburst/card.toml b/models/openai/gpt-image-2.5-sunburst/card.toml index cd40246..3c264f6 100644 --- a/models/openai/gpt-image-2.5-sunburst/card.toml +++ b/models/openai/gpt-image-2.5-sunburst/card.toml @@ -1,3 +1,4 @@ +reference_provider = "openai" id = "openai/gpt-image-2.5-sunburst" section = "image.models" null_keys = ["styles"] @@ -25,16 +26,57 @@ pricing = { type = "per_token", input = 5, cached_input = 1.25, output = 30 } avg_cost_usd = 0.055 url = "https://vercel.com/ai-gateway/models/gpt-image-2.5-sunburst" -[providers.openrouter] -provider = "openrouter" -id = "openai/gpt-image-2.5-sunburst" -pricing = { type = "per_token", input = 5, image_input = 8, output = 30 } -avg_cost_usd = 0.055 -url = "https://openrouter.ai/openai/gpt-image-2.5-sunburst" -transparent_background = false -references = { id = "openai/gpt-image-2.5-sunburst", max = 16 } - [providers.fal] +endpoints = [ + { "id" = "openai/gpt-image-2.5/sunburst/edit", "input" = "image", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/edit/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 1, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "image_urls" = { "type" = "array", "max_items" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, + { "id" = "openai/gpt-image-2.5/sunburst/text-to-image", "input" = "text", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 1, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, +] provider = "fal" id = "openai/gpt-image-2.5/sunburst/text-to-image" avg_cost_usd = 0.055 @@ -42,6 +84,8 @@ url = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" references = { id = "openai/gpt-image-2.5/sunburst/edit", max = 16 } [providers.fal.pricing] +source_url = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" +rounding_usd = 0.0001 type = "per_token" input = 5 cached_input = 1.25 @@ -56,3 +100,112 @@ max_edge = 3840 min_pixels = 655_360 max_pixels = 8_294_400 aspect_ratio = { max = 3 } + +[output_token_calculator] +source_url = "https://developers.openai.com/api/docs/guides/image-generation" +source_js_url = "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js" +area_offset = 2000000 +area_divisor = 4000000 +short_axis_rounding = "nearest_ties_even" +token_rounding = "ceil" +quality_axes = { "low" = 16, "medium" = 24, "high" = 48, "xhigh" = 64, "max" = 96 } +examples = [ + { "width" = 1024, "height" = 768, "quality" = "low", "output_tokens" = 134, "usd" = 0.00402, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "low", "output_tokens" = 196, "usd" = 0.00588, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "low", "usd" = 0.00441, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "low", "output_tokens" = 205, "usd" = 0.00615, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "low", "output_tokens" = 371, "usd" = 0.01113, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "medium", "output_tokens" = 301, "usd" = 0.00903, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "medium", "output_tokens" = 439, "usd" = 0.01317, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "medium", "output_tokens" = 343, "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "medium", "output_tokens" = 343, "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "medium", "usd" = 0.01029, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "medium", "output_tokens" = 478, "usd" = 0.01434, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "medium", "output_tokens" = 865, "usd" = 0.02595, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "high", "output_tokens" = 1204, "usd" = 0.03612, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "high", "output_tokens" = 1756, "usd" = 0.05268, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "high", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "high", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "high", "usd" = 0.0396, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "high", "output_tokens" = 1843, "usd" = 0.05529, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "high", "output_tokens" = 3336, "usd" = 0.10008, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "xhigh", "output_tokens" = 2140, "usd" = 0.0642, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "xhigh", "output_tokens" = 3122, "usd" = 0.09366, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "xhigh", "output_tokens" = 2459, "usd" = 0.07377, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "xhigh", "output_tokens" = 2459, "usd" = 0.07377, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "xhigh", "usd" = 0.07041, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "xhigh", "output_tokens" = 3276, "usd" = 0.09828, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "xhigh", "output_tokens" = 5930, "usd" = 0.1779, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 768, "quality" = "max", "output_tokens" = 4815, "usd" = 0.14445, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1024, "quality" = "max", "output_tokens" = 7024, "usd" = 0.21072, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1024, "height" = 1536, "quality" = "max", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 1536, "height" = 1024, "quality" = "max", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1920, "height" = 1080, "quality" = "max", "usd" = 0.1584, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 2560, "height" = 1440, "quality" = "max", "output_tokens" = 7370, "usd" = 0.2211, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, + { "width" = 3840, "height" = 2160, "quality" = "max", "output_tokens" = 13342, "usd" = 0.40026, "usd_precision" = 5, "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" }, +] + +[providers.openai] +provider = "openai" +id = "gpt-image-2.5-sunburst" +source_url = "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" +url = "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" +pricing = { "type" = "per_token", "input" = 5, "cached_input" = 1.25, "output" = 30, "image_input" = 8, "cached_image_input" = 2, "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/gpt-image-2.5-sunburst" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/openai/gpt-image-2.5/sunburst/text-to-image" } +openai = { "disposition" = "listed", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2.5-sunburst" } + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-image-2.5-sunburst" +source_url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" +url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" +pricing = { "type" = "per_token", "image_input" = 8.0, "input" = 5.0, "output" = 30.0, "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints" } +transparent_background = true +references = { "id" = "openai/gpt-image-2.5-sunburst", "max" = 16 } +endpoints = [ + { "id" = "openai/gpt-image-2.5-sunburst", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2.5-sunburst/endpoints", "parameters" = { "aspect_ratio" = { "enum" = [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto", + ] }, "quality" = { "enum" = [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max", + ] }, "background" = { "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "n" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "input_references" = { "type" = "integer", "minimum" = 0, "maximum" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "openai/gpt-image-2.5-sunburst" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.openai.gpt-image-2.5-sunburst.references", "operation" = "image.openai.gpt-image-2.5-sunburst.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-sunburst.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, + { "id" = "image.openai.gpt-image-2.5-sunburst.text", "operation" = "image.openai.gpt-image-2.5-sunburst.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.5-sunburst.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_10", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/openai/gpt-image-2/card.toml b/models/openai/gpt-image-2/card.toml index f630c80..3e16bf3 100644 --- a/models/openai/gpt-image-2/card.toml +++ b/models/openai/gpt-image-2/card.toml @@ -1,3 +1,4 @@ +reference_provider = "openai" id = "openai/gpt-image-2" section = "image.models" null_keys = ["providers.vercel.transparent_background", "styles"] @@ -22,24 +23,68 @@ id = "openai/gpt-image-2" pricing = { type = "per_token", input = 5, output = 30 } avg_cost_usd = 0.053 -[providers.openrouter] -provider = "openrouter" -id = "openai/gpt-image-2" -pricing = { type = "per_token", input = 8, output = 8 } -avg_cost_usd = 0.05 -url = "https://openrouter.ai/openai/gpt-image-2" -transparent_background = false -references = { id = "openai/gpt-image-2", max = 16 } - [providers.fal] +endpoints = [ + { "id" = "openai/gpt-image-2", "input" = "text", "source_url" = "https://fal.ai/models/openai/gpt-image-2/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 2, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 4 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, + { "id" = "openai/gpt-image-2/edit", "input" = "image", "source_url" = "https://fal.ai/models/openai/gpt-image-2/edit/api", "parameters" = { "prompt" = { "type" = "string", "min_length" = 2, "max_length" = 32000 }, "num_images" = { "type" = "integer", "minimum" = 1, "maximum" = 4 }, "quality" = { "type" = "string", "enum" = [ + "auto", + "low", + "medium", + "high", + ] }, "background" = { "type" = "string", "enum" = [ + "auto", + "transparent", + "opaque", + ] }, "output_format" = { "type" = "string", "enum" = [ + "jpeg", + "png", + "webp", + ] }, "image_urls" = { "type" = "array", "max_items" = 16 }, "image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", + "auto", + ] }, "image_size.width" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 }, "image_size.height" = { "type" = "integer", "minimum" = 1, "maximum" = 3840, "multiple_of" = 16 } }, "image_constraints" = { "min_pixels" = 655360, "max_pixels" = 8294400, "step" = 16, "max_edge" = 3840, "aspect_ratio" = { "max" = 3 } } }, +] provider = "fal" -id = "fal-ai/gpt-image-2" +id = "openai/gpt-image-2" avg_cost_usd = 0.053 url = "https://fal.ai/models/openai/gpt-image-2" [providers.fal.pricing] -type = "per_image_tiered" -tiers = { "low/1024x1024" = 0.006, "medium/1024x1024" = 0.053, "high/1024x1024" = 0.211 } +source_url = "https://fal.ai/models/openai/gpt-image-2" +rounding_usd = 0.0001 +type = "per_token" +input = 5 +cached_input = 1.25 +image_input = 8 +cached_image_input = 2 +text_output = 10 +output = 30 [constraints] step = 16 @@ -68,3 +113,83 @@ cached_input = 1.25 image_input = 8 cached_image_input = 2 output = 30 + +[output_token_calculator] +source_url = "https://developers.openai.com/api/docs/guides/image-generation" +source_js_url = "https://developers.openai.com/_astro/GptImageTokenCalculator.react.DukR73TZ.js" +area_offset = 2000000 +area_divisor = 4000000 +short_axis_rounding = "nearest_ties_even" +token_rounding = "ceil" +quality_axes = { "low" = 16, "medium" = 48, "high" = 96 } +examples = [ + { "width" = 1024, "height" = 1024, "quality" = "low", "output_tokens" = 196, "usd" = 0.00588, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1024, "height" = 1536, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1536, "height" = 1024, "quality" = "low", "output_tokens" = 158, "usd" = 0.00474, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1024, "height" = 1024, "quality" = "medium", "output_tokens" = 1756, "usd" = 0.05268, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1024, "height" = 1536, "quality" = "medium", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1536, "height" = 1024, "quality" = "medium", "output_tokens" = 1372, "usd" = 0.04116, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1024, "height" = 1024, "quality" = "high", "output_tokens" = 7024, "usd" = 0.21072, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1024, "height" = 1536, "quality" = "high", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, + { "width" = 1536, "height" = 1024, "quality" = "high", "output_tokens" = 5488, "usd" = 0.16464, "usd_precision" = 5, "source_url" = "https://developers.openai.com/api/docs/guides/image-generation" }, +] + +[providers.openai] +provider = "openai" +id = "gpt-image-2" +source_url = "https://developers.openai.com/api/docs/models/gpt-image-2" +url = "https://developers.openai.com/api/docs/models/gpt-image-2" +pricing = { "input" = 5, "cached_input" = 1.25, "image_input" = 8, "cached_image_input" = 2, "output" = 30, "type" = "per_token", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/openai/gpt-image-2" } +openai = { "disposition" = "listed", "source_url" = "https://developers.openai.com/api/docs/models/gpt-image-2" } + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-image-2" +source_url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" +url = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" +pricing = { "type" = "per_token", "image_input" = 8.0, "input" = 5.0, "output" = 30.0, "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints" } +transparent_background = false +references = { "id" = "openai/gpt-image-2", "max" = 16 } +endpoints = [ + { "id" = "openai/gpt-image-2", "source_url" = "https://openrouter.ai/api/v1/images/models/openai/gpt-image-2/endpoints", "parameters" = { "aspect_ratio" = { "enum" = [ + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "16:9", + "9:16", + "21:9", + "auto", + ] }, "quality" = { "enum" = [ + "auto", + "low", + "medium", + "high", + ] }, "background" = { "enum" = [ + "auto", + "opaque", + ] }, "n" = { "type" = "integer", "minimum" = 1, "maximum" = 10 }, "input_references" = { "type" = "integer", "minimum" = 0, "maximum" = 16 }, "output_compression" = { "type" = "integer", "minimum" = 0, "maximum" = 100 } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "openai/gpt-image-2" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.openai.gpt-image-2.references", "operation" = "image.openai.gpt-image-2.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, + { "id" = "image.openai.gpt-image-2.text", "operation" = "image.openai.gpt-image-2.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.openai.gpt-image-2.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "1" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/recraft-ai/recraft-remove-background/card.toml b/models/recraft-ai/recraft-remove-background/card.toml index fded37a..ae78d9b 100644 --- a/models/recraft-ai/recraft-remove-background/card.toml +++ b/models/recraft-ai/recraft-remove-background/card.toml @@ -1,3 +1,4 @@ +reference_provider = "recraft" id = "recraft-ai/recraft-remove-background" section = "image_tools.models" null_keys = ["release.date"] @@ -10,3 +11,17 @@ cost_usd = 0.01 [release] basis = "provider_endpoint" source_url = "https://replicate.com/recraft-ai/recraft-remove-background/versions" + + +[providers.recraft] +provider = "recraft" +id = "/v1/images/removeBackground" +source_url = "https://www.recraft.ai/docs/api-reference/tools/remove-background" +url = "https://www.recraft.ai/docs/api-reference/tools/remove-background" +pricing = { "type" = "per_run_flat", "usd" = 0.01, "source_url" = "https://www.recraft.ai/docs/api-reference/tools/remove-background" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "not_listed", "source_url" = "https://fal.ai/models", "reason" = "No matching model/version is listed in the inspected public media catalogue." } +recraft = { "disposition" = "listed", "source_url" = "https://www.recraft.ai/docs/api-reference/tools/remove-background" } diff --git a/models/recraft-ai/recraft-v3/card.toml b/models/recraft-ai/recraft-v3/card.toml index d18c416..13a18d4 100644 --- a/models/recraft-ai/recraft-v3/card.toml +++ b/models/recraft-ai/recraft-v3/card.toml @@ -1,3 +1,4 @@ +reference_provider = "recraft" id = "recraft/recraft-v3" section = "image.models" null_keys = ["styles", "sizes"] @@ -35,3 +36,16 @@ id = "fal-ai/recraft/v3/text-to-image" pricing = { type = "per_image_flat", usd = 0.04 } avg_cost_usd = 0.04 url = "https://fal.ai/models/fal-ai/recraft/v3/text-to-image" + +[providers.recraft] +provider = "recraft" +id = "recraftv3" +source_url = "https://www.recraft.ai/docs/api-reference/pricing" +url = "https://www.recraft.ai/docs/api-reference/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.04, "source_url" = "https://www.recraft.ai/docs/api-reference/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/recraft/recraft-v3" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/recraft/v3/text-to-image" } +recraft = { "disposition" = "listed", "source_url" = "https://www.recraft.ai/docs/api-reference/pricing" } diff --git a/models/recraft-ai/recraft-v4.1/card.toml b/models/recraft-ai/recraft-v4.1/card.toml index b178215..312ff4c 100644 --- a/models/recraft-ai/recraft-v4.1/card.toml +++ b/models/recraft-ai/recraft-v4.1/card.toml @@ -1,3 +1,4 @@ +reference_provider = "recraft" id = "recraft/recraft-v4.1" section = "image.models" null_keys = ["styles", "sizes"] @@ -36,3 +37,49 @@ id = "fal-ai/recraft/v4.1/text-to-image" pricing = { type = "per_image_flat", usd = 0.035 } avg_cost_usd = 0.035 url = "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image" + +[[providers.fal.endpoints]] +id = "fal-ai/recraft/v4.1/text-to-image" +input = "text" +source_url = "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image/api" + +[providers.fal.endpoints.parameters] +"enable_safety_checker" = { "type" = "boolean" } +"image_size" = { "enum" = [ + "square_hd", + "square", + "portrait_4_3", + "portrait_16_9", + "landscape_4_3", + "landscape_16_9", +] } +"image_size.height" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"image_size.width" = { "maximum" = 14142, "type" = "integer", "minimum" = 1 } +"prompt" = { "min_length" = 1, "type" = "string", "max_length" = 10000 } + +[providers.recraft] +provider = "recraft" +id = "recraftv4_1" +source_url = "https://www.recraft.ai/docs/api-reference/pricing" +url = "https://www.recraft.ai/docs/api-reference/pricing" +pricing = { "type" = "per_image_flat", "usd" = 0.035, "source_url" = "https://www.recraft.ai/docs/api-reference/pricing" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/recraft/recraft-v4.1" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/recraft/v4.1/text-to-image" } +recraft = { "disposition" = "listed", "source_url" = "https://www.recraft.ai/docs/api-reference/pricing" } + +[providers.grida] +provider = "grida" +id = "recraft/recraft-v4.1" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.recraft.recraft-v4.1.text", "operation" = "image.recraft.recraft-v4.1.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.recraft.recraft-v4.1.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_1", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.035" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/tencent/hunyuan-3d/v3.1/pro/image-to-3d/card.toml b/models/tencent/hunyuan-3d/v3.1/pro/image-to-3d/card.toml index 189cc17..6321726 100644 --- a/models/tencent/hunyuan-3d/v3.1/pro/image-to-3d/card.toml +++ b/models/tencent/hunyuan-3d/v3.1/pro/image-to-3d/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tencent" id = "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d" section = "three_d.models" @@ -20,3 +21,57 @@ source_url = "https://cloud.tencent.com/document/product/1804/120694" type = "per_generation_base_plus_surcharges" base_usd = 0.375 surcharges_usd = { pbr = 0.15, multi_view = 0.15, custom_face_count = 0.15 } + +[[endpoints]] +id = "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d" +input = "image" +source_url = "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/image-to-3d/api" + +[endpoints.parameters] +"back_image_url" = { "type" = "string" } +"bottom_image_url" = { "type" = "string" } +"enable_pbr" = { "type" = "boolean" } +"face_count" = { "minimum" = 40000, "type" = "integer", "maximum" = 1500000 } +"generate_type" = { "enum" = ["Normal", "Geometry"], "type" = "string" } +"input_image_url" = { "type" = "string" } +"left_front_image_url" = { "type" = "string" } +"left_image_url" = { "type" = "string" } +"right_front_image_url" = { "type" = "string" } +"right_image_url" = { "type" = "string" } +"top_image_url" = { "type" = "string" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/image-to-3d" } +tencent = { "disposition" = "listed", "source_url" = "https://www.tencentcloud.com/document/api/1284/75540" } + +[providers.tencent] +provider = "tencent" +id = "SubmitHunyuanTo3DProJob" +source_url = "https://www.tencentcloud.com/document/api/1284/75540" +url = "https://www.tencentcloud.com/document/api/1284/75540" +endpoints = [ + { "id" = "SubmitHunyuanTo3DProJob", "source_url" = "https://www.tencentcloud.com/document/api/1284/75540", "parameters" = { "Model" = { "type" = "string", "enum" = [ + "3.1", + ] }, "Version" = { "type" = "string", "enum" = [ + "2023-09-01", + ] } }, "input" = "image" }, +] +qualifications = [ + { "source_url" = "https://www.tencentcloud.com/document/api/1284/75540", "notes" = "The native API supports version 3.1. Its regular USD price is not established by this API reference; no reseller price is substituted." }, +] + +[providers.grida] +provider = "grida" +id = "fal-ai/hunyuan-3d/v3.1/pro/image-to-3d" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image", "operation" = "three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.hunyuan-3d.v3.1.pro.image-to-3d.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.015" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tencent/hunyuan-3d/v3.1/pro/text-to-3d/card.toml b/models/tencent/hunyuan-3d/v3.1/pro/text-to-3d/card.toml index 158582e..a6022b0 100644 --- a/models/tencent/hunyuan-3d/v3.1/pro/text-to-3d/card.toml +++ b/models/tencent/hunyuan-3d/v3.1/pro/text-to-3d/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tencent" id = "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d" section = "three_d.models" @@ -20,3 +21,50 @@ source_url = "https://cloud.tencent.com/document/product/1804/120694" type = "per_generation_base_plus_surcharges" base_usd = 0.375 surcharges_usd = { pbr = 0.15, custom_face_count = 0.15 } + +[[endpoints]] +id = "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d" +input = "text" +source_url = "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/text-to-3d/api" + +[endpoints.parameters] +"enable_pbr" = { "type" = "boolean" } +"face_count" = { "minimum" = 40000, "type" = "integer", "maximum" = 1500000 } +"generate_type" = { "enum" = ["Normal", "Geometry"], "type" = "string" } +"prompt" = { "type" = "string", "max_length" = 1024 } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/fal-ai/hunyuan-3d/v3.1/pro/text-to-3d" } +tencent = { "disposition" = "listed", "source_url" = "https://www.tencentcloud.com/document/api/1284/75540" } + +[providers.tencent] +provider = "tencent" +id = "SubmitHunyuanTo3DProJob" +source_url = "https://www.tencentcloud.com/document/api/1284/75540" +url = "https://www.tencentcloud.com/document/api/1284/75540" +endpoints = [ + { "id" = "SubmitHunyuanTo3DProJob", "source_url" = "https://www.tencentcloud.com/document/api/1284/75540", "parameters" = { "Model" = { "type" = "string", "enum" = [ + "3.1", + ] }, "Version" = { "type" = "string", "enum" = [ + "2023-09-01", + ] } }, "input" = "text" }, +] +qualifications = [ + { "source_url" = "https://www.tencentcloud.com/document/api/1284/75540", "notes" = "The native API supports version 3.1. Its regular USD price is not established by this API reference; no reseller price is substituted." }, +] + +[providers.grida] +provider = "grida" +id = "fal-ai/hunyuan-3d/v3.1/pro/text-to-3d" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text", "operation" = "three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.fal-ai.hunyuan-3d.v3.1.pro.text-to-3d.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.015" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/h3.1/card.toml b/models/tripo/h3.1/card.toml index ad94553..d97d910 100644 --- a/models/tripo/h3.1/card.toml +++ b/models/tripo/h3.1/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" id = "tripo/h3.1" section = "three_d.model_generation.models" @@ -27,3 +28,127 @@ texture_credits = { standard = 10, detailed = 20, extreme = 30 } source_url = "https://developers.tripo3d.ai/en/pricing" base_credits = { text = 10, image = 20, multiview = 20 } detailed_geometry_credits = 20 + +[[endpoints]] +id = "/generation/text-to-model" +input = "text" +source_url = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/standard" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"compress" = { "type" = "string", "enum" = ["geometry"] } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "maximum" = 2000000 } +"generate_parts" = { "type" = "boolean" } +"geometry_quality" = { "type" = "string", "enum" = ["standard", "detailed"] } +"image_seed" = { "type" = "integer" } +"model" = { "type" = "string", "enum" = ["v3.1-20260211"] } +"model_seed" = { "type" = "integer" } +"negative_prompt" = { "type" = "string", "max_length" = 255 } +"pbr" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 1024 } +"quad" = { "type" = "boolean" } +"smart_low_poly" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/image-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-image-to-model/standard" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"compress" = { "type" = "string", "enum" = ["geometry"] } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "maximum" = 2000000 } +"generate_parts" = { "type" = "boolean" } +"geometry_quality" = { "type" = "string", "enum" = ["standard", "detailed"] } +"input" = { "type" = "string" } +"model" = { "type" = "string", "enum" = ["v3.1-20260211"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"quad" = { "type" = "boolean" } +"smart_low_poly" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/multiview-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/standard" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"compress" = { "type" = "string", "enum" = ["geometry"] } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "maximum" = 2000000 } +"generate_parts" = { "type" = "boolean" } +"geometry_quality" = { "type" = "string", "enum" = ["standard", "detailed"] } +"inputs" = { "type" = "array" } +"model" = { "type" = "string", "enum" = ["v3.1-20260211"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"quad" = { "type" = "boolean" } +"smart_low_poly" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[providers.fal] +provider = "fal" +id = "tripo3d/h3.1/text-to-3d" +source_url = "https://fal.ai/models/tripo3d/h3.1/text-to-3d" +url = "https://fal.ai/models/tripo3d/h3.1/text-to-3d" +pricing = { "type" = "per_generation_credits", "usd_per_credit" = 0.01, "base_credits" = { "text" = 10, "image" = 20, "multiview" = 20 }, "texture_credits" = { "standard" = 10, "detailed" = 20 }, "detailed_geometry_credits" = 20, "quad_credits" = 5, "source_url" = "https://fal.ai/models/tripo3d/h3.1/text-to-3d" } +endpoints = [ + { "id" = "tripo3d/h3.1/text-to-3d", "source_url" = "https://fal.ai/models/tripo3d/h3.1/text-to-3d/api", "input" = "text" }, + { "id" = "tripo3d/h3.1/image-to-3d", "source_url" = "https://fal.ai/models/tripo3d/h3.1/image-to-3d/api", "input" = "image" }, + { "id" = "tripo3d/h3.1/multiview-to-3d", "source_url" = "https://fal.ai/models/tripo3d/h3.1/multiview-to-3d/api", "input" = "image" }, +] + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/tripo3d/h3.1/text-to-3d" } +tripo = { "disposition" = "listed", "source_url" = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/standard" } + +[providers.grida] +provider = "grida" +id = "tripo/h3.1" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.h3.1.image", "operation" = "three-d.tripo.h3.1.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.h3.1.multiview", "operation" = "three-d.tripo.h3.1.multiview", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.multiview.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.h3.1.text", "operation" = "three-d.tripo.h3.1.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.h3.1.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/p1/card.toml b/models/tripo/p1/card.toml index 9fd8f81..8ccf586 100644 --- a/models/tripo/p1/card.toml +++ b/models/tripo/p1/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" id = "tripo/p1" section = "three_d.model_generation.models" @@ -25,3 +26,107 @@ usd_per_credit = 0.01 texture_credits = { standard = 10, detailed = 20, extreme = 30 } source_url = "https://developers.tripo3d.ai/en/pricing" base_credits = { text = 30, image = 40, multiview = 40 } + +[[endpoints]] +id = "/generation/text-to-model" +input = "text" +source_url = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 50, "maximum" = 20000 } +"image_seed" = { "type" = "integer" } +"model" = { "type" = "string", "enum" = ["P1-20260311"] } +"model_seed" = { "type" = "integer" } +"negative_prompt" = { "type" = "string", "max_length" = 255 } +"pbr" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 1024 } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/image-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-image-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 50, "maximum" = 20000 } +"input" = { "type" = "string" } +"model" = { "type" = "string", "enum" = ["P1-20260311"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/multiview-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 50, "maximum" = 20000 } +"inputs" = { "type" = "array" } +"model" = { "type" = "string", "enum" = ["P1-20260311"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[providers.fal] +provider = "fal" +id = "tripo3d/p1/text-to-3d" +source_url = "https://fal.ai/models/tripo3d/p1/text-to-3d" +url = "https://fal.ai/models/tripo3d/p1/text-to-3d" +pricing = { "type" = "per_generation_credits", "usd_per_credit" = 0.01, "base_credits" = 40, "texture_credits" = 10, "source_url" = "https://fal.ai/models/tripo3d/p1/text-to-3d" } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/tripo3d/p1/text-to-3d" } +tripo = { "disposition" = "listed", "source_url" = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" } + +[providers.grida] +provider = "grida" +id = "tripo/p1" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.p1.image", "operation" = "three-d.tripo.p1.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.p1.multiview", "operation" = "three-d.tripo.p1.multiview", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.multiview.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.p1.text", "operation" = "three-d.tripo.p1.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p1.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/p2/card.toml b/models/tripo/p2/card.toml index 88d2d2c..4b2ed19 100644 --- a/models/tripo/p2/card.toml +++ b/models/tripo/p2/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" id = "tripo/p2" section = "three_d.model_generation.models" @@ -25,3 +26,116 @@ usd_per_credit = 0.01 texture_credits = { standard = 10, detailed = 20, extreme = 30 } source_url = "https://developers.tripo3d.ai/en/pricing" base_credits = { text = 100, image = 100, multiview = 100 } + +[[endpoints]] +id = "/generation/text-to-model" +input = "text" +source_url = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 48, "maximum" = 50000 } +"image_seed" = { "type" = "integer" } +"model" = { "type" = "string", "enum" = ["P2-20260801"] } +"model_seed" = { "type" = "integer" } +"negative_prompt" = { "type" = "string", "max_length" = 255 } +"pbr" = { "type" = "boolean" } +"prompt" = { "type" = "string", "max_length" = 1024 } +"quad" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/image-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-image-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 48, "maximum" = 50000 } +"input" = { "type" = "string" } +"model" = { "type" = "string", "enum" = ["P2-20260801"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"quad" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[[endpoints]] +id = "/generation/multiview-to-model" +input = "image" +source_url = "https://developers.tripo3d.ai/en/docs/generation-multiview-to-model/p" + +[endpoints.parameters] +"auto_size" = { "type" = "boolean" } +"export_orientation" = { "type" = "string", "enum" = ["+x", "-x", "-y", "+y"] } +"export_uv" = { "type" = "boolean" } +"face_limit" = { "type" = "integer", "minimum" = 48, "maximum" = 50000 } +"inputs" = { "type" = "array" } +"model" = { "type" = "string", "enum" = ["P2-20260801"] } +"model_seed" = { "type" = "integer" } +"pbr" = { "type" = "boolean" } +"quad" = { "type" = "boolean" } +"texture" = { "type" = "boolean" } +"texture_quality" = { "type" = "string", "enum" = ["fast", "standard", "detailed", "extreme"] } +"texture_seed" = { "type" = "integer" } +"texture_version" = { "type" = "string", "enum" = [ + "v3.5-20260815", + "v3.0-20250812", + "v2.5-20250123", +] } + +[providers.fal] +provider = "fal" +id = "tripo3d/p2/text-to-3d" +url = "https://fal.ai/models/tripo3d/p2/text-to-3d" +source_url = "https://fal.ai/models/tripo3d/p2/text-to-3d/api" +qualifications = [ + { "source_url" = "https://fal.ai/models/tripo3d/p2/text-to-3d", "notes" = "The public endpoint documentation verifies P2 submission. No regular USD rate is published on the inspected endpoint page; direct-provider pricing is not substituted." }, +] +endpoints = [ + { "id" = "tripo3d/p2/text-to-3d", "source_url" = "https://fal.ai/models/tripo3d/p2/text-to-3d/api", "input" = "text" }, + { "id" = "tripo3d/p2/image-to-3d", "source_url" = "https://fal.ai/models/tripo3d/p2/image-to-3d/api", "input" = "image" }, +] + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/tripo3d/p2/text-to-3d/api" } +tripo = { "disposition" = "listed", "source_url" = "https://developers.tripo3d.ai/en/docs/generation-text-to-model/p" } + +[providers.grida] +provider = "grida" +id = "tripo/p2" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.p2.image", "operation" = "three-d.tripo.p2.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.p2.multiview", "operation" = "three-d.tripo.p2.multiview", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.multiview.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "three-d.tripo.p2.text", "operation" = "three-d.tripo.p2.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.p2.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/rig-check/operation.toml b/models/tripo/rig-check/operation.toml index 8ac2cff..b65e2d5 100644 --- a/models/tripo/rig-check/operation.toml +++ b/models/tripo/rig-check/operation.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" section = "three_d.rig_check.operation" feature = "rig-check" @@ -7,8 +8,44 @@ input = { formats = ["glb"], max_bytes = 150_000_000 } rig_types = ["biped", "quadruped", "hexapod", "octopod", "avian", "serpentine", "aquatic"] url = "https://developers.tripo3d.ai/en/docs/animations-rig-check" +label = "Tripo Rig Check" +vendor = "tripo" +null_keys = ["release.date"] + [pricing] type = "per_operation_credits" credits = 0 usd_per_credit = 0.01 source_url = "https://developers.tripo3d.ai/en/pricing" + +[release] +basis = "provider_endpoint" +source_url = "https://developers.tripo3d.ai/en/docs/animations-rig-check" + +[[endpoints]] +id = "/animations/rig-check" +input = "task" +source_url = "https://developers.tripo3d.ai/en/docs/animations-rig-check" + +[endpoints.parameters] +"input" = { "type" = "string" } + +[provider_coverage] +tripo = { disposition = "listed", source_url = "https://developers.tripo3d.ai/en/docs/animations-rig-check" } +openrouter = { disposition = "not_listed", source_url = "https://openrouter.ai/api/v1/models", reason = "No rig-check operation is listed in the inspected public model catalogue." } +vercel = { disposition = "not_listed", source_url = "https://ai-gateway.vercel.sh/v1/models", reason = "No rig-check operation is listed in the inspected public Gateway catalogue." } +fal = { disposition = "not_listed", source_url = "https://fal.ai/models", reason = "No matching Tripo rig-check operation is listed in the inspected public media catalogue." } + +[providers.grida] +provider = "grida" +id = "three-d.tripo.rig-check" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.rig-check", "operation" = "three-d.tripo.rig-check", "input" = "asset", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-check.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/rig_check_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/rig-v1.0/card.toml b/models/tripo/rig-v1.0/card.toml index 3f82313..e9737b4 100644 --- a/models/tripo/rig-v1.0/card.toml +++ b/models/tripo/rig-v1.0/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" id = "tripo/rig-v1.0" section = "three_d.rigging.models" null_keys = ["release.date"] @@ -23,3 +24,35 @@ source_url = "https://developers.tripo3d.ai/en/pricing" [release] basis = "provider_endpoint" source_url = "https://developers.tripo3d.ai/en/docs/animations-rig" + +[[endpoints]] +id = "/animations/rig" +input = "task" +source_url = "https://developers.tripo3d.ai/en/docs/animations-rig" + +[endpoints.parameters] +"input" = { "type" = "string" } +"model" = { "type" = "string", "enum" = ["v1.0-20240301"] } +"out_format" = { "type" = "string", "enum" = ["glb", "fbx"] } +"rig_type" = { "type" = "string", "enum" = ["biped"] } +"spec" = { "type" = "string", "enum" = ["tripo", "mixamo"] } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "not_listed", "source_url" = "https://fal.ai/models", "reason" = "No matching model/version is listed in the inspected public media catalogue." } +tripo = { "disposition" = "listed", "source_url" = "https://developers.tripo3d.ai/en/docs/animations-rig" } + +[providers.grida] +provider = "grida" +id = "tripo/rig-v1.0" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.rig-v1.0.mesh", "operation" = "three-d.tripo.rig-v1.0.mesh", "input" = "asset", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-v1.0.mesh.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/tripo/rig-v2.5/card.toml b/models/tripo/rig-v2.5/card.toml index e10e59d..cea1b23 100644 --- a/models/tripo/rig-v2.5/card.toml +++ b/models/tripo/rig-v2.5/card.toml @@ -1,3 +1,4 @@ +reference_provider = "tripo" id = "tripo/rig-v2.5" section = "three_d.rigging.models" null_keys = ["release.date"] @@ -23,3 +24,42 @@ source_url = "https://developers.tripo3d.ai/en/pricing" [release] basis = "provider_endpoint" source_url = "https://developers.tripo3d.ai/en/docs/animations-rig" + +[[endpoints]] +id = "/animations/rig" +input = "task" +source_url = "https://developers.tripo3d.ai/en/docs/animations-rig" + +[endpoints.parameters] +"input" = { "type" = "string" } +"model" = { "type" = "string", "enum" = ["v2.5-20260210"] } +"out_format" = { "type" = "string", "enum" = ["glb", "fbx"] } +"rig_type" = { "type" = "string", "enum" = [ + "quadruped", + "hexapod", + "octopod", + "avian", + "serpentine", + "aquatic", +] } +"spec" = { "type" = "string", "enum" = ["tripo", "mixamo"] } + +[provider_coverage] +openrouter = { "disposition" = "not_listed", "source_url" = "https://openrouter.ai/api/v1/models", "reason" = "No matching model/version is listed in the inspected public model catalogue." } +vercel = { "disposition" = "not_listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models", "reason" = "No matching model/version is listed in the inspected public Gateway model catalogue." } +fal = { "disposition" = "not_listed", "source_url" = "https://fal.ai/models", "reason" = "No matching model/version is listed in the inspected public media catalogue." } +tripo = { "disposition" = "listed", "source_url" = "https://developers.tripo3d.ai/en/docs/animations-rig" } + +[providers.grida] +provider = "grida" +id = "tripo/rig-v2.5" +url = "https://gateway.grida.ai/v1/endpoints" +endpoints = [ + { "id" = "three-d.tripo.rig-v2.5.mesh", "operation" = "three-d.tripo.rig-v2.5.mesh", "input" = "asset", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/three-d.tripo.rig-v2.5.mesh.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/glb_result", "interface" = "endpoints", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/endpoints", "currency" = "USD", "components" = [ + { "id" = "provider_credits", "meter" = "provider_credits", "unit" = "provider_credit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/endpoints" diff --git a/models/xai/grok-imagine-image-2.0/card.toml b/models/xai/grok-imagine-image-2.0/card.toml index 0b465af..5a55bcd 100644 --- a/models/xai/grok-imagine-image-2.0/card.toml +++ b/models/xai/grok-imagine-image-2.0/card.toml @@ -1,3 +1,4 @@ +reference_provider = "xai" id = "xai/grok-imagine-image-2.0" section = "image.models" null_keys = ["styles", "sizes"] @@ -68,3 +69,91 @@ type = "per_image_tiered" "medium/1024x1024" = 0.06 "low/2048x2048" = 0.06 "medium/2048x2048" = 0.08 + +[[providers.fal.endpoints]] +id = "xai/grok-imagine-image/v2.0/edit" +input = "image" +source_url = "https://fal.ai/models/xai/grok-imagine-image/v2.0/edit/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "auto", + "2:1", + "20:9", + "19.5:9", + "16:9", + "4:3", + "3:2", + "1:1", + "2:3", + "3:4", + "9:16", + "9:19.5", + "9:20", + "1:2", +] } +"enable_safety_checker" = { "type" = "boolean" } +"image_urls" = { "type" = "array", "max_items" = 5 } +"num_images" = { "maximum" = 4, "minimum" = 1, "type" = "integer" } +"output_format" = { "type" = "string", "enum" = ["jpeg", "png", "webp"] } +"prompt" = { "max_length" = 8000, "type" = "string" } +"quality" = { "type" = "string", "enum" = ["low", "medium"] } +"resolution" = { "type" = "string", "enum" = ["1k", "2k"] } + +[[providers.fal.endpoints]] +id = "xai/grok-imagine-image/v2.0/text-to-image" +input = "text" +source_url = "https://fal.ai/models/xai/grok-imagine-image/v2.0/text-to-image/api" + +[providers.fal.endpoints.parameters] +"aspect_ratio" = { "type" = "string", "enum" = [ + "2:1", + "20:9", + "19.5:9", + "16:9", + "4:3", + "3:2", + "1:1", + "2:3", + "3:4", + "9:16", + "9:19.5", + "9:20", + "1:2", +] } +"enable_safety_checker" = { "type" = "boolean" } +"num_images" = { "maximum" = 4, "minimum" = 1, "type" = "integer" } +"output_format" = { "type" = "string", "enum" = ["jpeg", "png", "webp"] } +"prompt" = { "max_length" = 8000, "type" = "string" } +"quality" = { "type" = "string", "enum" = ["low", "medium"] } +"resolution" = { "type" = "string", "enum" = ["1k", "2k"] } + +[providers.xai] +provider = "xai" +id = "grok-imagine-image-2.0" +source_url = "https://docs.x.ai/developers/models/grok-imagine-image-2.0" +url = "https://docs.x.ai/developers/models/grok-imagine-image-2.0" +pricing = { "type" = "per_image_tiered", "tiers" = { "low/1k" = 0.04, "low/1.5k" = 0.05, "low/2k" = 0.06, "medium/1k" = 0.06, "medium/1.5k" = 0.07, "medium/2k" = 0.08 }, "input_image_usd" = 0.01, "source_url" = "https://docs.x.ai/developers/models/grok-imagine-image-2.0" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/x-ai/grok-imagine-image-2.0" } +vercel = { "disposition" = "listed", "source_url" = "https://ai-gateway.vercel.sh/v1/models" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/xai/grok-imagine-image/v2.0/text-to-image" } +xai = { "disposition" = "listed", "source_url" = "https://docs.x.ai/developers/models/grok-imagine-image-2.0" } + +[providers.grida] +provider = "grida" +id = "xai/grok-imagine-image-2.0" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "image.xai.grok-imagine-image-2.0.references", "operation" = "image.xai.grok-imagine-image-2.0.references", "input" = "multi_image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.xai.grok-imagine-image-2.0.references.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.edits", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, + { "id" = "image.xai.grok-imagine-image-2.0.text", "operation" = "image.xai.grok-imagine-image-2.0.text", "input" = "text", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/image.xai.grok-imagine-image-2.0.text.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_4", "interface" = "images.generations", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/models/xai/grok-imagine-video-1.5/card.toml b/models/xai/grok-imagine-video-1.5/card.toml index 529d897..ce57928 100644 --- a/models/xai/grok-imagine-video-1.5/card.toml +++ b/models/xai/grok-imagine-video-1.5/card.toml @@ -1,3 +1,4 @@ +reference_provider = "xai" id = "xai/grok-imagine-video-1.5" section = "video.models" @@ -47,3 +48,80 @@ usd_per_input_image = 0.01 480p = { audio = 0.08 } 720p = { audio = 0.14 } 1080p = { audio = 0.25 } + +[[providers.fal.endpoints]] +id = "xai/grok-imagine-video/v1.5/image-to-video" +input = "image" +source_url = "https://fal.ai/models/xai/grok-imagine-video/v1.5/image-to-video/api" + +[providers.fal.endpoints.parameters] +"duration" = { "minimum" = 1, "maximum" = 15, "type" = "integer" } +"enable_safety_checker" = { "type" = "boolean" } +"image_url" = { "type" = "string" } +"prompt" = { "max_length" = 4096, "type" = "string" } +"resolution" = { "type" = "string", "enum" = ["480p", "720p", "1080p"] } + +[providers.xai] +provider = "xai" +id = "grok-imagine-video-1.5" +source_url = "https://docs.x.ai/developers/models/grok-imagine-video-1.5" +url = "https://docs.x.ai/developers/models/grok-imagine-video-1.5" +pricing = { "type" = "per_second", "usd_per_second" = { "480p" = 0.08, "720p" = 0.14, "1080p" = 0.25 }, "input_image_usd" = 0.01, "source_url" = "https://docs.x.ai/developers/models/grok-imagine-video-1.5" } + +[provider_coverage] +openrouter = { "disposition" = "listed", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +vercel = { "disposition" = "listed", "source_url" = "https://vercel.com/ai-gateway/models/grok-imagine-video-1.5" } +fal = { "disposition" = "listed", "source_url" = "https://fal.ai/models/xai/grok-imagine-video/v1.5/image-to-video" } +xai = { "disposition" = "listed", "source_url" = "https://docs.x.ai/developers/models/grok-imagine-video-1.5" } + +[providers.openrouter] +provider = "openrouter" +id = "x-ai/grok-imagine-video-1.5" +source_url = "https://openrouter.ai/api/v1/videos/models" +url = "https://openrouter.ai/api/v1/videos/models" +pricing = { "type" = "provider_skus", "skus" = { "cents_per_image_input" = "1", "cents_per_video_output_second_480p" = "8", "cents_per_video_output_second_720p" = "14", "cents_per_video_output_second_1080p" = "25" }, "source_unit_notes" = "duration_seconds: USD/second; video_tokens: USD/token; cents_per: cents per named unit", "source_url" = "https://openrouter.ai/api/v1/videos/models" } +endpoints = [ + { "id" = "x-ai/grok-imagine-video-1.5", "source_url" = "https://openrouter.ai/api/v1/videos/models", "parameters" = { "resolution" = { "enum" = [ + "480p", + "720p", + "1080p", + ] }, "duration" = { "type" = "integer", "enum" = [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + ] }, "aspect_ratio" = { "type" = "string", "enum" = [ + "16:9", + "9:16", + "1:1", + "4:3", + "3:4", + "3:2", + "2:3", + ] } }, "input" = "text" }, +] + +[providers.grida] +provider = "grida" +id = "xai/grok-imagine-video-1.5" +url = "https://gateway.grida.ai/v1/models" +endpoints = [ + { "id" = "video.xai.grok-imagine-video-1.5.image", "operation" = "video.xai.grok-imagine-video-1.5.image", "input" = "image", "source_url" = "https://gateway.grida.ai/schemas/operations.json", "request_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/video.xai.grok-imagine-video-1.5.image.input", "result_schema_url" = "https://gateway.grida.ai/schemas/operations.json#/$defs/single_video_result", "interface" = "videos", "published_pricing" = { "source_url" = "https://gateway.grida.ai/v1/models", "currency" = "USD", "components" = [ + { "id" = "fal_output_units", "meter" = "fal_output_units", "unit" = "provider_unit", "per_quantity" = "1", "when" = {}, "quantity_rounding" = { "mode" = "none" }, "usd_per_unit" = "0.01" }, + ] } }, +] + +[provider_coverage.grida] +disposition = "listed" +source_url = "https://gateway.grida.ai/v1/models" diff --git a/scripts/check.py b/scripts/check.py index 532f02d..11f5057 100644 --- a/scripts/check.py +++ b/scripts/check.py @@ -420,6 +420,9 @@ def invariant_errors(facts: dict[str, Any]) -> Iterator[str]: if card.get("id") != key: yield f"{where}: id {card.get('id')!r} does not match its table key" + if section == "text.catalog" and not card.get("vendor"): + yield f"{where}: text card requires a vendor lab" + release = card.get("release") if isinstance(release, dict): date = release.get("date") diff --git a/tests/test_check.py b/tests/test_check.py index 1bc6971..d684ae8 100644 --- a/tests/test_check.py +++ b/tests/test_check.py @@ -341,6 +341,10 @@ def test_existing_binding_without_endpoints_remains_valid(): assert check.check(MODELS_JSON, SCHEMA) == [] +def test_text_card_requires_vendor_lab(): + def mutate(facts): + first("text.catalog", facts).pop("vendor", None) + assert any("requires a vendor lab" in e for e in mutated(mutate)) # Additive published calculators, serving facts, and endpoint parameters. SOURCE = "https://provider.example/models/example/api"