From 5ac4eb5eb620d93d3d6a7d49036d9e53b396a0e0 Mon Sep 17 00:00:00 2001 From: 7418 <7418@openclaw.ai> Date: Fri, 27 Feb 2026 01:05:04 +0800 Subject: [PATCH] feat: add Nano Banana 2 model, revert default to Nano Banana Pro, bump v0.16.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 模型变更: - 新增 Nano Banana 2 (gemini-3.1-flash-image-preview) 到模型列表 - 默认模型恢复为 Nano Banana Pro (gemini-3-pro-image-preview) 原因:Nano Banana 2 刚发布,部分区域尚未完全上线,调用会超时 - 模型列表顺序:Nano Banana 2 > Nano Banana Pro > Nano Banana - 更新 ProviderManager、image-generator.ts、media/generate route 的默认值 依赖更新: - @ai-sdk/google 3.0.31 → 3.0.32 版本: - package.json 版本号 0.15.1 → 0.16.0 Co-Authored-By: Claude Opus 4.6 --- package-lock.json | 10 +++++----- package.json | 2 +- src/app/api/media/generate/route.ts | 2 +- src/components/settings/ProviderManager.tsx | 6 +++--- src/lib/image-generator.ts | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index f30de64..0f84172 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codepilot", - "version": "0.15.1", + "version": "0.16.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codepilot", - "version": "0.15.1", + "version": "0.16.0", "dependencies": { "@ai-sdk/anthropic": "^3.0.47", "@ai-sdk/google": "^3.0.31", @@ -131,9 +131,9 @@ } }, "node_modules/@ai-sdk/google": { - "version": "3.0.31", - "resolved": "https://registry.npmjs.org/@ai-sdk/google/-/google-3.0.31.tgz", - "integrity": "sha512-RVNz8WFSIRbXbYDBE6JvlE2escWPJimBCs22LzKEYH7DNfl/X7cHNa1LFho4PsY6Ib0JmbzB8s2+i0wHs/wNCg==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@ai-sdk/google/-/google-3.0.32.tgz", + "integrity": "sha512-BK8UOfLkGdoQQ0YgCuLm8uA+ZTPYRjKP2MAy6FPdZrx+DSc0Qvkl6vJWDjpS2tApSBp4xYkCyddaPapdE7o7/Q==", "license": "Apache-2.0", "dependencies": { "@ai-sdk/provider": "3.0.8", diff --git a/package.json b/package.json index fe07897..23878ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codepilot", - "version": "0.15.1", + "version": "0.16.0", "private": true, "author": { "name": "op7418", diff --git a/src/app/api/media/generate/route.ts b/src/app/api/media/generate/route.ts index f7332c2..6366ddc 100644 --- a/src/app/api/media/generate/route.ts +++ b/src/app/api/media/generate/route.ts @@ -41,7 +41,7 @@ export async function POST(request: NextRequest) { id: result.mediaGenerationId, text: '', images: result.images, - model: body.model || 'gemini-3.1-flash-image-preview', + model: body.model || 'gemini-3-pro-image-preview', imageSize: body.imageSize || '1K', elapsedMs: result.elapsedMs, }), diff --git a/src/components/settings/ProviderManager.tsx b/src/components/settings/ProviderManager.tsx index 08c820f..cd0cbca 100644 --- a/src/components/settings/ProviderManager.tsx +++ b/src/components/settings/ProviderManager.tsx @@ -247,8 +247,8 @@ const QUICK_PRESETS: QuickPreset[] = [ { key: "gemini-image", name: "Google Gemini (Image)", - description: "Nano Banana 2 — AI image generation by Google Gemini", - descriptionZh: "Nano Banana 2 — Google Gemini AI 图片生成", + description: "Nano Banana Pro — AI image generation by Google Gemini", + descriptionZh: "Nano Banana Pro — Google Gemini AI 图片生成", icon: , provider_type: "gemini-image", base_url: "https://generativelanguage.googleapis.com/v1beta", @@ -264,7 +264,7 @@ const GEMINI_IMAGE_MODELS = [ { value: 'gemini-2.5-flash-image', label: 'Nano Banana' }, ]; -const DEFAULT_GEMINI_IMAGE_MODEL = 'gemini-3.1-flash-image-preview'; +const DEFAULT_GEMINI_IMAGE_MODEL = 'gemini-3-pro-image-preview'; function getGeminiImageModel(provider: ApiProvider): string { try { diff --git a/src/lib/image-generator.ts b/src/lib/image-generator.ts index 3f76468..ea4275c 100644 --- a/src/lib/image-generator.ts +++ b/src/lib/image-generator.ts @@ -43,7 +43,7 @@ export async function generateSingleImage(params: GenerateSingleImageParams): Pr } // Read configured model from extra_env, fall back to default - let configuredModel = 'gemini-3.1-flash-image-preview'; + let configuredModel = 'gemini-3-pro-image-preview'; try { const env = JSON.parse(provider.extra_env || '{}'); if (env.GEMINI_IMAGE_MODEL) configuredModel = env.GEMINI_IMAGE_MODEL;