ComfyUI Extension: ComfyUI_Simple_Ollama
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
A simple, robust node for talking to any Ollama server (local or LAN) from ComfyUI. Vision, IMAGE-batch support, thinking mode, auto model discovery.
README
ComfyUI Simple Ollama 🦙
A lightweight, no-nonsense custom node for talking to any Ollama server directly from ComfyUI.
Built because most Ollama integrations are buried in huge node packs or abandoned repos. This one does one thing well: send a prompt (with optional image input) to Ollama, get text back.
Features
- One-click Connect — enter your Ollama URL, hit Connect, and the node auto-discovers all available models
- Live model info — shows parameter count, quantization, model family and context window for the selected model
- Vision support — pipe in one IMAGE or an IMAGE batch and every frame is sent to the model (works with Gemma 3, LLaVA, Qwen-VL, etc.)
- Thinking mode — get the model's chain-of-thought as a separate output (QwQ, DeepSeek-R1, …)
- VRAM management —
keep_alivecontrols how long the model stays loaded (-1keeps it loaded,0unloads immediately) - Prompt text output — third output returns the user prompt text field for debugging or logging
Installation
ComfyUI Manager (recommended)
In ComfyUI Manager, open the custom-node browser and install comfyui-simple-ollama from the Comfy Registry, then restart ComfyUI.
Manual (git)
- Navigate to your ComfyUI custom nodes folder:
cd /path/to/ComfyUI/custom_nodes/ - Clone this repository:
git clone https://github.com/a-und-b/ComfyUI_Simple_Ollama.git - Restart ComfyUI
No extra pip step for this pack — it uses the Python stdlib plus PIL/numpy (already bundled with ComfyUI).
Example workflow
The folder example_workflows/ contains example.json (full graph), example.png (canvas preview), and sample images fox.png / owl.png. Copy those two PNGs into your ComfyUI input/ directory (keep the same filenames) so the Load Image nodes resolve—then drag example.json onto the canvas (or load it from the workflow menu) to explore how the 🦙 AB Simple Ollama Connection node, vision inputs, and downstream nodes are wired. You can swap in your own images by changing the Load Image widgets or replacing the files in input/.
Usage
- Add the 🦙 AB Simple Ollama node (category:
AI/Ollama) - Enter your Ollama server URL (e.g.
http://192.168.1.100:11434) - Click Connect (between the model field and the prompt) — the model dropdown fills from your server
- Select a model — the info row shows parameters, quantization, and context window
- Write your prompt in the field below, adjust other settings, queue the workflow
Notes:
- If you connect an IMAGE batch, every frame is forwarded to Ollama as a separate entry in
messages[].images. - The Connect/model-info helper routes proxy to the Ollama URL you enter — see Security below before exposing ComfyUI to untrusted users.
Multiple Nodes / Shared URL
If you use several 🦙 AB Simple Ollama nodes in one workflow, add one 🦙 AB Simple Ollama Connection node and connect its ollama_url output to each node's optional ollama_url_override input.
- This lets multiple nodes share one central Ollama server URL.
- The regular
ollama_urlwidget still works as a fallback whenollama_url_overrideis not connected. - The Connect button and model info row will use the shared URL when the override input is wired.
- The Connect Downstream button on
🦙 AB Simple Ollama Connectionfetches models once and updates every connected🦙 AB Simple Ollamanode, and overwrites each node'sollama_urlwidget with the shared URL. - Downstream nodes keep their current model when it still exists; otherwise they switch to the first available model and refresh model info automatically.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
| ollama_url | STRING | ✅ | Ollama server URL |
| ollama_url_override | STRING | ❌ | Optional shared URL input, for example from the 🦙 AB Simple Ollama Connection node |
| model | COMBO | ✅ | Model selector (populated via Connect) |
| prompt | STRING | ✅ | Your prompt — context, instructions, question, all in one field |
| seed | INT | ✅ | Random seed for reproducible outputs |
| max_tokens | INT | ✅ | Max tokens to generate |
| temperature | FLOAT | ✅ | Sampling temperature (0 = deterministic) |
| keep_alive | FLOAT | ✅ | Minutes to keep the model loaded (-1 = keep loaded, 0 = unload immediately) |
| thinking_mode | BOOL | ✅ | Enable chain-of-thought reasoning |
| image | IMAGE | ❌ | Optional vision input; a single image sends one image, an IMAGE batch sends all frames |
| system_prompt | STRING | ❌ | System-level instruction |
Outputs
| Output | Description |
|---|---|
| response | The model's text response |
| thinking | The model's reasoning trace (empty if thinking mode is off) |
| prompt_text | The user prompt text field, returned unchanged for debugging/logging |
🦙 AB Simple Ollama Connection Outputs
| Output | Description |
|---|---|
| ollama_url | The normalized Ollama base URL for downstream Simple Ollama nodes |
Requirements
- Ollama running somewhere reachable (localhost or LAN)
- ComfyUI (any recent version) with Python 3.10+ (same as
pyproject.toml/ typical ComfyUI installs) - No separate pip install for this node pack, no API keys, no accounts
Security
This node ships two server-side helper routes (/simple_ollama/models and
/simple_ollama/model_info) that fetch a user-supplied URL so the frontend
can discover models. On a single-user, local ComfyUI install this is exactly
what you want. But because the ComfyUI server performs the request, anyone
who can reach your ComfyUI instance can make it fetch arbitrary http(s) URLs —
a classic SSRF
vector. This matters if your ComfyUI is exposed to the internet or shared with
untrusted users (it could be pointed at cloud metadata endpoints or internal
services).
Host allowlist. To lock the backend down to known Ollama hosts, set the
SIMPLE_OLLAMA_ALLOWED_HOSTS environment variable to a comma-separated list of
hostnames/IPs before starting ComfyUI:
export SIMPLE_OLLAMA_ALLOWED_HOSTS="localhost,127.0.0.1,192.168.1.100"
When set, the node (both the helper routes and run()) refuses any URL
whose host is not on the list. When unset, behaviour is unchanged — any host is
allowed (the historical default for local installs). Matching is on hostname
only (ports are not restricted) and is case-insensitive.
If you run ComfyUI behind a reverse proxy or on a shared machine, set the allowlist and don't expose the raw ComfyUI port to the public internet.
License
MIT — see LICENSE for details.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.