Nodes/Bjornulf_custom_nodes/๐Ÿ”ฎ OpenAI Vision Node
ComfyUI Node

๐Ÿ”ฎ OpenAI Vision Node

GPT-4.1 image analysis, paid, inside your graph

By justUmenยทCreated 2 years agoยทUpdated about a year agoยท 545
๐Ÿ”ฎ OpenAI Vision Node
  • image
  • analysis
โ—„promptOutput one line, exactly 7 lowercase fields, separated by semicolons, no spaces: sex;race;age;hair_length;body;eye_wear;head_wear Field values: sex: male/female race: pale/caucasian/hispanic/black/asian age: adult/child hair_length: none/long body: average/skinny/fat/obese/muscular eye_wear: none/glasses head_wear: none/hat/cap Examples: female;black;unknown;long;fat;none;none male;hispanic;unknown;none;muscular;glasses;cap male;asian;unknown;none;kid;none;hatโ–บ
โ—„modelโ–พโ–บ
โ—„api_keyโ–บ

The cloud counterpart to this pack's local Ollama Vision node. Same basic idea - image in, text analysis out - but this one calls OpenAI's GPT-4.1 vision API instead of a model running on your own hardware. That trades local privacy and zero marginal cost for real accuracy: GPT-4.1 is a genuinely strong vision model, well past what a small local model like moondream can do, and you pay per call for the privilege.

This node isn't documented in the pack's README yet - it's newer than the last written node entry, which is normal for a pack this actively developed. Everything below is read straight off the node's own inputs and outputs rather than the author's write-up.

How it works

Wire in an image, pick a model tier, paste your own OpenAI API key, and it sends the request. The default prompt field ships pre-filled with a fairly specific structured-output instruction: describe a person in exactly seven lowercase, semicolon-separated fields (sex, race, age, hair length, body type, eyewear, headwear), with worked examples included in the prompt itself. That's a strong hint at what this node was built for - automated, consistent character-attribute tagging across a batch of images, the kind of thing you'd want for dataset labeling rather than casual one-off captioning. You're free to replace the whole prompt with anything else; it's just a multiline text field.

The model dropdown is a nice touch worth calling out: it shows the per-token pricing right in the option text - GPT-4.1 at $2.00/$8.00 per million tokens, the mini variant at $0.40/$1.60, and nano at $0.10/$0.40. Nano is dramatically cheaper and fine for short, structured answers like the default prompt's; reach for the full model only if you need genuinely careful visual reasoning.

The inputs and outputs that matter

  • image - the image to analyze.
  • prompt - the instruction sent alongside the image; ships with a detailed default for structured attribute extraction, fully editable.
  • model - pick GPT-4.1, GPT-4.1 mini, or GPT-4.1 nano; the option text is also your price list.
  • api_key - your OpenAI API key, typed directly into the node.
  • Output: analysis - the model's text response.

How to install it

Through ComfyUI Manager: search Bjornulf_custom_nodes, install, restart ComfyUI. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes

cd into the folder, pip install -r requirements.txt (venv recommended), restart. No Ollama needed for this specific node - it's a pure API call - but you do need an OpenAI account with billing enabled and an API key from platform.openai.com.

Common issues

The thing worth flagging loudest here isn't a bug, it's a habit: this node takes your API key as a typed-in widget value, not an environment variable. ComfyUI embeds the full workflow - every widget value, key included - into the PNG metadata of anything you save or export, which is exactly the mechanism that makes "drag the image back in to reload the workflow" work. Share a generated image or export this workflow as JSON without clearing the api_key field first, and your key goes with it. Treat that field the way you'd treat pasting a password into a chat window: fine for your own local use, not something to leave in a workflow you post anywhere.

Beyond that, the usual API-node failure modes apply: an invalid or expired key errors immediately, and if your OpenAI account doesn't have billing set up (free-tier keys don't get vision access), you'll get an authorization error rather than a result. There's no local fallback here - no internet connection means no response, full stop.

CategoryBjornulf

Inputs (4)

NameTypeDefaultDescription
imageIMAGEโ€”
promptSTRINGOutput one line, exactly 7 lowercase fields, separated by semicolons, no spaces: sex;race;age;hair_length;body;eye_wear;head_wear Field values: sex: male/female race: pale/caucasian/hispanic/black/asian age: adult/child hair_length: none/long body: average/skinny/fat/obese/muscular eye_wear: none/glasses head_wear: none/hat/cap Examples: female;black;unknown;long;fat;none;none male;hispanic;unknown;none;muscular;glasses;cap male;asian;unknown;none;kid;none;hatโ€”
modelCOMBO3 options: GPT-4.1 ($2.00/$8.00 per 1M tokens), GPT-4.1 mini ($0.40/$1.60 per 1M tokens), GPT-4.1 nano ($0.10/$0.40 per 1M tokens)
api_keySTRINGโ€”

Outputs (1)

NameTypeDescription
analysisSTRINGโ€”