fix: correct Gemini model names + add model dropdown

Corrected model names (per Google AI docs):
- gemini-2.5-flash-image (was gemini-2.0-flash-preview-image-generation)
- gemini-3-pro-image-preview (Nano Banana Pro)
- gemini-3.1-flash-image-preview (Nano Banana 2)

UI: replaced text input with dropdown selector showing all 3 models
with human-readable descriptions.

Default changed to gemini-2.5-flash-image (fast, high-volume).

AI Assistant: generate_project_cover tool description updated to be
provider-agnostic (works with both DALL-E and Gemini).

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-03-23 17:46:41 +01:00
parent 3ceba38ac8
commit 835ed6ef27
5 changed files with 12 additions and 10 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ export function isGeminiConfigured(settings: GeminiSettings | null | undefined):
export async function generateGeminiImage(
apiKey: string,
prompt: string,
model = "gemini-2.0-flash-preview-image-generation",
model = "gemini-2.5-flash-image",
): Promise<string> {
const fullPrompt = `Generate a professional, cinematic cover image for a 3D production project. ${prompt}`;
+1 -1
View File
@@ -1020,7 +1020,7 @@ export const TOOL_DEFINITIONS: ToolDef[] = [
type: "function",
function: {
name: "generate_project_cover",
description: "Generate an AI cover art image for a project using DALL-E. The image will be stored as the project's cover. Requires manageProjects permission and DALL-E to be configured.",
description: "Generate an AI cover art image for a project. Uses the configured image provider (DALL-E or Google Gemini). The image will be stored as the project's cover. Requires manageProjects permission.",
parameters: {
type: "object",
properties: {
+2 -2
View File
@@ -57,7 +57,7 @@ export const settingsRouter = createTRPCRouter({
azureDalleEndpoint: settings?.azureDalleEndpoint ?? null,
hasDalleApiKey: !!settings?.azureDalleApiKey,
// Gemini
geminiModel: settings?.geminiModel ?? "gemini-2.0-flash-preview-image-generation",
geminiModel: settings?.geminiModel ?? "gemini-2.5-flash-image",
hasGeminiApiKey: !!settings?.geminiApiKey,
// Image provider
imageProvider: settings?.imageProvider ?? "dalle",
@@ -331,7 +331,7 @@ export const settingsRouter = createTRPCRouter({
try {
const { generateGeminiImage } = await import("../gemini-client.js");
const model = settings.geminiModel ?? "gemini-2.0-flash-preview-image-generation";
const model = settings.geminiModel ?? "gemini-2.5-flash-image";
// Generate a tiny test image with a simple prompt
const dataUrl = await generateGeminiImage(