Ollama Vision (deprecated)
The old one-node way to caption an image with a local model (deprecated)
- images
- description
If you landed here because you found this node's name inside an old shared workflow: it's deprecated. It still runs, but the pack's current README doesn't document it anymore, and the newer OllamaGenerateV2 covers the same ground (image in, description out) as part of a more flexible node. Worth knowing that upfront before you spend time debugging something that's on its way out.
What it was built for: a single, self-contained node that takes an image and a question ("describe the image", by default) and returns a caption from a vision-capable Ollama model. Everything it needs - server URL, model, sampling seed - lives directly on the node itself, no separate connectivity or options nodes to wire up. That made it dead simple to drop into a workflow when it shipped: no chaining, no meta, just an image socket and a text box.
How it works
Same mechanism as every node in this pack: it's a client, not a model. It sends your image and query to whatever's at url, using whatever model you've picked from the dropdown, and gets a text description back. The catch that isn't spelled out anywhere in the node itself but matters a lot in practice: Ollama will happily run this against a model that has no vision capability at all, and instead of erroring, it'll just make something up. The result reads like a real caption but has nothing to do with the picture. If descriptions look confidently wrong, that's the first thing to check - is the model you picked actually a vision model.
Inputs and outputs that matter
images- the picture (or batch) to describe.query- your question, defaulting to "describe the image." This is the only real prompt control you get; there's no separate system prompt field on this node.model- populated from whatever's installed on your Ollama server.url- defaults tohttp://127.0.0.1:11434, change it if Ollama runs elsewhere.keep_alive- how long (in minutes, -1 to 60) the model stays loaded after the call.seedandformat(text/json) are there for reproducibility and downstream parsing, respectively - most people leave these alone.debug- enable/disable, prints extra info to the console for troubleshooting.- Output: a single
descriptionstring.
Installing it
Via ComfyUI Manager, search comfyui-ollama (by Stav Sapir) or ollama and pick the stavsap one. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/stavsap/comfyui-ollama
pip install -r requirements.txt
then restart. The node pack's own dependency is light - you separately need Ollama itself running (install via curl script on Linux, the app on Mac/Windows, or Docker) with a vision-capable model pulled onto it.
Common issues
Descriptions that don't match the image. As above - almost always means the selected model doesn't actually support vision. Ollama's own model library marks which ones do; pick accordingly.
"Value not in list: model." The model dropdown is baked into the node/workflow at save time. If you loaded someone else's workflow or changed what's installed on your Ollama server since, the saved model name won't match and ComfyUI will refuse to run the graph. This exact error class shows up repeatedly in shared-workflow threads for this pack's older nodes - the fix is to reselect the model from the dropdown, or delete and re-add the node so it pulls a fresh list.
Server unreachable. If ComfyUI and Ollama aren't on the same machine (or Ollama's in a Docker container), 127.0.0.1 won't reach it - point url at wherever Ollama is actually listening.
No new features are coming. Because this node is deprecated, anything you'd want beyond a single-shot caption - chained history, a proper system prompt, composable options - means moving to OllamaGenerateV2 with an image plugged into its optional images input.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| query | STRING | describe the image | — |
| debug | COMBO | 2 options: enable, disable | |
| url | STRING | http://127.0.0.1:11434 | — |
| model | COMBO | 0 options: | |
| keep_alive | INT | 5-1–60 | — |
| format | COMBO | 3 options: text, json, | |
| seed | INT | 16049348660–2147483648 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| description | STRING | — |