diff --git a/lib/ai/model-classification.ts b/lib/ai/model-classification.ts index ad8bc87dc..b8928bfc7 100644 --- a/lib/ai/model-classification.ts +++ b/lib/ai/model-classification.ts @@ -48,7 +48,6 @@ const VIDEO_MODE_KEYS = new Set([ "text-to-video", "first-frame", "first-last-frame", - "reference-images", ]); const TEXT_TO_IMAGE_MODE_KEYS = new Set([ diff --git a/playwright.helpers.config.ts b/playwright.helpers.config.ts index fac8bfdbb..7fbcc6b96 100644 --- a/playwright.helpers.config.ts +++ b/playwright.helpers.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ /routes\/canvas-entry-performance\.test\.ts/, /routes\/settings-visual-consistency\.test\.ts/, /routes\/canvas-scale-adjust-intent\.test\.ts/, + /routes\/model-classification\.test\.ts/, ], fullyParallel: true, forbidOnly: !!process.env.CI, diff --git a/tests/routes/model-classification.test.ts b/tests/routes/model-classification.test.ts new file mode 100644 index 000000000..04cc84f1a --- /dev/null +++ b/tests/routes/model-classification.test.ts @@ -0,0 +1,35 @@ +import { expect, test } from "@playwright/test"; +import { + isImageGenerationModelDescriptor, + isVideoModelDescriptor, +} from "@/lib/ai/model-classification"; + +test.describe("model classification", () => { + test("keeps multi-reference BananaImage models classified as image models", () => { + const descriptor = { + providerType: "bananaimage", + modelId: "gemini-3-pro-image-preview", + capabilities: { + supportedModes: [ + "text-to-image", + "image-to-image", + "reference-images", + ], + }, + supportsImageGen: true, + }; + + expect(isVideoModelDescriptor(descriptor)).toBe(false); + expect(isImageGenerationModelDescriptor(descriptor)).toBe(true); + }); + + test("still recognizes explicit video generation modes", () => { + expect( + isVideoModelDescriptor({ + providerType: "custom", + modelId: "custom-video-model", + capabilities: { supportedModes: ["text-to-video"] }, + }) + ).toBe(true); + }); +});