From 0da464bbca96e1c1684cdbe3d05ca5c026859c18 Mon Sep 17 00:00:00 2001 From: ProfSynapse Date: Fri, 24 Apr 2026 06:37:12 -0400 Subject: [PATCH] feat(openrouter): add gpt-5.4-image-2 image model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New OpenAI multimodal image-generation model on OpenRouter. Wired into image adapter only (precedent: gpt-5-image, flux-*, dall-e-* also live here, not in the chat ModelSpec registry). - ImageModel union: add 'gpt-5.4-image-2' - OpenRouterImageAdapter: supportedModels, modelMap, pricing table, listModels ModelInfo entry - Token pricing verbatim from OpenRouter API: $8/M input, $15/M output - Per-image rate mirrored from gpt-5-image ($0.08); OpenRouter publishes no per-image field for this model — verify before release Co-Authored-By: Claude Opus 4.7 (1M context) --- .../openrouter/OpenRouterImageAdapter.ts | 22 +++++++++++++++++++ src/services/llm/types/ImageTypes.ts | 1 + 2 files changed, 23 insertions(+) diff --git a/src/services/llm/adapters/openrouter/OpenRouterImageAdapter.ts b/src/services/llm/adapters/openrouter/OpenRouterImageAdapter.ts index 4dbe37cef..3de8adb4a 100644 --- a/src/services/llm/adapters/openrouter/OpenRouterImageAdapter.ts +++ b/src/services/llm/adapters/openrouter/OpenRouterImageAdapter.ts @@ -78,6 +78,7 @@ export class OpenRouterImageAdapter extends BaseImageAdapter { 'gemini-3-pro-image-preview' as ImageModel, 'gemini-3.1-flash-image-preview' as ImageModel, 'gpt-5-image' as ImageModel, + 'gpt-5.4-image-2' as ImageModel, 'flux-2-pro' as ImageModel, 'flux-2-flex' as ImageModel ]; @@ -94,6 +95,7 @@ export class OpenRouterImageAdapter extends BaseImageAdapter { 'gemini-3-pro-image-preview': 'google/gemini-3-pro-image-preview', 'gemini-3.1-flash-image-preview': 'google/gemini-3.1-flash-image-preview', 'gpt-5-image': 'openai/gpt-5-image', + 'gpt-5.4-image-2': 'openai/gpt-5.4-image-2', // Add other image-capable models as they become available 'flux-2-pro': 'black-forest-labs/flux.2-pro', 'flux-2-flex': 'black-forest-labs/flux.2-flex' @@ -369,6 +371,7 @@ export class OpenRouterImageAdapter extends BaseImageAdapter { 'gemini-3-pro-image-preview': 0.08, 'gemini-3.1-flash-image-preview': 0.04, 'gpt-5-image': 0.08, + 'gpt-5.4-image-2': 0.08, 'flux-2-pro': 0.05, 'flux-2-flex': 0.03 }; @@ -466,6 +469,25 @@ export class OpenRouterImageAdapter extends BaseImageAdapter { lastUpdated: '2026-02-26' } }, + { + id: 'gpt-5.4-image-2', + name: 'GPT-5.4 Image 2 (via OpenRouter)', + contextWindow: 272000, + maxOutputTokens: 128000, + supportsJSON: false, + supportsImages: true, + supportsFunctions: false, + supportsStreaming: false, + supportsThinking: false, + supportsImageGeneration: true, + pricing: { + inputPerMillion: 8, + outputPerMillion: 15, + imageGeneration: 0.08, + currency: 'USD', + lastUpdated: '2026-04-24' + } + }, { id: 'flux-2-pro', name: 'FLUX.2 Pro (via OpenRouter)', diff --git a/src/services/llm/types/ImageTypes.ts b/src/services/llm/types/ImageTypes.ts index 1dba949b4..91457da8e 100644 --- a/src/services/llm/types/ImageTypes.ts +++ b/src/services/llm/types/ImageTypes.ts @@ -244,6 +244,7 @@ export type ImageModel = | 'gemini-3-pro-image-preview' // Google Nano Banana Pro (advanced) | 'gemini-3.1-flash-image-preview' // Google Nano Banana 2 (flash speed, pro quality) | 'gpt-5-image' // OpenAI GPT-5 Image (OpenRouter only) + | 'gpt-5.4-image-2' // OpenAI GPT-5.4 Image 2 (OpenRouter only) | 'flux-2-pro' // Black Forest Labs FLUX.2 Pro (OpenRouter only) | 'flux-2-flex'; // Black Forest Labs FLUX.2 Flex (OpenRouter only)