diff --git a/packages/core/src/core/modalityDefaults.test.ts b/packages/core/src/core/modalityDefaults.test.ts index db7b968a887..66d5a514959 100644 --- a/packages/core/src/core/modalityDefaults.test.ts +++ b/packages/core/src/core/modalityDefaults.test.ts @@ -135,6 +135,9 @@ describe('defaultModalities', () => { ['qwen-vl-max', ONLY_IMAGE_VIDEO], ['qwen3-vl-plus', has({ image: true, video: true })], ['qwen2.5-vl-32b-instruct', ONLY_IMAGE_VIDEO], + ['Ollama qwen3-vl tags', ONLY_IMAGE_VIDEO, 'qwen3-vl:8b'], + ['Ollama qwen2.5vl tags', ONLY_IMAGE_VIDEO, 'qwen2.5vl:7b'], + ['qwen2.5-vl without a size', ONLY_IMAGE_VIDEO, 'qwen2.5-vl'], [ 'quantized Qwen2.5-VL builds', ONLY_IMAGE_VIDEO, diff --git a/packages/core/src/core/modalityDefaults.ts b/packages/core/src/core/modalityDefaults.ts index 7881db654ff..c09fbbaea4f 100644 --- a/packages/core/src/core/modalityDefaults.ts +++ b/packages/core/src/core/modalityDefaults.ts @@ -59,10 +59,12 @@ const MODALITY_PATTERNS: Array<[RegExp, InputModalities]> = [ // Qwen VL (vision-language) models: image + video [/^qwen-vl-/, { image: true, video: true }], - [/^qwen3-vl-/, { image: true, video: true }], + // Ollama names these `qwen3-vl:8b` and `qwen2.5vl:7b`, so the tag strip + // leaves a bare `qwen3-vl` or a `qwen2.5vl` with no hyphen. + [/^qwen3-?vl(?:-|$)/, { image: true, video: true }], // Open-weight Qwen2-VL / Qwen2.5-VL, including sizes and quantized builds // the bundled catalog has no entry for (32B, 3B, -AWQ, -FP8). - [/^qwen2(?:\.5)?-vl-/, { image: true, video: true }], + [/^qwen2(?:\.5)?-?vl(?:-|$)/, { image: true, video: true }], // QVQ visual reasoning models. [/^qvq-/, { image: true }],