327 lines
19 KiB
JSON
327 lines
19 KiB
JSON
{
|
|
"version": 2,
|
|
"updatedAt": "2026-10-17",
|
|
"note": "Image services (kept apart from the chat provider). Each service names an adapter (see image-services.php) and what its models accept. A model may name its own adapter ('adapter') and a path below the service address ('basePath'). 'verified' holds the date the parameters were checked against the provider's official documentation or machine-readable schema, or false when they were not: those entries are best effort and shown as such in the settings. Extra parameters for a model can be added in the settings (custom parameters) without changing code. Prices are only entered with a source and a date; none are guessed. Prices of Kie.ai come from its marketing pages (200 credits = 1 USD), not from the API documentation.",
|
|
"sources": [
|
|
"https://docs.kie.ai/llms.txt",
|
|
"https://fal.ai/docs/model-apis/model-endpoints/queue",
|
|
"https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=<id>",
|
|
"https://apidoc.cometapi.com/api/image/gemini/generate-image-guide.md",
|
|
"https://apidoc.cometapi.com/api/image/openai/images.md",
|
|
"https://apidoc.cometapi.com/api/image/seededit-seedream/bytedance-image-generation-task.md"
|
|
],
|
|
"services": {
|
|
"openai-compatible": {
|
|
"label": "ai.image_service_openai",
|
|
"adapter": "openai-images",
|
|
"baseUrl": "https://api.openai.com/v1",
|
|
"keyFrom": "openai-compatible",
|
|
"catalogModels": true
|
|
},
|
|
"openrouter": {
|
|
"label": "ai.image_service_openrouter",
|
|
"adapter": "openrouter-chat",
|
|
"baseUrl": "https://openrouter.ai/api/v1",
|
|
"keyFrom": "openrouter",
|
|
"catalogModels": true
|
|
},
|
|
"kie": {
|
|
"label": "ai.image_service_kie",
|
|
"adapter": "kie-task",
|
|
"baseUrl": "https://api.kie.ai",
|
|
"keyFrom": "kie",
|
|
"docs": "https://docs.kie.ai/llms.txt",
|
|
"defaultModel": "nano-banana-2-1",
|
|
"defaults": {
|
|
"verified": false,
|
|
"note": "Unknown Kie.ai model: only the prompt is sent. Add model specific parameters under custom parameters.",
|
|
"maxCount": 1,
|
|
"references": null,
|
|
"price": null
|
|
},
|
|
"models": [
|
|
{
|
|
"id": "nano-banana-pro",
|
|
"label": "Kie.ai: Nano Banana Pro",
|
|
"verified": "2026-10-17",
|
|
"kie": {"model": "nano-banana-pro", "editModel": null},
|
|
"aspectParam": "aspect_ratio",
|
|
"aspectAuto": true,
|
|
"aspects": ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpg"],
|
|
"formatAliases": {"jpeg": "jpg", "webp": "png"},
|
|
"maxCount": 1,
|
|
"references": {"param": "image_input", "max": 8, "transport": "url", "verified": "2026-10-17"},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.09, "2K": 0.09, "4K": 0.12}, "source": "https://kie.ai/nano-banana-pro", "updatedAt": "2026-10-17"}
|
|
},
|
|
{
|
|
"id": "nano-banana-2-1",
|
|
"label": "Kie.ai: Nano Banana 2.1",
|
|
"verified": "2026-10-17",
|
|
"kie": {"model": "nano-banana-2-1", "editModel": null},
|
|
"aspectParam": "aspect_ratio",
|
|
"aspectAuto": true,
|
|
"aspects": ["1:1", "2:3", "3:2", "1:4", "4:1", "3:4", "4:3", "4:5", "5:4", "1:8", "8:1", "9:16", "16:9", "21:9"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpg"],
|
|
"formatAliases": {"jpeg": "jpg", "webp": "png"},
|
|
"maxCount": 1,
|
|
"references": {"param": "image_input", "max": 10, "transport": "url", "verified": "2026-10-17"},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.02, "2K": 0.03, "4K": 0.045}, "source": "https://kie.ai/nano-banana-2-1", "updatedAt": "2026-10-17"}
|
|
},
|
|
{
|
|
"id": "gpt-image-2-5-flare",
|
|
"label": "Kie.ai: GPT Image 2.5 Flare",
|
|
"verified": "2026-10-17",
|
|
"note": "The price page does not separate Flare and Sunburst.",
|
|
"kie": {"model": "gpt-image-2-5-flare-text-to-image", "editModel": "gpt-image-2-5-flare-image-to-image"},
|
|
"aspectParam": "aspect_ratio",
|
|
"aspectAuto": true,
|
|
"aspects": ["1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16", "21:9"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"maxCount": 1,
|
|
"references": {"param": "input_urls", "max": 16, "transport": "url", "verified": "2026-10-17"},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.03, "2K": 0.05, "4K": 0.08}, "source": "https://kie.ai/gpt-image-2-5", "updatedAt": "2026-10-17"}
|
|
},
|
|
{
|
|
"id": "gpt-image-2-5-sunburst",
|
|
"label": "Kie.ai: GPT Image 2.5 Sunburst",
|
|
"verified": "2026-10-17",
|
|
"note": "The price page does not separate Flare and Sunburst.",
|
|
"kie": {"model": "gpt-image-2-5-sunburst-text-to-image", "editModel": "gpt-image-2-5-sunburst-image-to-image"},
|
|
"aspectParam": "aspect_ratio",
|
|
"aspectAuto": true,
|
|
"aspects": ["1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16", "21:9"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"maxCount": 1,
|
|
"references": {"param": "input_urls", "max": 16, "transport": "url", "verified": "2026-10-17"},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.03, "2K": 0.05, "4K": 0.08}, "source": "https://kie.ai/gpt-image-2-5", "updatedAt": "2026-10-17"}
|
|
},
|
|
{
|
|
"id": "seedream-5-0-pro",
|
|
"label": "Kie.ai: Seedream 5.0 Pro",
|
|
"verified": "2026-10-17",
|
|
"note": "Kie.ai sizes Seedream by quality: basic is 1K, high is 2K.",
|
|
"kie": {"model": "seedream/5-pro-text-to-image", "editModel": "seedream/5-pro-image-to-image"},
|
|
"aspectParam": "aspect_ratio",
|
|
"aspectAuto": false,
|
|
"aspects": ["1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9"],
|
|
"resolutionParam": "quality",
|
|
"resolutions": ["1K", "2K"],
|
|
"resolutionMap": {"1K": "basic", "2K": "high"},
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpeg"],
|
|
"formatAliases": {"jpg": "jpeg", "webp": "png"},
|
|
"maxCount": 1,
|
|
"references": {"param": "image_urls", "max": 10, "transport": "url", "verified": "2026-10-17"},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.035, "2K": 0.07}, "source": "https://kie.ai/seedream-5-0-pro", "updatedAt": "2026-10-17"}
|
|
}
|
|
]
|
|
},
|
|
"fal": {
|
|
"label": "ai.image_service_fal",
|
|
"adapter": "fal-queue",
|
|
"baseUrl": "https://queue.fal.run",
|
|
"keyFrom": null,
|
|
"docs": "https://fal.ai/docs/model-apis/model-endpoints/queue",
|
|
"defaultModel": "google/nano-banana-2.1",
|
|
"defaults": {
|
|
"verified": false,
|
|
"note": "Unknown fal model: prompt, aspect_ratio and num_images are sent as most fal image models accept them. Add model specific parameters under custom parameters.",
|
|
"aspectParam": "aspect_ratio",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"countParam": "num_images",
|
|
"maxCount": 4,
|
|
"references": null,
|
|
"price": null
|
|
},
|
|
"models": [
|
|
{
|
|
"id": "fal-ai/nano-banana-pro",
|
|
"label": "fal.ai: Nano Banana Pro",
|
|
"verified": "2026-10-17",
|
|
"aspectParam": "aspect_ratio",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"countParam": "num_images",
|
|
"maxCount": 4,
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpeg", "webp"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"references": {"editModel": "fal-ai/nano-banana-pro/edit", "param": "image_urls", "transport": "data-uri", "max": 14, "verified": "2026-10-17", "note": "Data URIs for images are stated on the edit page of this model."},
|
|
"price": {"currency": "USD", "byResolution": {"1K": 0.15, "2K": 0.15, "4K": 0.30}, "source": "https://fal.ai/models/fal-ai/nano-banana-pro", "updatedAt": "2026-10-17"}
|
|
},
|
|
{
|
|
"id": "google/nano-banana-2.1",
|
|
"label": "fal.ai: Nano Banana 2.1",
|
|
"verified": "2026-10-17",
|
|
"note": "fal.ai charges Nano Banana 2.1 by tokens: no flat price per image.",
|
|
"aspectParam": "aspect_ratio",
|
|
"aspects": ["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"],
|
|
"countParam": "num_images",
|
|
"maxCount": 4,
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpeg", "webp"],
|
|
"resolutionParam": "resolution",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"references": {"editModel": "google/nano-banana-2.1/edit", "param": "image_urls", "transport": "data-uri", "max": 10, "verified": false, "note": "The edit endpoint is documented; data URIs for images are not stated for this model."},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "openai/gpt-image-2.5/flare/text-to-image",
|
|
"label": "fal.ai: GPT Image 2.5 Flare",
|
|
"verified": "2026-10-17",
|
|
"note": "fal.ai charges GPT Image 2.5 by tokens: no flat price per image.",
|
|
"sizeParam": "image_size",
|
|
"aspects": ["1:1", "4:3", "3:4", "16:9", "9:16"],
|
|
"sizePresets": {"1:1": "square_hd", "4:3": "landscape_4_3", "3:4": "portrait_4_3", "16:9": "landscape_16_9", "9:16": "portrait_16_9"},
|
|
"countParam": "num_images",
|
|
"maxCount": 10,
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpeg", "webp"],
|
|
"qualityParam": "quality",
|
|
"qualities": ["auto", "low", "medium", "high"],
|
|
"references": {"editModel": "openai/gpt-image-2.5/flare/edit", "param": "image_urls", "transport": "data-uri", "max": 16, "verified": false, "note": "The edit endpoint is documented; data URIs for images are not stated for this model."},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "openai/gpt-image-2.5/sunburst/text-to-image",
|
|
"label": "fal.ai: GPT Image 2.5 Sunburst",
|
|
"verified": "2026-10-17",
|
|
"note": "fal.ai charges GPT Image 2.5 by tokens: no flat price per image.",
|
|
"sizeParam": "image_size",
|
|
"aspects": ["1:1", "4:3", "3:4", "16:9", "9:16"],
|
|
"sizePresets": {"1:1": "square_hd", "4:3": "landscape_4_3", "3:4": "portrait_4_3", "16:9": "landscape_16_9", "9:16": "portrait_16_9"},
|
|
"countParam": "num_images",
|
|
"maxCount": 10,
|
|
"formatParam": "output_format",
|
|
"formats": ["png", "jpeg", "webp"],
|
|
"qualityParam": "quality",
|
|
"qualities": ["auto", "low", "medium", "high"],
|
|
"references": {"editModel": "openai/gpt-image-2.5/sunburst/edit", "param": "image_urls", "transport": "data-uri", "max": 16, "verified": false, "note": "The edit endpoint is documented; data URIs for images are not stated for this model."},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "bytedance/seedream/v5/pro/text-to-image",
|
|
"label": "fal.ai: Seedream 5.0 Pro",
|
|
"verified": "2026-10-17",
|
|
"note": "fal.ai lists a tentative price for Seedream 5.0 Pro by image size; none is entered here.",
|
|
"sizeParam": "image_size",
|
|
"aspects": ["1:1", "4:3", "3:4", "16:9", "9:16"],
|
|
"sizePresets": {"1:1": "square_hd", "4:3": "landscape_4_3", "3:4": "portrait_4_3", "16:9": "landscape_16_9", "9:16": "portrait_16_9"},
|
|
"countParam": "num_images",
|
|
"maxCount": 6,
|
|
"formatParam": "output_format",
|
|
"formats": ["jpeg", "png"],
|
|
"references": {"editModel": "bytedance/seedream/v5/pro/edit", "param": "image_urls", "transport": "data-uri", "max": 10, "verified": false, "note": "The edit endpoint is documented; data URIs for images are not stated for this model."},
|
|
"price": null
|
|
}
|
|
]
|
|
},
|
|
"comet": {
|
|
"label": "ai.image_service_comet",
|
|
"adapter": "gemini-generate",
|
|
"baseUrl": "https://api.cometapi.com",
|
|
"keyFrom": null,
|
|
"docs": "https://apidoc.cometapi.com/api/image/gemini/generate-image-guide.md",
|
|
"defaultModel": "gemini-nano-banana-2.1",
|
|
"defaults": {
|
|
"verified": false,
|
|
"note": "Unknown Comet model: sent through the Gemini generateContent route. Other routes (for example /v1/images/generations) are available as custom service.",
|
|
"aspectParam": "aspectRatio",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"resolutionParam": "imageSize",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"maxCount": 1,
|
|
"references": {"transport": "inline-data", "max": 8, "verified": false},
|
|
"price": null
|
|
},
|
|
"models": [
|
|
{
|
|
"id": "gemini-3-pro-image",
|
|
"label": "Comet: Nano Banana Pro",
|
|
"verified": "2026-10-17",
|
|
"note": "Comet's catalog lists this id; its examples use gemini-3-pro-image-preview. Comet charges by tokens: no flat price per image.",
|
|
"aspectParam": "aspectRatio",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"resolutionParam": "imageSize",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"maxCount": 1,
|
|
"references": {"transport": "inline-data", "max": 14, "verified": "2026-10-17"},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "gemini-nano-banana-2.1",
|
|
"label": "Comet: Nano Banana 2.1",
|
|
"verified": "2026-10-17",
|
|
"note": "The ratios 1:4, 4:1, 1:8 and 8:1 are not documented for this model on Comet. Comet charges by tokens: no flat price per image.",
|
|
"aspectParam": "aspectRatio",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"resolutionParam": "imageSize",
|
|
"resolutions": ["1K", "2K", "4K"],
|
|
"maxCount": 1,
|
|
"references": {"transport": "inline-data", "max": 14, "verified": "2026-10-17"},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "gpt-image-2.5-flare",
|
|
"label": "Comet: GPT Image 2.5 Flare",
|
|
"verified": "2026-10-17",
|
|
"note": "Comet charges by tokens: no flat price per image. The allowed pixel sizes are not listed by Comet; the usual 1024x1024, 1536x1024 and 1024x1536 are sent. One reference image (multipart upload) is sent; more are not documented.",
|
|
"adapter": "openai-images",
|
|
"basePath": "/v1",
|
|
"openai": {"params": ["quality", "output_format", "output_compression"]},
|
|
"maxCount": 1,
|
|
"references": {"transport": "multipart", "max": 1, "verified": false},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "gpt-image-2.5-sunburst",
|
|
"label": "Comet: GPT Image 2.5 Sunburst",
|
|
"verified": "2026-10-17",
|
|
"note": "Comet charges by tokens: no flat price per image. The allowed pixel sizes are not listed by Comet; the usual 1024x1024, 1536x1024 and 1024x1536 are sent. One reference image (multipart upload) is sent; more are not documented.",
|
|
"adapter": "openai-images",
|
|
"basePath": "/v1",
|
|
"openai": {"params": ["quality", "output_format", "output_compression"]},
|
|
"maxCount": 1,
|
|
"references": {"transport": "multipart", "max": 1, "verified": false},
|
|
"price": null
|
|
},
|
|
{
|
|
"id": "seedream-5-0-pro-260628",
|
|
"label": "Comet: Seedream 5.0 Pro",
|
|
"verified": false,
|
|
"note": "Comet documents only the asynchronous text-to-image call (size 2K); reference images, ratios and formats are not documented, so none are sent.",
|
|
"adapter": "comet-task",
|
|
"basePath": "/v1",
|
|
"resolutions": ["2K"],
|
|
"maxCount": 1,
|
|
"references": null,
|
|
"price": null
|
|
}
|
|
]
|
|
},
|
|
"custom": {
|
|
"label": "ai.image_service_custom",
|
|
"adapter": "openai-images",
|
|
"baseUrl": "",
|
|
"keyFrom": null,
|
|
"defaults": {
|
|
"verified": false,
|
|
"note": "Any service with an OpenAI compatible /images/generations endpoint.",
|
|
"aspects": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"],
|
|
"maxCount": 4,
|
|
"references": {"transport": "multipart", "max": 8, "verified": false},
|
|
"price": null
|
|
}
|
|
}
|
|
}
|
|
}
|