Siberia Ollama视觉分析 / Ollama Vision
Point a local vision model at your ComfyUI images — the Siberia Ollama Vision node
- connection
- images
- 回复 / Response
This is the node the pack is actually built around. The Siberia Ollama Vision node takes an image (or a batch of them) from your graph, sends it to a vision-language model running in Ollama on your own machine, and hands back a text description. It's the captioner / prompt-seed job from the KB: give it a reference image and get a detailed description you can feed to an img2img or image-to-video workflow, or caption a batch of images without sending anything to a cloud API. Offline, free per call, and it plugs straight into the canvas.
What you have to give it
Everything here is required except nothing - the vision node is the strict one in the family:
- connection - the
OLLAMA_CONNECTIONfrom the Siberia Ollama Connector. No connector, no run. - images - an
IMAGEtensor. A single image works, and so does the stacked batch from the pack's Multi Image Input; the node handles both the normal 4D batch shape and the 5D stacked shape. - prompt - a multiline text box, defaulting to "请详细描述这些图片的内容 / Please describe the content of these images in detail". This is your instruction to the model, so be specific: "what colors is the character wearing" beats "describe this image".
- clear_history, temperature (0.1–1.0), max_tokens, language (中文/English) - same knobs as the chat node, same meaning.
The output is a single 回复 / Response string. Wire it to the Universal Display node to read it, or pass it up the graph as a prompt.
How it works under the hood
The connector hands it a connection dict; the node rebuilds an Ollama SDK client from that, then checks one thing before doing any work: is this model a vision model? It matches the model name against a list of keywords - vision, vl, multimodal, llava, qwen2-vl, llama3.2-vision, moondream, and so on. If your model's name doesn't trip the detector, you get an error string back instead of an analysis. If it passes, your tensors get converted to base64 and all the images go to the model in a single chat request, with a system prompt that - here's a quirk worth knowing - always introduces the model as "You are a Qwen3-VL Instruct model," regardless of what you actually loaded. It's cosmetic, but it tells you which model the author had in mind. The README recommends pulling qwen3-vl:4b or qwen3-vl:8b, and for a ~4B/8B local vision model those are sensible picks.
Two honesty notes from the KB and the code: vision models famously mix up who is wearing what when a scene has multiple subjects, so treat single-image descriptions as trustworthy and multi-subject ones as a first draft. And on multi-image requests the node deliberately clamps temperature to 1.0 and max_tokens to 8192 to keep things conservative.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/siberiah2o/ComfyUI-SiberiaNodes.git
cd ComfyUI-SiberiaNodes
pip install -r requirements.txt
Restart ComfyUI; it's under Siberia Nodes/Ollama. Manager users search "ComfyUI-SiberiaNodes". Then make sure Ollama is running and you've pulled a vision-capable model:
ollama serve
ollama pull qwen3-vl:8b
Where people get burned
- "Error: Model 'X' does not support vision capabilities." You picked a text-only model, or one whose name the keyword list doesn't recognize. Pull a real vision model (qwen3-vl, llava, llama3.2-vision) and pick that.
- The model dropdown is empty in the connector. Ollama isn't running or the URL in
config.yamlis wrong. Fix that before this node can do anything. - A confident description of a black frame. Your upstream image loader silently returned its failure placeholder (a 64×64 black tensor) - check the loader's info string, not the vision node.
- Wrong attributions in multi-subject shots. That's the VLM ceiling, not a bug. Narrow the prompt to one subject, or accept the draft.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| connection | OLLAMA_CONNECTION | Ollama连接对象 / Ollama Connection Object | |
| images | IMAGE | 要分析的图片张量列表 / Images Tensor List to Analyze | |
| prompt | STRING | 请详细描述这些图片的内容 / Please describe the content of these images in detail | 图片分析提示词 / Image Analysis Prompt |
| clear_history | BOOLEAN | false | 清除历史记录 / Clear History |
| temperature | FLOAT | 0.70.1–1 | 生成温度 / Generation Temperature |
| max_tokens | INT | 40961024–32768 | 最大生成tokens / Maximum Generation Tokens |
| language | COMBO | 中文 | 语言 / Language |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 回复 / Response | STRING | — |