OpenAI Vision
Make GPT-5.5 look at your images and tell you what it sees
- image
- client
- analysis
Some of the most useful ComfyUI nodes don't generate anything - they look. OpenAI Vision hands an image (or a batch of them) to a GPT model and returns text: descriptions, critiques, quality checks, prompt round-trips. It's the natural next step after generation: you made an image, now ask the model how well it matches what you asked for, or feed the analysis back into a prompt-builder node to close the loop.
It's part of the ERPK Collection, the community pack wrapping the OpenAI API for ComfyUI. Billed per token like any OpenAI call, no local model.
How it works
You connect an image tensor, ask a question, and the node sends it to OpenAI's API with the image. The model reads the pixels (GPT-4o-style vision, with GPT-5.5 as the default) and returns a single analysis STRING. That string is the whole output - wire it into a text display, a "show text" node, or a prompt-building chain. Because it accepts a ComfyUI IMAGE tensor, it works inline after a generation node without any file juggling.
The inputs that matter
image- the image(s) to analyze, as a ComfyUI tensor. Required. It takes batches too, so you can run a whole contact sheet through one node.prompt- your question or instruction. Default is "Describe this image in detail." Ask for what you actually need: "Does this match: a red car in snow?" gets you a verdict, not an essay.model- defaults to gpt-5.5. Drop to a cheaper model for throwaway checks; the combo box has the full family.detail-auto,low, orhigh. Low is faster and cheaper; high reads finer details. Start at auto.max_tokens- caps the analysis length (256–16384, default 4096). Generous enough for a real description.temperature- default 0.4, already leaning factual. Lower it further for strict checks; a vision task rarely wants creative.reasoning_effort/verbosity- for the reasoning-capable and gpt-5.x models respectively. Ignored silently by models that don't support them.
The seed widget is best-effort here - reproducibility for vision isn't guaranteed, so treat it as a hint, not a contract.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk
pip install -r requirements.txt
Or ComfyUI Manager → search erpk → ERPK Custom Nodes. Add your OpenAI key under right-click canvas > ERPK Settings (Settings > ERPK > API Keys); the client input is optional if the key is there.
Common issues
- Auth errors - key not set. It lives in ERPK Settings or
openai/config.ini, not on this node. - Rambling output when you wanted a verdict - write a tighter prompt. "Answer in one sentence: is there a cat?" beats "Describe this image."
- Unexpected token cost -
detail: highon large images is the expensive setting. Drop to low for bulk checks. - Vision says something obviously wrong - GPT vision isn't infallible on small, subtle, or heavily stylized details;
highdetail and a more specific question usually fix it.
This is the node that turns ComfyUI from a generator into a feedback loop: generate, critique, revise. If you're doing prompt-to-prompt iteration, wire the analysis output into your text node and let the model argue with itself.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image(s) to analyze (ComfyUI tensor) | |
| prompt | STRING | Describe this image in detail. | Question or instruction about the image(s) |
| seed | INT | -1-1–2147483647 | Seed for reproducible outputs (best-effort). Randomizes by default. |
| clientopt | OPENAI_API_CLIENT | OpenAI API client from OpenAI API Config node (optional if API key is configured in Settings) | |
| modelopt | COMBO | gpt-5.5 | OpenAI model to use for vision analysis |
| detailopt | COMBO | auto | Image detail level (low=faster/cheaper, high=more detailed) |
| max_tokensopt | INT | 4096256–16384 | Maximum length of analysis |
| temperatureopt | FLOAT | 0.400–2 | Creativity level (lower=more factual) |
| reasoning_effortopt | COMBO | none | Reasoning depth for o-series and gpt-5.x reasoning models. Ignored by non-reasoning models. |
| verbosityopt | COMBO | default | Output verbosity for gpt-5.x models. 'low' produces terse responses, 'high' produces more detailed ones. Distinct from max_tokens — shapes style, not the hard length cap. 'default' lets the model choose. Silently ignored by older models that do not accept verbosity. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| analysis | STRING | — |