ImageDescriptionNode
Get GPT-4 to caption your image β straight into a text wire
- image
- STRING
ImageDescriptionNode is the pack's "look at this picture and describe it" node, powered by OpenAI's vision model. Feed it an image, it calls the API, and you get a natural-language description back as a STRING you can wire anywhere - into a prompt, a filename, a log, a dataset pipeline. If you've ever wanted an automatic captioner inside the graph instead of a separate script, this is it.
It's part of eden_comfy_pipelines, Eden.art's 70+ node suite, and it's one of the pack's GPT-powered nodes.
What you set
- image - the image to describe (first image in the batch is used).
- max_token - cap on the response length, default 100. For quick captions 100 is plenty; bump it if you're extracting detailed descriptions.
- endpoint - the OpenAI-compatible API base URL. Defaults to
https://api.openai.com/v1. If you're on a proxy, a local LLM gateway, or an OpenAI-compatible provider, change it here. - model -
gpt-4-vision Loworgpt-4-vision High. These map to the API'sdetailparameter: Low sends a downscaled image (faster, cheaper), High sends more pixels (better at fine details like text). Note the pack's code actually sends modelgpt-4oto the API with the chosen detail level - the label is a legacy name for the same vision capability. - prompt - the instruction to the model, with a sensible default: "Concisely describe the content... a single description per line." Edit this to ask for tags, style analysis, or JSON output instead.
One output, STRING, the model's reply.
The catch: you need an API key
This is a paid, network-dependent node. It reads OPENAI_API_KEY from the environment - specifically, from a .env file in your ComfyUI root directory, which is the pack's documented setup:
OPENAI_API_KEY=your_api_key_here
If the key is missing, the node doesn't crash; it returns an error string telling you exactly that. Every call costs money and takes a couple of seconds, so this isn't something to wire into every frame of a batch without thinking. And because it's a network call, it fails loudly if you're offline or the endpoint is wrong - the output will start with Error: and that string can flow downstream, so check it.
What it's good for
- Captioning reference images before they go into an IP-adapter or training-ish workflow.
- Building prompt metadata - describe an image, then feed the description into a prompt builder.
- Dataset assembly: batch-caption a folder for LoRA training data without leaving ComfyUI.
The honest comparison: if you want free, local captions, the pack's CLIP_Interrogator is the offline alternative (it downloads models on first run, no key needed). Use this node when you want real descriptions from a model that actually understands scenes, not tag-like guesses - and when you're willing to pay per call.
Installing it
Standard pack install - ComfyUI Manager (search "eden"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/edenartlab/eden_comfy_pipelines.git
cd eden_comfy_pipelines
pip install -r requirements.txt
Restart ComfyUI, then drop a .env file in the ComfyUI root with your key. The pack's requirements include openai and python-dotenv, which are the only dependencies this node cares about.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| max_token | INT | 1001β9223372036854776000 | β |
| endpoint | STRING | https://api.openai.com/v1 | β |
| model | COMBO | gpt-4-vision Low | 2 options: gpt-4-vision Low, gpt-4-vision High |
| prompt | STRING | Consicely describe the content of the images. Respond with a single description per line (ending with a period and a newline character). | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | β |