When using the qwen3-vl model upi cam ise vsion, tools and thinking,. however if you are getting a webUI registry.ollama.ai/library/qwen2.5vl:32b does not support tools with quwen2..5vl:32b
That error is Ollama rejecting the request because the model actually being called is qwen2.5vl:32b, not qwen3-vl. Official qwen2.5vl has no tools template, so any WebUI feature that injects tools (web search, built-in tools, MCP, Native function calling) gets a hard 400.
Official tags:
- qwen2.5vl:32b — vision only (no tools tag). The Modelfile template has no {{ .Tools }} block. Ollama then refuses the request even though the model card talks about being “agentic.”
- qwen3-vl — vision + tools + thinking. That is the one that should accept tools.
So either WebUI is still pointed at the old 2.5 VL model, or tools are being sent to a model that cannot accept them.
1. Confirm which model Ollama is serving
Bash
ollama list
ollama show qwen3-vl:32b
ollama show qwen2.5vl:32b
On qwen3-vl you should see capabilities including tools. On qwen2.5vl you will not.
Also check the chat dropdown in Open WebUI. The error string is explicit: it is calling registry.ollama.ai/library/qwen2.5vl:32b. Common causes:
- leftover Workspace model that wraps qwen2.5vl:32b
- default model still set to 2.5 VL
- an old chat thread locked to that model
- a custom model created FROM qwen2.5vl:32b
Start a new chat and pick qwen3-vl:32b (or qwen3-vl:8b) explicitly.
2. If you want tools + vision, use Qwen3-VL
Requires Ollama ≥ 0.12.7.
Bash
ollama pull qwen3-vl:32b
# or smaller
ollama pull qwen3-vl:8b
Then in Open WebUI:
- Workspace → Models → qwen3-vl:…
- Function calling: Native
- Enable only the tools you actually need
3. If you must stay on Qwen2.5-VL
You have two options.
A. Stop sending tools (simplest)
For that model in Workspace:
- Function calling → Legacy (or disable Native)
- Uncheck built-in tools / web search / MCP for that model
- Don’t enable tools in the + menu for that chat
Vision chat will work. Agent/tool features will not.
B. Rebuild a tools-capable copy
Community forks exist (z-uo/qwen2.5vl_tools, rfsousa/qwen2.5vl:tools), or roll your own from a Qwen tools template:
Bash
# inspect a tools-capable Qwen template
ollama show qwen2.5:32b --template
# create a wrapper (example)
cat > Modelfile <<'EOF'
FROM qwen2.5vl:32b
TEMPLATE """{{ if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{ .System }}
{{- if .Tools }}
# Tools
You are provided with function signatures within <tools></tools> XML tags:
<tools>{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}{{- end }}
</tools>
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range .Messages }}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{- else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}{{ else if .ToolCalls }}<tool_call>
{{- range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{- end }}</tool_call>
{{ end }}<|im_end|>
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{- end }}
{{- end }}<|im_start|>assistant
{{ end }}"""
EOF
ollama create qwen2.5vl-tools:32b -f Modelfile
Quality of tool calling on 2.5-VL is still weaker than Qwen3-VL. The official 2.5-VL chat template was never built for Ollama’s tools API.
4. Why this keeps happening
Open WebUI (especially newer versions) defaults to Native tool calling and injects built-in tools. Ollama then checks the model template. No .Tools in the template → does not support tools. That check is per-model and cannot be overridden from WebUI.
Bottom line: if the error names qwen2.5vl:32b, WebUI is not using qwen3-vl. Switch the selected model, or turn tools off for 2.5-VL. For vision + tools on Ollama, qwen3-vl is the supported path.
o process videos using Qwen3 with a web UI, you need to clarify two key points first:
- Qwen3 (the large language model) is primarily for text generation (not video analysis).
- Qwen-VL (a vision-language model) can handle images, but not raw videos directly.
Here’s how to use a web UI with Qwen-based tools for video-related tasks:
✅ 1. Check the Official Web UI Options
Tongyi Lab (the developer of Qwen) provides a web-based demo for Qwen-VL (not Qwen3):
- Qwen-VL Demo: https://qwenvl.tongyilab.com/
- This supports image uploads only, not raw videos. You’ll need to:
a) Extract frames from your video (as discussed earlier).
b) Upload the extracted images one by one.
- This supports image uploads only, not raw videos. You’ll need to:
- Qwen3 Text-only Web UI: https://qwen3.tongyilab.com/
- This is for text generation only and cannot process video files directly.
✅ 2. Steps to Process a Video via Qwen-VL (Web UI)
Step 1: Preprocess the Video
- Use FFmpeg or OpenCV to extract frames (e.g., 5 frames per second).
Example command: bash CollapseCopy91›ffmpeg -i”your_video.mp4″-vf”select=not(mod(n\,5))” output_%03d.jpg
Step 2: Use the Qwen-VL Web UI
- Go to Qwen-VL Demo.
- Upload an image frame (e.g.,
output_001.jpg). - Input a question like:
“Describe this video frame in detail.”
Step 3: Chain Multiple Frames
- For longer videos, analyze multiple frames sequentially (manually upload each frame and ask relevant questions).
- Example use case: Summarize the key events in this sequence of frames.
❗ Important Limitations
| Feature | Qwen3 Web UI | Qwen-VL Web UI |
|---|---|---|
| Video Support | ❌ (text only) | ❌ (requires preprocessed images) |
| Image Processing | ❌ | ✅ (2D image input) |
| Frame Extraction | Must be done externally | Required before upload |
🛠 Alternative: Use Hugging Face Spaces
If you want a more flexible solution:
- Go to Hugging Face Qwen-VL Space.
- Upload your preprocessed images (not video files) and query the model.
Frame Extraction and Testing Qwen3-VL
et me know if you’d like:
- A step-by-step guide for Qwen-VL web UI setup with example prompts.
- How to automate frame extraction + Qwen-VL analysis using Python scripts. 😊
