消除前端 legacy gpt-image-2 档位的重复字面量

- EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG 提取 GPT_IMAGE_2_5_TIER_PRICES,gpt-image-2 与 gpt-image-2.5 复用同一份泥点档位
- EDITOR_IMAGE_DIMENSION_OPTIONS 提取 GPT_IMAGE_2_5_DIMENSION_OPTIONS,两个 key 复用同一份尺寸档位
- 修正注释:legacy key 是持久化值的防御性别名,生产读取会先经 normalizeEditorImageModel 归一,不再声称它被正式读路径按旧值使用
This commit is contained in:
2026-09-22 12:19:02 +08:00
parent d3822a9a19
commit fb6e00c966
@@ -90,22 +90,22 @@ export const PUBLICATION_FRAME_DISPLAY_SIZE: Record<
'publication-detail-gallery': { width: 360, height: 640 },
'publication-promo-poster': { width: 560, height: 315 },
};
// `gpt-image-2` 仍是持久化在历史画布项里的模型值,配置保留为防御性别名;
// 生产读取会先经过 normalizeEditorImageModel 归一,因此 legacy 档位必须与
// `gpt-image-2.5` 同值,这里直接复用同一份常量避免两处字面量各自漂移。
const GPT_IMAGE_2_5_TIER_PRICES = {
'1K': 3,
'2K': 5,
} as const;
export const EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG = {
[IMAGE_MODEL_NANOBANANA2]: {
'0.5K': 8,
'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,
},
[IMAGE_MODEL_GPT_IMAGE_2_5]: GPT_IMAGE_2_5_TIER_PRICES,
// 历史持久化值;不作为新的可选模型暴露,只保证旧值可读。
[IMAGE_MODEL_GPT_IMAGE_2]: GPT_IMAGE_2_5_TIER_PRICES,
} as const;
export const SPEC_GENERATION_COST =
EDITOR_IMAGE_MODEL_MUD_POINT_CONFIG[SPEC_GENERATION_MODEL][
@@ -139,19 +139,18 @@ export const EDITOR_IMAGE_MODEL_OPTIONS = [
{ label: 'GPT Image 2.5', value: IMAGE_MODEL_GPT_IMAGE_2_5 },
] as const;
export const QUICK_EDIT_MODEL_OPTIONS = EDITOR_IMAGE_MODEL_OPTIONS;
// 同上:legacy `gpt-image-2` 与 `gpt-image-2.5` 共用同一份尺寸档位常量。
const GPT_IMAGE_2_5_DIMENSION_OPTIONS = {
aspectRatios: ['1:1', '4:3', '3:2', '2:3', '9:16', '16:9'],
imageSizes: ['1K', '2K'],
} as const;
export const EDITOR_IMAGE_DIMENSION_OPTIONS = {
[IMAGE_MODEL_NANOBANANA2]: {
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'],
},
[IMAGE_MODEL_GPT_IMAGE_2_5]: GPT_IMAGE_2_5_DIMENSION_OPTIONS,
[IMAGE_MODEL_GPT_IMAGE_2]: GPT_IMAGE_2_5_DIMENSION_OPTIONS,
} as const;
type EditorImageFrameSize = {