diff --git a/apps/web/src/components/admin/SystemSettingsClient.tsx b/apps/web/src/components/admin/SystemSettingsClient.tsx index aeaf39a..afd467c 100644 --- a/apps/web/src/components/admin/SystemSettingsClient.tsx +++ b/apps/web/src/components/admin/SystemSettingsClient.tsx @@ -1181,13 +1181,15 @@ export function SystemSettingsClient() { Model - setGeminiModel(e.target.value)} - placeholder="gemini-2.0-flash-preview-image-generation" - /> + > + + + + diff --git a/packages/api/src/gemini-client.ts b/packages/api/src/gemini-client.ts index d0d558a..d84757a 100644 --- a/packages/api/src/gemini-client.ts +++ b/packages/api/src/gemini-client.ts @@ -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 { const fullPrompt = `Generate a professional, cinematic cover image for a 3D production project. ${prompt}`; diff --git a/packages/api/src/router/assistant-tools.ts b/packages/api/src/router/assistant-tools.ts index 00366ae..81acd7d 100644 --- a/packages/api/src/router/assistant-tools.ts +++ b/packages/api/src/router/assistant-tools.ts @@ -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: { diff --git a/packages/api/src/router/settings.ts b/packages/api/src/router/settings.ts index d1ddba5..59a75ed 100644 --- a/packages/api/src/router/settings.ts +++ b/packages/api/src/router/settings.ts @@ -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( diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index ce12af6..ed25f65 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -1449,7 +1449,7 @@ model SystemSettings { azureDalleApiKey String? // Optional: separate API key for DALL-E // Gemini image generation geminiApiKey String? - geminiModel String? @default("gemini-2.0-flash-preview-image-generation") + geminiModel String? @default("gemini-2.5-flash-image") imageProvider String? @default("dalle") // "dalle" | "gemini" updatedAt DateTime @updatedAt