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