接入 GPT Image 2.5 双 provider 启动路由
启动时分别构造 VectorEngine 与 Tiantoken 图片 client 按生成、编辑和 nanobanana 模型选择具体 provider 迁移 api-server、编辑器 Agent 与 raw edit 调用方 拆分 GPT Image 2.5 生成与编辑定价并隐藏 provider 具体值
This commit is contained in:
@@ -44,6 +44,7 @@ import {
|
||||
|
||||
// 中文注释:与 api-server/src/editor_generation_config.rs 保持同名模型定价语义,前端仅作为展示兜底。
|
||||
export const IMAGE_MODEL_GPT_IMAGE_2 = 'gpt-image-2';
|
||||
export const IMAGE_MODEL_GPT_IMAGE_2_5 = 'gpt-image-2.5';
|
||||
export const IMAGE_MODEL_NANOBANANA2 = 'gemini-3.1-flash-image-preview';
|
||||
export const DEFAULT_IMAGE_MODEL = IMAGE_MODEL_NANOBANANA2;
|
||||
const IMAGE_MODEL_NANOBANANA_ALIASES = new Set([
|
||||
@@ -51,7 +52,7 @@ const IMAGE_MODEL_NANOBANANA_ALIASES = new Set([
|
||||
'nanobanana2',
|
||||
'nano-banana',
|
||||
]);
|
||||
export const SPEC_GENERATION_MODEL = IMAGE_MODEL_GPT_IMAGE_2;
|
||||
export const SPEC_GENERATION_MODEL = IMAGE_MODEL_GPT_IMAGE_2_5;
|
||||
export const SPEC_GENERATION_ASPECT_RATIO = '16:9';
|
||||
export const SPEC_GENERATION_IMAGE_SIZE = '2K';
|
||||
export const SPEC_GENERATION_SIZE = '2048x1152';
|
||||
@@ -93,6 +94,12 @@ export const EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG = {
|
||||
'1K': 12,
|
||||
'2K': 24,
|
||||
},
|
||||
[IMAGE_MODEL_GPT_IMAGE_2_5]: {
|
||||
'1K': 3,
|
||||
'2K': 5,
|
||||
},
|
||||
// Legacy persisted model value; keep readable for old assets without exposing
|
||||
// it as a new selectable model.
|
||||
[IMAGE_MODEL_GPT_IMAGE_2]: {
|
||||
'1K': 3,
|
||||
'2K': 5,
|
||||
@@ -127,7 +134,7 @@ export const QUICK_EDIT_SIZE_PRESETS = [
|
||||
] as const;
|
||||
export const EDITOR_IMAGE_MODEL_OPTIONS = [
|
||||
{ label: 'nanobanana2', value: IMAGE_MODEL_NANOBANANA2 },
|
||||
{ label: 'gpt-image-2', value: IMAGE_MODEL_GPT_IMAGE_2 },
|
||||
{ label: 'GPT Image 2.5', value: IMAGE_MODEL_GPT_IMAGE_2_5 },
|
||||
] as const;
|
||||
export const QUICK_EDIT_MODEL_OPTIONS = EDITOR_IMAGE_MODEL_OPTIONS;
|
||||
export const EDITOR_IMAGE_DIMENSION_OPTIONS = {
|
||||
@@ -135,6 +142,10 @@ export const EDITOR_IMAGE_DIMENSION_OPTIONS = {
|
||||
aspectRatios: ['1:1', '4:3', '3:2', '2:3', '9:16', '16:9'],
|
||||
imageSizes: ['0.5K', '1K', '2K'],
|
||||
},
|
||||
[IMAGE_MODEL_GPT_IMAGE_2_5]: {
|
||||
aspectRatios: ['1:1', '4:3', '3:2', '2:3', '9:16', '16:9'],
|
||||
imageSizes: ['1K', '2K'],
|
||||
},
|
||||
[IMAGE_MODEL_GPT_IMAGE_2]: {
|
||||
aspectRatios: ['1:1', '4:3', '3:2', '2:3', '9:16', '16:9'],
|
||||
imageSizes: ['1K', '2K'],
|
||||
@@ -381,9 +392,9 @@ export const EDITOR_MODEL_MUD_POINT_CONFIG = {
|
||||
unit: 'perGeneration',
|
||||
prices: EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG[IMAGE_MODEL_NANOBANANA2],
|
||||
},
|
||||
[IMAGE_MODEL_GPT_IMAGE_2]: {
|
||||
[IMAGE_MODEL_GPT_IMAGE_2_5]: {
|
||||
unit: 'perGeneration',
|
||||
prices: EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG[IMAGE_MODEL_GPT_IMAGE_2],
|
||||
prices: EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG[IMAGE_MODEL_GPT_IMAGE_2_5],
|
||||
},
|
||||
[VIDEO_MODEL_SEEDANCE_2_FAST]: {
|
||||
unit: 'perSecond',
|
||||
@@ -1452,7 +1463,7 @@ export function decodeCanvasGenerationInputs(
|
||||
} else if (action === 'ui-design.generate') {
|
||||
normalizeStringField('prompt', '用户输入');
|
||||
normalizeImageParameters({
|
||||
defaultModel: IMAGE_MODEL_GPT_IMAGE_2,
|
||||
defaultModel: IMAGE_MODEL_GPT_IMAGE_2_5,
|
||||
defaultAspectRatio: '16:9',
|
||||
});
|
||||
} else if (action === 'image.edit') {
|
||||
@@ -1993,7 +2004,7 @@ export function buildUiDesignGenerationInputs(
|
||||
...createGenerationInputField('用户输入', prompt, 'prompt'),
|
||||
...createGenerationInputField(
|
||||
'模型',
|
||||
options.model ?? IMAGE_MODEL_GPT_IMAGE_2,
|
||||
options.model ?? IMAGE_MODEL_GPT_IMAGE_2_5,
|
||||
'model',
|
||||
),
|
||||
...createGenerationInputField(
|
||||
|
||||
Reference in New Issue
Block a user