diff --git a/lib/ai/model-classification.ts b/lib/ai/model-classification.ts index f0fd20229..8e45c9552 100644 --- a/lib/ai/model-classification.ts +++ b/lib/ai/model-classification.ts @@ -57,7 +57,6 @@ const VIDEO_MODE_KEYS = new Set([ "audio-to-video", "first-frame", "first-last-frame", - "reference-images", ]); const VIDEO_KIND_KEYS = new Set([ diff --git a/tests/routes/model-classification.test.ts b/tests/routes/model-classification.test.ts index 0289d8932..c0b50796b 100644 --- a/tests/routes/model-classification.test.ts +++ b/tests/routes/model-classification.test.ts @@ -18,6 +18,34 @@ const atlasHunyuan3D = { }; test.describe("AI model media 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); + }); + test("keeps Atlas 3D entries out of image and video categories", () => { expect(inferAtlasCloudMediaKind(atlasHunyuan3D)).toBe("3d");