Nodes/EcoHash/EcoHash VLM Describe
ComfyUI Node

EcoHash VLM Describe

Turn any image back into a prompt — captioning in the graph, no local VLM

By ecohash-ai·Created about a month ago·Updated about a month ago· 0
EcoHash VLM Describe
  • image
  • STRING
model
promptDescribe this image in detail for use as an image-generation prompt.
max_tokens512

You've got an image you like and no idea what prompt made it - or you want to regenerate it in a different style. That's the job EcoHash VLM Describe exists for: it looks at an IMAGE and returns a STRING description, with the vision-language model running on EcoHash's servers rather than your GPU. The default prompt is exactly the one you'd want: "Describe this image in detail for use as an image-generation prompt." You feed that output into any prompt widget and you're off.

Why you'd reach for it

The pack ships the canonical workflow as describe_and_regenerate.json: LoadImage → VLMDescribe → Image Generate. It's the hosted-API take on the captioning pattern that's now routine across ComfyUI - captioners and describe-then-regenerate chains are mainstream, not novelty. It's also handy for img2img seeds and for small captioning jobs. The catch is the standard one for hosted vision: the image leaves your machine, and each description is a metered call. For bulk dataset captioning you'd still want a local tool like JoyCaption or Florence-2 (free, uncensored, offline); this node is for when you want a capable hosted VLM in the graph with zero VRAM and zero model files.

How it works

The node converts your IMAGE to PNG bytes, base64-encodes them into a data URL, and sends a multimodal message to /chat/completions - text prompt plus the image in one request. The model dropdown lists eight hosted vision models: qwen3-vl-8b-instruct is the balanced default, with gemma-4-31b-it, qwen3-omni-30b-a3b-instruct, and a spread of newer Qwen3.5/3.6 variants if you want more reasoning headroom. max_tokens defaults to 512 (up to 8192) - bump it if you ask for very detailed descriptions.

The inputs that matter

  • image - one IMAGE tensor. Like the rest of the pack's image nodes, it processes exactly one image per call and raises a clear error if you feed it a batch (split with an "Image From Batch" node).
  • model - the vision catalog, qwen3-vl-8b-instruct as your safe first pick.
  • prompt - what you want the model to say. The default detail-oriented instruction is good; you can ask for tags, a style breakdown, whatever the job needs.
  • max_tokens - 512 default; raise for longer output.

Output is STRING, which wires into a prompt box, a text viewer, or another node.

Where people get burned

  • Don't trust one caption for a training set. Every VLM - hosted or local - mangles multi-subject attribution: two people in frame and it mixes up who's wearing what. The KB's captioning guidance is blunt about this: auto-caption with a VLM, audit small sets by hand. And a description is a starting prompt, not a faithful transcription of the image.
  • Reasoning models can return empty if they spend the whole token budget thinking - same failure the pack's LLM node guards against. If you get the "no completion" error with a newer Qwen model, raise max_tokens.
  • The cache. Re-queue an unchanged graph and you get the cached caption with no new call. Change any input to re-describe.
  • 401 / 402 - bad key or no credit, same for all six nodes in the pack.

Install

ComfyUI Manager: search EcoHash, install "ComfyUI-EcoHash", restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/ecohash-ai/ComfyUI-EcoHash.git
cd ComfyUI-EcoHash
pip install -r requirements.txt   # just `requests`

Sign up at ecohash.com for a free starter credit, then set the key via the ECOHASH_API_KEY env var or a config.ini (copy config.ini.example and paste it in). No node has a key widget, deliberately, so your key never gets baked into a workflow file you share. Load an image, queue, and read what the model sees in your picture. It's a fresh pack with no community footprint yet - open, MIT-licensed, and thin enough to skim the source, which is exactly what you should do before handing a key to any new node.

CategoryEcoHash

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
modelCOMBO8 options: gemma-4-31b-it, qwen3.5-35b-a3b, qwen3-omni-30b-a3b-instruct, qwen3-vl-8b-instruct, qwen3.5-27b, qwen3.6-27b, +2
promptSTRINGDescribe this image in detail for use as an image-generation prompt.
max_tokensINT5121–8192

Outputs (1)

NameTypeDescription
STRINGSTRING