diff --git a/.agents/skills/catalogue/SKILL.md b/.agents/skills/catalogue/SKILL.md index c9e9729..d5049ba 100644 --- a/.agents/skills/catalogue/SKILL.md +++ b/.agents/skills/catalogue/SKILL.md @@ -143,6 +143,32 @@ pricing shapes in use and their rules are in [`pricing.md`](./pricing.md). 5. **Record qualifications** that do not fit the JSON (regular-price evidence, long-context bands, ambiguous units) in `catalogue/PROVENANCE.md`, with source URLs. +## Reference pattern: text and image additions + +The GPT-6 Sol, GPT-6 Luna, GPT-6.1 Sol and Gemini Nano Banana 2.1 cards demonstrate +a data-only addition across modalities ([reference PR #13](https://github.com/gridaco/models/pull/13)). Use their structure, not their values, as +the starting point for another model: + +- Read the exact native model contract before copying a predecessor. GPT tool + support varies by API and reasoning effort; Nano Banana 2.1 has different + resolutions and billing meters from Nano Banana 2. +- Keep each provider's prices, thresholds, limits and parameter differences. + A token-priced image example is not a fixed image price. A supported vision + input does not establish a tokenization formula. +- Preserve unknown facts as sourced qualifications. Do not infer another + model's image-token multiplier or another provider's regular rates. +- Add only verified service bindings. A consumer's planned launch is not public + availability; add its binding after its published discovery and contracts + confirm the offering. +- Regenerate and validate the catalogue, run `uv run pytest` and the pinned + formatter, and review the complete diff. Submit the cards, generated output + and provenance together. After merge, verify the automatic release contains + those cards. Publishing this catalogue does not deploy a consuming service. + +Free validation verifies the catalogue contract, not hosted inference behavior. +Record behavioral uncertainties for a separately approved, bounded paid test; +do not make catalogue checks consume provider credits. + ## After any update - [ ] Every new or changed fact has a first-party source, cited in the PR description diff --git a/catalogue/PROVENANCE.md b/catalogue/PROVENANCE.md index 2e76ab4..7c79486 100644 --- a/catalogue/PROVENANCE.md +++ b/catalogue/PROVENANCE.md @@ -1000,3 +1000,56 @@ 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. + +## GPT-6 Sol, Luna and GPT-6.1 Sol (2026-10-13) + +OpenAI's [Sol and Luna announcement](https://openai.com/index/introducing-gpt-6-sol-and-luna/) +and [DevDay announcement](https://openai.com/index/devday-2026-recap/) establish +their September 22 and September 29 releases. The native model pages for +[Sol](https://developers.openai.com/api/docs/models/gpt-6-sol), +[Luna](https://developers.openai.com/api/docs/models/gpt-6-luna) and +[6.1 Sol](https://developers.openai.com/api/docs/models/gpt-6.1-sol) establish +standard regular prices, cache meters and reasoning/API differences. The new +prices are regular rates, not the preceding generation's promotion. + +All three support tools in Responses. Native Chat Completions supports tools +only with explicit `none` reasoning for Sol and Luna, and does not support tools +for 6.1 Sol. A model-level `tools: true` is therefore not a promise about every +API interface. Native endpoint records describe Responses; qualifications retain +the Chat Completions restrictions. + +[Vercel discovery](https://ai-gateway.vercel.sh/v1/models) preserves the native +long-context boundary of 272001 input tokens, while +[OpenRouter discovery](https://openrouter.ai/api/v1/models) reports its override +at 272000. Provider bindings preserve that difference. Cache writes and reads +are separate meters; 6.1 Sol's cached-input rate is half Sol's. + +OpenAI's [vision guide](https://developers.openai.com/api/docs/guides/images-vision) +confirms image formats but does not name these three models in its multiplier +and detail-sizing tables. Their image-input capability is recorded, but no +image-tokenization formula is copied from Astra or GPT-5.6. + +## Gemini Nano Banana 2.1 (2026-10-13) + +The [native model specification](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1) +records October 6 availability, 14 reference images, 1K/2K/4K outputs and the +image-token table. Unlike Nano Banana 2, 512px output is not offered. +[Google pricing](https://ai.google.dev/gemini-api/docs/pricing) separates input, +text/thinking output, image output and search grounding. + +[fal's editing page](https://fal.ai/models/google/nano-banana-2.1/edit) publishes +token rates for both generation and editing. Its small-prompt image examples are +not flat charges: prompt and input tokens repeat for each generated image, +thinking adds text-output tokens, and search results add input tokens. The +[generation schema](https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1) +and [editing schema](https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1/edit) +retain exact controls. fal lists `seed`, while native Google Cloud declares it +unsupported; no deterministic behavior or parameter portability is inferred. + +[Vercel discovery](https://ai-gateway.vercel.sh/v1/models) lists resolution-based +output-image price examples and text-token rates. No image-token rate is inferred +from Google's price. [OpenRouter discovery](https://openrouter.ai/api/v1/models) +publishes separate image-output token pricing and different context/output +limits, which remain provider-specific. None of the four new cards claims Grida +availability before the public service offers them. No paid inference was used +to establish these facts. diff --git a/catalogue/models.json b/catalogue/models.json index 7a7a32d..a8281d9 100644 --- a/catalogue/models.json +++ b/catalogue/models.json @@ -4922,6 +4922,1007 @@ "reason": "The provider coverage policy includes fal for media models only; no text API compatibility is claimed." } } + }, + "openai/gpt-6-luna": { + "id": "openai/gpt-6-luna", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-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-09-22", + "basis": "model", + "source_url": "https://openai.com/index/introducing-gpt-6-sol-and-luna/" + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "long_context": { + "input_tokens_above": 272000, + "input_multiplier": 2, + "output_multiplier": 1.5 + } + }, + "providers": { + "openai": { + "provider": "openai", + "id": "gpt-6-luna", + "url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "qualifications": [ + { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "notes": "Responses supports function calling. Chat Completions supports function calling only when reasoning_effort is explicitly none; the default reasoning effort is medium." + }, + { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "notes": "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_read": "0.00000001", + "input_cache_write": "0.000000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000001" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000025" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "gpt-6-luna", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "interface": "responses", + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "parameters": { + "reasoning.effort": { + "type": "string", + "enum": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + } + } + ] + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-6-luna", + "url": "https://openrouter.ai/openai/gpt-6-luna", + "source_url": "https://openrouter.ai/openai/gpt-6-luna", + "qualifications": [ + { + "source_url": "https://openrouter.ai/api/v1/models", + "notes": "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-6-luna", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_read": "0.00000001", + "input_cache_write": "0.000000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000001" + }, + { + "meter": "input", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.00000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.000000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272000, + "usd_per_token": "0.00000025" + } + ] + }, + "capabilities": { + "source_url": "https://openrouter.ai/openai/gpt-6-luna", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://openrouter.ai/openai/gpt-6-luna", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6-luna", + "input": "text", + "source_url": "https://openrouter.ai/openai/gpt-6-luna" + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "openai/gpt-6-luna", + "url": "https://vercel.com/ai-gateway/models/gpt-6-luna", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna", + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.0000001", + "output": "0.0000005", + "input_cache_read": "0.00000001", + "input_cache_write": "0.000000125", + "tiers": [ + { + "meter": "input", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000001" + }, + { + "meter": "input", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "meter": "output", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000005" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000075" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.00000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000002" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.000000125" + }, + { + "meter": "input_cache_write", + "minimum_input_tokens": 272001, + "usd_per_token": "0.00000025" + } + ] + }, + "capabilities": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6-luna", + "input": "text", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna" + } + ] + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-luna" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-6-luna" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-luna" + }, + "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-sol": { + "id": "openai/gpt-6-sol", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-6 Sol", + "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-22", + "basis": "model", + "source_url": "https://openai.com/index/introducing-gpt-6-sol-and-luna/" + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "long_context": { + "input_tokens_above": 272000, + "input_multiplier": 2, + "output_multiplier": 1.5 + } + }, + "providers": { + "openai": { + "provider": "openai", + "id": "gpt-6-sol", + "url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "qualifications": [ + { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "notes": "Responses supports function calling. Chat Completions supports function calling only when reasoning_effort is explicitly none; the default reasoning effort is medium." + }, + { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "notes": "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000015" + }, + { + "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.000005" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "gpt-6-sol", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "interface": "responses", + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "parameters": { + "reasoning.effort": { + "type": "string", + "enum": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + } + } + ] + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-6-sol", + "url": "https://openrouter.ai/openai/gpt-6-sol", + "source_url": "https://openrouter.ai/openai/gpt-6-sol", + "qualifications": [ + { + "source_url": "https://openrouter.ai/api/v1/models", + "notes": "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-6-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000015" + }, + { + "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/openai/gpt-6-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://openrouter.ai/openai/gpt-6-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6-sol", + "input": "text", + "source_url": "https://openrouter.ai/openai/gpt-6-sol" + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "openai/gpt-6-sol", + "url": "https://vercel.com/ai-gateway/models/gpt-6-sol", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol", + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000015" + }, + { + "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.000005" + } + ] + }, + "capabilities": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6-sol", + "input": "text", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol" + } + ] + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6-sol" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-6-sol" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6-sol" + }, + "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.1-sol": { + "id": "openai/gpt-6.1-sol", + "vendor": "openai", + "reference_provider": "openai", + "label": "GPT-6.1 Sol", + "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-29", + "basis": "model", + "source_url": "https://openai.com/index/devday-2026-recap/" + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "long_context": { + "input_tokens_above": 272000, + "input_multiplier": 2, + "output_multiplier": 1.5 + } + }, + "providers": { + "openai": { + "provider": "openai", + "id": "gpt-6.1-sol", + "url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "qualifications": [ + { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "notes": "Responses supports function calling. Chat Completions does not support tool calling. Reasoning none and minimal are not supported." + }, + { + "source_url": "https://developers.openai.com/api/docs/guides/images-vision", + "notes": "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." + } + ], + "token_pricing": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000015" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "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.000005" + } + ] + }, + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "gpt-6.1-sol", + "input": "text", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "interface": "responses", + "capabilities": { + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "parameters": { + "reasoning.effort": { + "type": "string", + "enum": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + } + } + ] + }, + "openrouter": { + "provider": "openrouter", + "id": "openai/gpt-6.1-sol", + "url": "https://openrouter.ai/openai/gpt-6.1-sol", + "source_url": "https://openrouter.ai/openai/gpt-6.1-sol", + "qualifications": [ + { + "source_url": "https://openrouter.ai/api/v1/models", + "notes": "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." + } + ], + "token_pricing": { + "source_url": "https://openrouter.ai/openai/gpt-6.1-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272000, + "usd_per_token": "0.000015" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272000, + "usd_per_token": "0.0000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272000, + "usd_per_token": "0.0000002" + }, + { + "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/openai/gpt-6.1-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://openrouter.ai/openai/gpt-6.1-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6.1-sol", + "input": "text", + "source_url": "https://openrouter.ai/openai/gpt-6.1-sol" + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "openai/gpt-6.1-sol", + "url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol", + "token_pricing": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol", + "unit": "usd_per_token", + "scope": "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration.", + "input": "0.000002", + "output": "0.00001", + "input_cache_read": "0.0000001", + "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.00001" + }, + { + "meter": "output", + "minimum_input_tokens": 272001, + "usd_per_token": "0.000015" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 0, + "maximum_input_tokens": 272001, + "usd_per_token": "0.0000001" + }, + { + "meter": "input_cache_read", + "minimum_input_tokens": 272001, + "usd_per_token": "0.0000002" + }, + { + "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.000005" + } + ] + }, + "capabilities": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol", + "image_input": true, + "tools": true, + "reasoning": true, + "structured_output": true, + "streaming": true + }, + "limits": { + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol", + "context_tokens": 1050000, + "max_output_tokens": 128000 + }, + "endpoints": [ + { + "id": "openai/gpt-6.1-sol", + "input": "text", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol" + } + ] + } + }, + "provider_coverage": { + "openai": { + "disposition": "listed", + "source_url": "https://developers.openai.com/api/docs/models/gpt-6.1-sol" + }, + "openrouter": { + "disposition": "listed", + "source_url": "https://openrouter.ai/openai/gpt-6.1-sol" + }, + "vercel": { + "disposition": "listed", + "source_url": "https://vercel.com/ai-gateway/models/gpt-6.1-sol" + }, + "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": { @@ -5862,19 +6863,280 @@ "id": "bytedance/seedream/v5/lite/text-to-image", "pricing": { "type": "per_image_flat", - "usd": 0.035 + "usd": 0.035 + }, + "avg_cost_usd": 0.035, + "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.", + "vendor": "bytedance", + "speed_label": "medium", + "speed_max": "30s", + "pricing": { + "type": "per_image_flat", + "usd": 0.035 + }, + "avg_cost_usd": 0.035, + "release": { + "date": "2026-07-08", + "basis": "model", + "source_url": "https://seed.bytedance.com/en/blog/beyond-generation-it-understands-design-introducing-seedream-5-0-pro" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "bytedance/seedream-5.0-pro", + "pricing": { + "type": "per_image_flat", + "usd": 0.035 + }, + "avg_cost_usd": 0.035 + }, + "openrouter": { + "provider": "openrouter", + "id": "bytedance-seed/seedream-5-0-pro", + "pricing": { + "type": "per_image_flat", + "usd": 0.045 + }, + "avg_cost_usd": 0.045, + "url": "https://openrouter.ai/bytedance-seed/seedream-5-0-pro", + "references": { + "id": "bytedance-seed/seedream-5-0-pro", + "max": 14 + } + }, + "fal": { + "provider": "fal", + "id": "bytedance/seedream/v5/pro/text-to-image", + "pricing": { + "type": "per_image_flat", + "usd": 0.0675 }, - "avg_cost_usd": 0.035, - "url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image", + "avg_cost_usd": 0.0675, + "url": "https://fal.ai/models/bytedance/seedream/v5/pro/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", + "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", @@ -5883,9 +7145,8 @@ "portrait_16_9", "landscape_4_3", "landscape_16_9", - "auto_2K", - "auto_3K", - "auto_4K" + "auto_1K", + "auto_2K" ] }, "image_size.height": { @@ -5898,33 +7159,50 @@ "type": "integer", "minimum": 1 }, - "max_images": { - "maximum": 6, - "minimum": 1, - "type": "integer" + "image_urls": { + "type": "array", + "max_items": 10 }, "num_images": { "maximum": 6, - "minimum": 1, - "type": "integer" + "type": "integer", + "minimum": 1 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" }, "prompt": { "type": "string" } }, "image_constraints": { - "min_pixels": 3686400, - "max_pixels": 16777216 + "max_pixels": 4194304, + "min_pixels": 1048576, + "aspect_ratio": { + "min": 0.0625, + "max": 16 + } } }, { - "id": "fal-ai/bytedance/seedream/v5/lite/edit", - "input": "image", - "source_url": "https://fal.ai/models/fal-ai/bytedance/seedream/v5/lite/edit/api", + "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", @@ -5933,9 +7211,8 @@ "portrait_16_9", "landscape_4_3", "landscape_16_9", - "auto_2K", - "auto_3K", - "auto_4K" + "auto_1K", + "auto_2K" ] }, "image_size.height": { @@ -5948,53 +7225,63 @@ "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" + "type": "integer", + "minimum": 1 + }, + "output_format": { + "enum": [ + "jpeg", + "png" + ], + "type": "string" }, "prompt": { "type": "string" } }, "image_constraints": { - "min_pixels": 3686400, - "max_pixels": 16777216 + "max_pixels": 4194304, + "min_pixels": 1048576, + "aspect_ratio": { + "min": 0.0625, + "max": 16 + } } } ] }, "byteplus": { "provider": "byteplus", - "id": "seedream-5-0-lite-260128", + "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_flat", - "usd": 0.035, + "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-lite", + "id": "bytedance/seedream-5.0-pro", "url": "https://gateway.grida.ai/v1/models", "endpoints": [ { - "id": "image.bytedance.seedream-5.0-lite.references", - "operation": "image.bytedance.seedream-5.0-lite.references", + "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-lite.references.input", + "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": { @@ -6010,17 +7297,17 @@ "quantity_rounding": { "mode": "none" }, - "usd_per_unit": "0.035" + "usd_per_unit": "0.0675" } ] } }, { - "id": "image.bytedance.seedream-5.0-lite.text", - "operation": "image.bytedance.seedream-5.0-lite.text", + "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-lite.text.input", + "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": { @@ -6036,7 +7323,7 @@ "quantity_rounding": { "mode": "none" }, - "usd_per_unit": "0.035" + "usd_per_unit": "0.0675" } ] } @@ -6044,10 +7331,17 @@ ] } }, + "constraints": { + "min_pixels": 1048576, + "max_pixels": 4194304, + "aspect_ratio": { + "max": 16 + } + }, "provider_coverage": { "openrouter": { "disposition": "listed", - "source_url": "https://openrouter.ai/bytedance-seed/seedream-5-0-lite" + "source_url": "https://openrouter.ai/bytedance-seed/seedream-5-0-pro" }, "vercel": { "disposition": "listed", @@ -6055,7 +7349,7 @@ }, "fal": { "disposition": "listed", - "source_url": "https://fal.ai/models/bytedance/seedream/v5/lite/text-to-image" + "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" }, "byteplus": { "disposition": "listed", @@ -6069,219 +7363,244 @@ "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.", - "vendor": "bytedance", + "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", "pricing": { - "type": "per_image_flat", - "usd": 0.035 + "type": "per_token", + "input": 2, + "output": 12 }, - "avg_cost_usd": 0.035, + "avg_cost_usd": 0.015, "release": { - "date": "2026-07-08", + "date": "2025-11-20", "basis": "model", - "source_url": "https://seed.bytedance.com/en/blog/beyond-generation-it-understands-design-introducing-seedream-5-0-pro" + "source_url": "https://blog.google/innovation-and-ai/products/nano-banana-pro/" }, "providers": { "vercel": { "provider": "vercel", - "id": "bytedance/seedream-5.0-pro", + "id": "google/gemini-3-pro-image", "pricing": { - "type": "per_image_flat", - "usd": 0.035 + "type": "per_token", + "input": 2, + "output": 12 }, - "avg_cost_usd": 0.035 + "avg_cost_usd": 0.015 }, "openrouter": { "provider": "openrouter", - "id": "bytedance-seed/seedream-5-0-pro", + "id": "google/gemini-3-pro-image-preview", "pricing": { - "type": "per_image_flat", - "usd": 0.045 + "type": "per_token", + "input": 2, + "output": 12 }, - "avg_cost_usd": 0.045, - "url": "https://openrouter.ai/bytedance-seed/seedream-5-0-pro", + "avg_cost_usd": 0.015, + "url": "https://openrouter.ai/google/gemini-3-pro-image-preview", "references": { - "id": "bytedance-seed/seedream-5-0-pro", + "id": "google/gemini-3-pro-image-preview", "max": 14 } }, "fal": { "provider": "fal", - "id": "bytedance/seedream/v5/pro/text-to-image", + "id": "fal-ai/nano-banana-pro", "pricing": { "type": "per_image_flat", - "usd": 0.0675 + "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.0675, - "url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image", + "avg_cost_usd": 0.15, + "url": "https://fal.ai/models/fal-ai/nano-banana-pro", "endpoints": [ { - "id": "bytedance/seedream/v5/pro/edit", - "input": "image", - "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/edit/api", + "id": "fal-ai/nano-banana-pro", + "input": "text", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/api", "parameters": { - "enable_safety_checker": { - "type": "boolean" - }, - "enhance_prompt_mode": { - "enum": [ - "standard", - "fast" - ], - "type": "string" - }, - "image_size": { + "aspect_ratio": { + "type": "string", "enum": [ - "square_hd", - "square", - "portrait_4_3", - "portrait_16_9", - "landscape_4_3", - "landscape_16_9", - "auto_1K", - "auto_2K" + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16" ] }, - "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 + "enable_web_search": { + "type": "boolean" }, - "num_images": { - "maximum": 6, - "type": "integer", - "minimum": 1 + "limit_generations": { + "type": "boolean" + }, + "num_images": { + "minimum": 1, + "maximum": 4, + "type": "integer" }, "output_format": { + "type": "string", "enum": [ "jpeg", - "png" - ], - "type": "string" + "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" } - }, - "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", + "id": "fal-ai/nano-banana-pro/edit", + "input": "image", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/edit/api", "parameters": { - "enable_safety_checker": { - "type": "boolean" - }, - "enhance_prompt_mode": { - "enum": [ - "standard", - "fast" - ], - "type": "string" - }, - "image_size": { + "aspect_ratio": { + "type": "string", "enum": [ - "square_hd", - "square", - "portrait_4_3", - "portrait_16_9", - "landscape_4_3", - "landscape_16_9", - "auto_1K", - "auto_2K" + "auto", + "21:9", + "16:9", + "3:2", + "4:3", + "5:4", + "1:1", + "4:5", + "3:4", + "2:3", + "9:16" ] }, - "image_size.height": { - "maximum": 14142, - "type": "integer", - "minimum": 1 + "enable_web_search": { + "type": "boolean" }, - "image_size.width": { - "maximum": 14142, - "type": "integer", - "minimum": 1 + "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": { - "maximum": 6, - "type": "integer", - "minimum": 1 + "minimum": 1, + "maximum": 4, + "type": "integer" }, "output_format": { + "type": "string", "enum": [ "jpeg", - "png" - ], - "type": "string" + "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" } - }, - "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", + "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_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" + "type": "per_token", + "input": 2, + "text_output": 12, + "output": 120, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" } }, "grida": { "provider": "grida", - "id": "bytedance/seedream-5.0-pro", + "id": "google/gemini-3-pro-image", "url": "https://gateway.grida.ai/v1/models", "endpoints": [ { - "id": "image.bytedance.seedream-5.0-pro.references", - "operation": "image.bytedance.seedream-5.0-pro.references", + "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.bytedance.seedream-5.0-pro.references.input", - "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "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", @@ -6296,18 +7615,18 @@ "quantity_rounding": { "mode": "none" }, - "usd_per_unit": "0.0675" + "usd_per_unit": "0.15" } ] } }, { - "id": "image.bytedance.seedream-5.0-pro.text", - "operation": "image.bytedance.seedream-5.0-pro.text", + "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.bytedance.seedream-5.0-pro.text.input", - "result_schema_url": "https://gateway.grida.ai/schemas/operations.json#/$defs/ImageResponse_6", + "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", @@ -6322,7 +7641,7 @@ "quantity_rounding": { "mode": "none" }, - "usd_per_unit": "0.0675" + "usd_per_unit": "0.15" } ] } @@ -6330,17 +7649,10 @@ ] } }, - "constraints": { - "min_pixels": 1048576, - "max_pixels": 4194304, - "aspect_ratio": { - "max": 16 - } - }, "provider_coverage": { "openrouter": { "disposition": "listed", - "source_url": "https://openrouter.ai/bytedance-seed/seedream-5-0-pro" + "source_url": "https://openrouter.ai/google/gemini-3-pro-image-preview" }, "vercel": { "disposition": "listed", @@ -6348,11 +7660,11 @@ }, "fal": { "disposition": "listed", - "source_url": "https://fal.ai/models/bytedance/seedream/v5/pro/text-to-image" + "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro" }, - "byteplus": { + "google": { "disposition": "listed", - "source_url": "https://docs.byteplus.com/en/docs/ModelArk/model-pricing" + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" }, "grida": { "disposition": "listed", @@ -6360,75 +7672,81 @@ } }, "styles": null, - "sizes": null + "sizes": null, + "constraints": null }, - "google/gemini-3-pro-image": { + "google/gemini-3.1-flash-image-preview": { "reference_provider": "google", - "id": "google/gemini-3-pro-image", - "label": "Gemini 3 Pro Image", - "short_description": "High-quality multimodal model with native image generation", + "id": "google/gemini-3.1-flash-image-preview", + "label": "Gemini 3.1 Flash Image", + "short_description": "Fast, efficient multimodal model with native image generation", "vendor": "google", - "speed_label": "medium", - "speed_max": "30s", + "speed_label": "fast", + "speed_max": "15s", + "constraints": { + "max_edge": 1536 + }, "pricing": { "type": "per_token", - "input": 2, - "output": 12 + "input": 0.5, + "output": 3 }, - "avg_cost_usd": 0.015, + "avg_cost_usd": 0.004, "release": { - "date": "2025-11-20", + "date": "2026-02-26", "basis": "model", - "source_url": "https://blog.google/innovation-and-ai/products/nano-banana-pro/" + "source_url": "https://ai.google.dev/gemini-api/docs/changelog" }, "providers": { "vercel": { "provider": "vercel", - "id": "google/gemini-3-pro-image", + "id": "google/gemini-3.1-flash-image", "pricing": { "type": "per_token", - "input": 2, - "output": 12 + "input": 0.5, + "output": 3 }, - "avg_cost_usd": 0.015 + "avg_cost_usd": 0.004 }, "openrouter": { "provider": "openrouter", - "id": "google/gemini-3-pro-image-preview", + "id": "google/gemini-3.1-flash-image", "pricing": { "type": "per_token", - "input": 2, - "output": 12 + "input": 0.5, + "output": 3 }, - "avg_cost_usd": 0.015, - "url": "https://openrouter.ai/google/gemini-3-pro-image-preview", + "avg_cost_usd": 0.004, + "url": "https://openrouter.ai/google/gemini-3.1-flash-image", "references": { - "id": "google/gemini-3-pro-image-preview", + "id": "google/gemini-3.1-flash-image", "max": 14 } }, "fal": { "provider": "fal", - "id": "fal-ai/nano-banana-pro", + "id": "fal-ai/nano-banana-2", "pricing": { "type": "per_image_flat", - "usd": 0.15, + "usd": 0.08, "resolution_multipliers": { + "0.5K": 0.75, + "2K": 1.5, "4K": 2 }, "web_search_usd": 0.015, - "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro" + "high_thinking_usd": 0.002, + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2" }, - "avg_cost_usd": 0.15, - "url": "https://fal.ai/models/fal-ai/nano-banana-pro", + "avg_cost_usd": 0.08, + "url": "https://fal.ai/models/fal-ai/nano-banana-2", "endpoints": [ { - "id": "fal-ai/nano-banana-pro", + "id": "fal-ai/nano-banana-2", "input": "text", - "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/api", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/api", "parameters": { "aspect_ratio": { - "type": "string", "enum": [ "auto", "21:9", @@ -6440,8 +7758,13 @@ "4:5", "3:4", "2:3", - "9:16" - ] + "9:16", + "4:1", + "1:4", + "8:1", + "1:8" + ], + "type": "string" }, "enable_web_search": { "type": "boolean" @@ -6455,28 +7778,28 @@ "type": "integer" }, "output_format": { - "type": "string", "enum": [ "jpeg", "png", "webp" - ] + ], + "type": "string" }, "prompt": { - "max_length": 50000, + "min_length": 3, "type": "string", - "min_length": 3 + "max_length": 50000 }, "resolution": { - "type": "string", "enum": [ + "0.5K", "1K", "2K", "4K" - ] + ], + "type": "string" }, "safety_tolerance": { - "type": "string", "enum": [ "1", "2", @@ -6484,24 +7807,24 @@ "4", "5", "6" - ] + ], + "type": "string" }, "seed": { "type": "integer" }, "system_prompt": { - "max_length": 50000, - "type": "string" + "type": "string", + "max_length": 50000 } } }, { - "id": "fal-ai/nano-banana-pro/edit", + "id": "fal-ai/nano-banana-2/edit", "input": "image", - "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/edit/api", + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/edit/api", "parameters": { "aspect_ratio": { - "type": "string", "enum": [ "auto", "21:9", @@ -6513,8 +7836,13 @@ "4:5", "3:4", "2:3", - "9:16" - ] + "9:16", + "4:1", + "1:4", + "8:1", + "1:8" + ], + "type": "string" }, "enable_web_search": { "type": "boolean" @@ -6522,7 +7850,7 @@ "image_urls": { "type": "array", "max_items": 14, - "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro/edit" + "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/edit" }, "limit_generations": { "type": "boolean" @@ -6533,28 +7861,28 @@ "type": "integer" }, "output_format": { - "type": "string", "enum": [ "jpeg", "png", "webp" - ] + ], + "type": "string" }, "prompt": { - "max_length": 50000, + "min_length": 3, "type": "string", - "min_length": 3 + "max_length": 50000 }, "resolution": { - "type": "string", "enum": [ + "0.5K", "1K", "2K", "4K" - ] + ], + "type": "string" }, "safety_tolerance": { - "type": "string", "enum": [ "1", "2", @@ -6562,14 +7890,15 @@ "4", "5", "6" - ] + ], + "type": "string" }, "seed": { "type": "integer" }, "system_prompt": { - "max_length": 50000, - "type": "string" + "type": "string", + "max_length": 50000 } } } @@ -6577,81 +7906,178 @@ }, "google": { "provider": "google", - "id": "gemini-3-pro-image", + "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": 2, - "text_output": 12, - "output": 120, + "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.", + "vendor": "google", + "speed_label": "fastest", + "speed_max": "10s", + "constraints": { + "max_edge": 1024 + }, + "pricing": { + "type": "per_token", + "input": 0.25, + "output": 1.5 + }, + "avg_cost_usd": 0.034, + "release": { + "date": "2026-06-30", + "basis": "model", + "source_url": "https://ai.google.dev/gemini-api/docs/changelog" + }, + "providers": { + "vercel": { + "provider": "vercel", + "id": "google/gemini-3.1-flash-lite-image", + "pricing": { + "type": "per_token", + "input": 0.25, + "output": 1.5 + }, + "avg_cost_usd": 0.034 + }, + "openrouter": { + "provider": "openrouter", + "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" + }, + "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" } - }, - "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" - } - ] - } - } - ] + }, + "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-pro-image-preview" + "source_url": "https://openrouter.ai/google/gemini-3.1-flash-lite-image" }, "vercel": { "disposition": "listed", @@ -6659,93 +8085,201 @@ }, "fal": { "disposition": "listed", - "source_url": "https://fal.ai/models/fal-ai/nano-banana-pro" + "source_url": "https://fal.ai/models/google/nano-banana-2-lite" }, "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, - "constraints": null + "sizes": 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", + "google/gemini-nano-banana-2.1": { + "id": "google/gemini-nano-banana-2.1", "vendor": "google", - "speed_label": "fast", - "speed_max": "15s", - "constraints": { - "max_edge": 1536 - }, - "pricing": { - "type": "per_token", - "input": 0.5, - "output": 3 - }, - "avg_cost_usd": 0.004, + "reference_provider": "google", + "label": "Gemini Nano Banana 2.1", + "short_description": "Image generation and conversational editing at 1K, 2K and 4K.", "release": { - "date": "2026-02-26", + "date": "2026-10-06", "basis": "model", - "source_url": "https://ai.google.dev/gemini-api/docs/changelog" + "source_url": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1" }, "providers": { - "vercel": { - "provider": "vercel", - "id": "google/gemini-3.1-flash-image", + "google": { + "provider": "google", + "id": "gemini-nano-banana-2.1", + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1", "pricing": { "type": "per_token", - "input": 0.5, - "output": 3 + "input": 1.5, + "image_input": 1.5, + "text_output": 7.5, + "output": 30, + "source_url": "https://ai.google.dev/gemini-api/docs/pricing" }, - "avg_cost_usd": 0.004 + "qualifications": [ + { + "source_url": "https://ai.google.dev/gemini-api/docs/pricing", + "notes": "Rates are USD per million tokens. Input covers text, images and video; text output includes thinking. Search grounding is separately priced at $14 per 1000 requests after the shared allowance; the allowance is not included in the token prices." + }, + { + "source_url": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1", + "notes": "Google documents 1120 tokens per input image and output image tokens of 1120 at 1K, 1680 at 2K and 3780 at 4K. These image counts exclude additional text, thinking, video and document tokens. Google Cloud does not support seed, temperature, topP, topK or logprobs for this model." + } + ], + "capabilities": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1", + "image_input": true, + "reasoning": true, + "tools": false, + "structured_output": false + }, + "limits": { + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1", + "context_tokens": 131072, + "max_output_tokens": 32768 + }, + "endpoints": [ + { + "id": "gemini-nano-banana-2.1", + "input": "text", + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" + } + ] }, "openrouter": { "provider": "openrouter", - "id": "google/gemini-3.1-flash-image", + "id": "google/gemini-nano-banana-2.1", + "url": "https://openrouter.ai/google/gemini-nano-banana-2.1", + "source_url": "https://openrouter.ai/google/gemini-nano-banana-2.1", "pricing": { "type": "per_token", - "input": 0.5, - "output": 3 + "input": 1.5, + "image_input": 1.5, + "text_output": 7.5, + "output": 30, + "source_url": "https://openrouter.ai/api/v1/models" }, - "avg_cost_usd": 0.004, - "url": "https://openrouter.ai/google/gemini-3.1-flash-image", - "references": { - "id": "google/gemini-3.1-flash-image", - "max": 14 - } + "qualifications": [ + { + "source_url": "https://openrouter.ai/api/v1/models", + "notes": "The provider publishes 65536 context tokens and 58982 maximum completion tokens. These provider-specific limits differ from the native API. Image output is $30 per million image tokens; text/thinking output is a separate $7.50 meter. Web search is separately priced at $0.014 per request." + } + ], + "capabilities": { + "source_url": "https://openrouter.ai/api/v1/models", + "image_input": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://openrouter.ai/api/v1/models", + "context_tokens": 65536, + "max_output_tokens": 58982 + }, + "endpoints": [ + { + "id": "google/gemini-nano-banana-2.1", + "input": "text", + "source_url": "https://openrouter.ai/google/gemini-nano-banana-2.1" + } + ] + }, + "vercel": { + "provider": "vercel", + "id": "google/gemini-nano-banana-2.1", + "url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1", + "source_url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1", + "pricing": { + "type": "per_token", + "input": 1.5, + "text_output": 7.5, + "cached_input": 0.15, + "source_url": "https://ai-gateway.vercel.sh/v1/models" + }, + "qualifications": [ + { + "source_url": "https://ai-gateway.vercel.sh/v1/models", + "notes": "Discovery publishes output-image price examples of $0.0336 at 1K, $0.0504 at 2K and $0.1134 at 4K, separately from text and thinking output tokens. No image-token rate is inferred from another provider. Search has a separate published $14 per 1000 rate. Provider parameter and structured-output support differs from the native model page." + } + ], + "capabilities": { + "source_url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1", + "image_input": true, + "reasoning": true, + "structured_output": true + }, + "limits": { + "source_url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1", + "context_tokens": 131072, + "max_output_tokens": 32768 + }, + "endpoints": [ + { + "id": "google/gemini-nano-banana-2.1", + "input": "text", + "source_url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" + } + ] }, "fal": { "provider": "fal", - "id": "fal-ai/nano-banana-2", + "id": "google/nano-banana-2.1", + "url": "https://fal.ai/nano-banana-2.1", + "source_url": "https://fal.ai/nano-banana-2.1", "pricing": { - "type": "per_image_flat", - "usd": 0.08, - "resolution_multipliers": { - "0.5K": 0.75, - "2K": 1.5, - "4K": 2 + "type": "per_token", + "input": 1.764, + "image_input": 1.764, + "text_output": 8.823, + "output": 35.294, + "source_url": "https://fal.ai/models/google/nano-banana-2.1/edit" + }, + "qualifications": [ + { + "source_url": "https://fal.ai/models/google/nano-banana-2.1/edit", + "notes": "Rates are USD per million tokens. Every output repeats the prompt and input token charges. Thinking is output text. Web search has no separate fee on this provider; retrieved content adds input tokens. The representative per-image examples are not flat prices or request cost limits." }, - "web_search_usd": 0.015, - "high_thinking_usd": 0.002, - "source_url": "https://fal.ai/models/fal-ai/nano-banana-2" + { + "source_url": "https://fal.ai/models/google/nano-banana-2.1/edit/api", + "notes": "Editing also accepts optional video_url or pdf_url context, each with a 15 MB file limit. The provider schema lists seed; the native Google Cloud contract does not support it, so portability or deterministic behavior is not claimed." + }, + { + "source_url": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1", + "notes": "The underlying model has 131072 input tokens and 32768 output tokens. Output image token counts are 1120 at 1K, 1680 at 2K and 3780 at 4K; input images use 1120 tokens each. These are model facts, not flat request prices." + } + ], + "capabilities": { + "source_url": "https://fal.ai/nano-banana-2.1", + "image_input": true, + "reasoning": true + }, + "limits": { + "source_url": "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1", + "context_tokens": 131072, + "max_output_tokens": 32768 }, - "avg_cost_usd": 0.08, - "url": "https://fal.ai/models/fal-ai/nano-banana-2", "endpoints": [ { - "id": "fal-ai/nano-banana-2", + "id": "google/nano-banana-2.1", "input": "text", - "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/api", + "source_url": "https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1", "parameters": { + "prompt": { + "type": "string", + "min_length": 3, + "max_length": 50000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 4 + }, "aspect_ratio": { + "type": "string", "enum": [ "auto", "21:9", @@ -6762,43 +8296,34 @@ "1:4", "8:1", "1:8" - ], - "type": "string" - }, - "enable_web_search": { - "type": "boolean" + ] }, - "limit_generations": { - "type": "boolean" + "resolution": { + "type": "string", + "enum": [ + "1K", + "2K", + "4K" + ] }, - "num_images": { - "minimum": 1, - "maximum": 4, - "type": "integer" + "thinking_level": { + "type": "string", + "enum": [ + "minimal", + "medium", + "high" + ] }, "output_format": { + "type": "string", "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": { + "type": "string", "enum": [ "1", "2", @@ -6806,8 +8331,7 @@ "4", "5", "6" - ], - "type": "string" + ] }, "seed": { "type": "integer" @@ -6815,15 +8339,35 @@ "system_prompt": { "type": "string", "max_length": 50000 + }, + "enable_web_search": { + "type": "boolean" + }, + "limit_generations": { + "type": "boolean" + }, + "sync_mode": { + "type": "boolean" } } }, { - "id": "fal-ai/nano-banana-2/edit", + "id": "google/nano-banana-2.1/edit", "input": "image", - "source_url": "https://fal.ai/models/fal-ai/nano-banana-2/edit/api", + "source_url": "https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1/edit", "parameters": { + "prompt": { + "type": "string", + "min_length": 3, + "max_length": 50000 + }, + "num_images": { + "type": "integer", + "minimum": 1, + "maximum": 4 + }, "aspect_ratio": { + "type": "string", "enum": [ "auto", "21:9", @@ -6840,48 +8384,34 @@ "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" + "resolution": { + "type": "string", + "enum": [ + "1K", + "2K", + "4K" + ] }, - "num_images": { - "minimum": 1, - "maximum": 4, - "type": "integer" + "thinking_level": { + "type": "string", + "enum": [ + "minimal", + "medium", + "high" + ] }, "output_format": { + "type": "string", "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": { + "type": "string", "enum": [ "1", "2", @@ -6889,8 +8419,7 @@ "4", "5", "6" - ], - "type": "string" + ] }, "seed": { "type": "integer" @@ -6898,197 +8427,48 @@ "system_prompt": { "type": "string", "max_length": 50000 + }, + "enable_web_search": { + "type": "boolean" + }, + "limit_generations": { + "type": "boolean" + }, + "sync_mode": { + "type": "boolean" + }, + "image_urls": { + "type": "array", + "max_items": 14, + "source_url": "https://fal.ai/models/google/nano-banana-2.1/edit" + }, + "video_url": { + "type": "string" + }, + "pdf_url": { + "type": "string" } } } ] - }, - "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.", - "vendor": "google", - "speed_label": "fastest", - "speed_max": "10s", - "constraints": { - "max_edge": 1024 - }, - "pricing": { - "type": "per_token", - "input": 0.25, - "output": 1.5 - }, - "avg_cost_usd": 0.034, - "release": { - "date": "2026-06-30", - "basis": "model", - "source_url": "https://ai.google.dev/gemini-api/docs/changelog" - }, - "providers": { - "vercel": { - "provider": "vercel", - "id": "google/gemini-3.1-flash-lite-image", - "pricing": { - "type": "per_token", - "input": 0.25, - "output": 1.5 - }, - "avg_cost_usd": 0.034 - }, - "openrouter": { - "provider": "openrouter", - "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" - }, - "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" - } + "source_url": "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" }, - "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" + "source_url": "https://openrouter.ai/google/gemini-nano-banana-2.1" }, "vercel": { "disposition": "listed", - "source_url": "https://ai-gateway.vercel.sh/v1/models" + "source_url": "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" }, "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" + "source_url": "https://fal.ai/nano-banana-2.1" } }, "styles": null, diff --git a/models/google/gemini-nano-banana-2.1/card.toml b/models/google/gemini-nano-banana-2.1/card.toml new file mode 100644 index 0000000..aa71fa2 --- /dev/null +++ b/models/google/gemini-nano-banana-2.1/card.toml @@ -0,0 +1,204 @@ +id = "google/gemini-nano-banana-2.1" +section = "image.models" +vendor = "google" +reference_provider = "google" +null_keys = ["styles", "sizes"] + +label = "Gemini Nano Banana 2.1" +short_description = "Image generation and conversational editing at 1K, 2K and 4K." + +[release] +date = "2026-10-06" +basis = "model" +source_url = "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1" + +[providers.google] +provider = "google" +id = "gemini-nano-banana-2.1" +url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" +pricing = { type = "per_token", input = 1.5, image_input = 1.5, text_output = 7.5, output = 30, source_url = "https://ai.google.dev/gemini-api/docs/pricing" } +qualifications = [ + { source_url = "https://ai.google.dev/gemini-api/docs/pricing", notes = "Rates are USD per million tokens. Input covers text, images and video; text output includes thinking. Search grounding is separately priced at $14 per 1000 requests after the shared allowance; the allowance is not included in the token prices." }, + { source_url = "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1", notes = "Google documents 1120 tokens per input image and output image tokens of 1120 at 1K, 1680 at 2K and 3780 at 4K. These image counts exclude additional text, thinking, video and document tokens. Google Cloud does not support seed, temperature, topP, topK or logprobs for this model." }, +] + +[providers.google.capabilities] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" +image_input = true +reasoning = true +tools = false +structured_output = false + +[providers.google.limits] +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" +context_tokens = 131072 +max_output_tokens = 32768 + +[[providers.google.endpoints]] +id = "gemini-nano-banana-2.1" +input = "text" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" + +[provider_coverage.google] +disposition = "listed" +source_url = "https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1" + +[providers.openrouter] +provider = "openrouter" +id = "google/gemini-nano-banana-2.1" +url = "https://openrouter.ai/google/gemini-nano-banana-2.1" +source_url = "https://openrouter.ai/google/gemini-nano-banana-2.1" +pricing = { type = "per_token", input = 1.5, image_input = 1.5, text_output = 7.5, output = 30, source_url = "https://openrouter.ai/api/v1/models" } +qualifications = [ + { source_url = "https://openrouter.ai/api/v1/models", notes = "The provider publishes 65536 context tokens and 58982 maximum completion tokens. These provider-specific limits differ from the native API. Image output is $30 per million image tokens; text/thinking output is a separate $7.50 meter. Web search is separately priced at $0.014 per request." }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/api/v1/models" +image_input = true +reasoning = true +structured_output = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/api/v1/models" +context_tokens = 65536 +max_output_tokens = 58982 + +[[providers.openrouter.endpoints]] +id = "google/gemini-nano-banana-2.1" +input = "text" +source_url = "https://openrouter.ai/google/gemini-nano-banana-2.1" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/google/gemini-nano-banana-2.1" + +[providers.vercel] +provider = "vercel" +id = "google/gemini-nano-banana-2.1" +url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" +source_url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" +pricing = { type = "per_token", input = 1.5, text_output = 7.5, cached_input = 0.15, source_url = "https://ai-gateway.vercel.sh/v1/models" } +qualifications = [ + { source_url = "https://ai-gateway.vercel.sh/v1/models", notes = "Discovery publishes output-image price examples of $0.0336 at 1K, $0.0504 at 2K and $0.1134 at 4K, separately from text and thinking output tokens. No image-token rate is inferred from another provider. Search has a separate published $14 per 1000 rate. Provider parameter and structured-output support differs from the native model page." }, +] + +[providers.vercel.capabilities] +source_url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" +image_input = true +reasoning = true +structured_output = true + +[providers.vercel.limits] +source_url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" +context_tokens = 131072 +max_output_tokens = 32768 + +[[providers.vercel.endpoints]] +id = "google/gemini-nano-banana-2.1" +input = "text" +source_url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gemini-nano-banana-2.1" + +[providers.fal] +provider = "fal" +id = "google/nano-banana-2.1" +url = "https://fal.ai/nano-banana-2.1" +source_url = "https://fal.ai/nano-banana-2.1" +pricing = { type = "per_token", input = 1.764, image_input = 1.764, text_output = 8.823, output = 35.294, source_url = "https://fal.ai/models/google/nano-banana-2.1/edit" } +qualifications = [ + { source_url = "https://fal.ai/models/google/nano-banana-2.1/edit", notes = "Rates are USD per million tokens. Every output repeats the prompt and input token charges. Thinking is output text. Web search has no separate fee on this provider; retrieved content adds input tokens. The representative per-image examples are not flat prices or request cost limits." }, + { source_url = "https://fal.ai/models/google/nano-banana-2.1/edit/api", notes = "Editing also accepts optional video_url or pdf_url context, each with a 15 MB file limit. The provider schema lists seed; the native Google Cloud contract does not support it, so portability or deterministic behavior is not claimed." }, + { source_url = "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1", notes = "The underlying model has 131072 input tokens and 32768 output tokens. Output image token counts are 1120 at 1K, 1680 at 2K and 3780 at 4K; input images use 1120 tokens each. These are model facts, not flat request prices." }, +] + +[providers.fal.capabilities] +source_url = "https://fal.ai/nano-banana-2.1" +image_input = true +reasoning = true + +[providers.fal.limits] +source_url = "https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/nano-banana-2-1" +context_tokens = 131072 +max_output_tokens = 32768 + +[[providers.fal.endpoints]] +id = "google/nano-banana-2.1" +input = "text" +source_url = "https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1" + +[providers.fal.endpoints.parameters] +prompt = { type = "string", min_length = 3, max_length = 50000 } +num_images = { type = "integer", minimum = 1, maximum = 4 } +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", + "4:1", + "1:4", + "8:1", + "1:8", +] } +resolution = { type = "string", enum = ["1K", "2K", "4K"] } +thinking_level = { type = "string", enum = ["minimal", "medium", "high"] } +output_format = { type = "string", enum = ["jpeg", "png", "webp"] } +safety_tolerance = { type = "string", enum = ["1", "2", "3", "4", "5", "6"] } +seed = { type = "integer" } +system_prompt = { type = "string", max_length = 50000 } +enable_web_search = { type = "boolean" } +limit_generations = { type = "boolean" } +sync_mode = { type = "boolean" } + +[[providers.fal.endpoints]] +id = "google/nano-banana-2.1/edit" +input = "image" +source_url = "https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=google/nano-banana-2.1/edit" + +[providers.fal.endpoints.parameters] +prompt = { type = "string", min_length = 3, max_length = 50000 } +num_images = { type = "integer", minimum = 1, maximum = 4 } +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", + "4:1", + "1:4", + "8:1", + "1:8", +] } +resolution = { type = "string", enum = ["1K", "2K", "4K"] } +thinking_level = { type = "string", enum = ["minimal", "medium", "high"] } +output_format = { type = "string", enum = ["jpeg", "png", "webp"] } +safety_tolerance = { type = "string", enum = ["1", "2", "3", "4", "5", "6"] } +seed = { type = "integer" } +system_prompt = { type = "string", max_length = 50000 } +enable_web_search = { type = "boolean" } +limit_generations = { type = "boolean" } +sync_mode = { type = "boolean" } +image_urls = { type = "array", max_items = 14, source_url = "https://fal.ai/models/google/nano-banana-2.1/edit" } +video_url = { type = "string" } +pdf_url = { type = "string" } + +[provider_coverage.fal] +disposition = "listed" +source_url = "https://fal.ai/nano-banana-2.1" diff --git a/models/openai/gpt-6-luna/card.toml b/models/openai/gpt-6-luna/card.toml new file mode 100644 index 0000000..3db5c80 --- /dev/null +++ b/models/openai/gpt-6-luna/card.toml @@ -0,0 +1,190 @@ +id = "openai/gpt-6-luna" +section = "text.catalog" +vendor = "openai" +reference_provider = "openai" + +label = "GPT-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-09-22" +basis = "model" +source_url = "https://openai.com/index/introducing-gpt-6-sol-and-luna/" + +[cost] +input = 0.1 +output = 0.5 +cache_read = 0.01 +cache_write = 0.125 + +[cost.long_context] +input_tokens_above = 272000 +input_multiplier = 2 +output_multiplier = 1.5 + +[providers.openai] +provider = "openai" +id = "gpt-6-luna" +url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +qualifications = [ + { source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna", notes = "Responses supports function calling. Chat Completions supports function calling only when reasoning_effort is explicitly none; the default reasoning effort is medium." }, + { source_url = "https://developers.openai.com/api/docs/guides/images-vision", notes = "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.0000001" +output = "0.0000005" +input_cache_read = "0.00000001" +input_cache_write = "0.000000125" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000001" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.00000075" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.00000002" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000000125" }, + { meter = "input_cache_write", minimum_input_tokens = 272001, usd_per_token = "0.00000025" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openai.endpoints]] +id = "gpt-6-luna" +input = "text" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" +interface = "responses" +capabilities = { source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna", image_input = true, tools = true, reasoning = true, structured_output = true, streaming = true } +parameters = { "reasoning.effort" = { type = "string", enum = [ + "none", + "low", + "medium", + "high", + "xhigh", + "max", +] } } + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-luna" + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-6-luna" +url = "https://openrouter.ai/openai/gpt-6-luna" +source_url = "https://openrouter.ai/openai/gpt-6-luna" +qualifications = [ + { source_url = "https://openrouter.ai/api/v1/models", notes = "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-6-luna" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.0000001" +output = "0.0000005" +input_cache_read = "0.00000001" +input_cache_write = "0.000000125" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000001" }, + { meter = "input", minimum_input_tokens = 272000, usd_per_token = "0.0000002" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.00000075" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.00000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.00000002" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.000000125" }, + { meter = "input_cache_write", minimum_input_tokens = 272000, usd_per_token = "0.00000025" }, +] + +[providers.openrouter.capabilities] +source_url = "https://openrouter.ai/openai/gpt-6-luna" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/openai/gpt-6-luna" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openrouter.endpoints]] +id = "openai/gpt-6-luna" +input = "text" +source_url = "https://openrouter.ai/openai/gpt-6-luna" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-6-luna" + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-6-luna" +url = "https://vercel.com/ai-gateway/models/gpt-6-luna" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.0000001" +output = "0.0000005" +input_cache_read = "0.00000001" +input_cache_write = "0.000000125" +tiers = [ + { meter = "input", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000001" }, + { meter = "input", minimum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { meter = "output", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000005" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.00000075" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.00000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.00000002" }, + { meter = "input_cache_write", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.000000125" }, + { meter = "input_cache_write", minimum_input_tokens = 272001, usd_per_token = "0.00000025" }, +] + +[providers.vercel.capabilities] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.vercel.limits] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.vercel.endpoints]] +id = "openai/gpt-6-luna" +input = "text" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-luna" + +[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-sol/card.toml b/models/openai/gpt-6-sol/card.toml new file mode 100644 index 0000000..e1f7062 --- /dev/null +++ b/models/openai/gpt-6-sol/card.toml @@ -0,0 +1,190 @@ +id = "openai/gpt-6-sol" +section = "text.catalog" +vendor = "openai" +reference_provider = "openai" + +label = "GPT-6 Sol" +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-22" +basis = "model" +source_url = "https://openai.com/index/introducing-gpt-6-sol-and-luna/" + +[cost] +input = 2 +output = 10 +cache_read = 0.2 +cache_write = 2.50 + +[cost.long_context] +input_tokens_above = 272000 +input_multiplier = 2 +output_multiplier = 1.5 + +[providers.openai] +provider = "openai" +id = "gpt-6-sol" +url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +qualifications = [ + { source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol", notes = "Responses supports function calling. Chat Completions supports function calling only when reasoning_effort is explicitly none; the default reasoning effort is medium." }, + { source_url = "https://developers.openai.com/api/docs/guides/images-vision", notes = "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000015" }, + { 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.000005" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openai.endpoints]] +id = "gpt-6-sol" +input = "text" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" +interface = "responses" +capabilities = { source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol", image_input = true, tools = true, reasoning = true, structured_output = true, streaming = true } +parameters = { "reasoning.effort" = { type = "string", enum = [ + "none", + "low", + "medium", + "high", + "xhigh", + "max", +] } } + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-6-sol" + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-6-sol" +url = "https://openrouter.ai/openai/gpt-6-sol" +source_url = "https://openrouter.ai/openai/gpt-6-sol" +qualifications = [ + { source_url = "https://openrouter.ai/api/v1/models", notes = "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-6-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.000015" }, + { 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/openai/gpt-6-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/openai/gpt-6-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openrouter.endpoints]] +id = "openai/gpt-6-sol" +input = "text" +source_url = "https://openrouter.ai/openai/gpt-6-sol" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-6-sol" + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-6-sol" +url = "https://vercel.com/ai-gateway/models/gpt-6-sol" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000015" }, + { 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.000005" }, +] + +[providers.vercel.capabilities] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.vercel.limits] +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.vercel.endpoints]] +id = "openai/gpt-6-sol" +input = "text" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-6-sol" + +[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.1-sol/card.toml b/models/openai/gpt-6.1-sol/card.toml new file mode 100644 index 0000000..2c21d85 --- /dev/null +++ b/models/openai/gpt-6.1-sol/card.toml @@ -0,0 +1,189 @@ +id = "openai/gpt-6.1-sol" +section = "text.catalog" +vendor = "openai" +reference_provider = "openai" + +label = "GPT-6.1 Sol" +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-29" +basis = "model" +source_url = "https://openai.com/index/devday-2026-recap/" + +[cost] +input = 2 +output = 10 +cache_read = 0.1 +cache_write = 2.50 + +[cost.long_context] +input_tokens_above = 272000 +input_multiplier = 2 +output_multiplier = 1.5 + +[providers.openai] +provider = "openai" +id = "gpt-6.1-sol" +url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +qualifications = [ + { source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol", notes = "Responses supports function calling. Chat Completions does not support tool calling. Reasoning none and minimal are not supported." }, + { source_url = "https://developers.openai.com/api/docs/guides/images-vision", notes = "Image input is supported, but the published patch/tile multiplier and detail-level sizing tables do not name this exact model. No vision-tokenization formula is inferred from other models." }, +] + +[providers.openai.token_pricing] +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000015" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { 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.000005" }, +] + +[providers.openai.capabilities] +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openai.limits] +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openai.endpoints]] +id = "gpt-6.1-sol" +input = "text" +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" +interface = "responses" +capabilities = { source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol", image_input = true, tools = true, reasoning = true, structured_output = true, streaming = true } +parameters = { "reasoning.effort" = { type = "string", enum = [ + "low", + "medium", + "high", + "xhigh", + "max", +] } } + +[provider_coverage.openai] +disposition = "listed" +source_url = "https://developers.openai.com/api/docs/models/gpt-6.1-sol" + +[providers.openrouter] +provider = "openrouter" +id = "openai/gpt-6.1-sol" +url = "https://openrouter.ai/openai/gpt-6.1-sol" +source_url = "https://openrouter.ai/openai/gpt-6.1-sol" +qualifications = [ + { source_url = "https://openrouter.ai/api/v1/models", notes = "The provider reports its long-context override at minimum 272000 prompt tokens. This binding preserves that threshold rather than substituting another provider's 272001 boundary." }, +] + +[providers.openrouter.token_pricing] +source_url = "https://openrouter.ai/openai/gpt-6.1-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272000, usd_per_token = "0.000015" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272000, usd_per_token = "0.0000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272000, usd_per_token = "0.0000002" }, + { 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/openai/gpt-6.1-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.openrouter.limits] +source_url = "https://openrouter.ai/openai/gpt-6.1-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.openrouter.endpoints]] +id = "openai/gpt-6.1-sol" +input = "text" +source_url = "https://openrouter.ai/openai/gpt-6.1-sol" + +[provider_coverage.openrouter] +disposition = "listed" +source_url = "https://openrouter.ai/openai/gpt-6.1-sol" + +[providers.vercel] +provider = "vercel" +id = "openai/gpt-6.1-sol" +url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" + +[providers.vercel.token_pricing] +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" +unit = "usd_per_token" +scope = "Standard synchronous global token rates; optional tools, regional processing and alternate service tiers are excluded. Cache writes use the default duration." +input = "0.000002" +output = "0.00001" +input_cache_read = "0.0000001" +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.00001" }, + { meter = "output", minimum_input_tokens = 272001, usd_per_token = "0.000015" }, + { meter = "input_cache_read", minimum_input_tokens = 0, maximum_input_tokens = 272001, usd_per_token = "0.0000001" }, + { meter = "input_cache_read", minimum_input_tokens = 272001, usd_per_token = "0.0000002" }, + { 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.000005" }, +] + +[providers.vercel.capabilities] +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" +image_input = true +tools = true +reasoning = true +structured_output = true +streaming = true + +[providers.vercel.limits] +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" +context_tokens = 1050000 +max_output_tokens = 128000 + +[[providers.vercel.endpoints]] +id = "openai/gpt-6.1-sol" +input = "text" +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" + +[provider_coverage.vercel] +disposition = "listed" +source_url = "https://vercel.com/ai-gateway/models/gpt-6.1-sol" + +[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."