Nodes/SDXL Auto Prompter/APNext Claude Vision Analyzer
ComfyUI Node

APNext Claude Vision Analyzer

Describe or clone an image into a prompt with Claude

By dagthomas·Created 3 years ago·Updated 17 days ago· 285
APNext Claude Vision Analyzer
  • images
  • STRING
happy_talktrue
compressfalse
compression_level
posterfalse
claude_modelclaude-sonnet-4.5
custom_base_prompt
custom_title
override

Feed it an image, get back a prompt that describes it. That's the "auto-prompter from a picture" people ask for constantly - you have a reference you love, you want a prompt that captures its subject, lighting and style so you can riff on it, and ClaudeVisionNode uses Anthropic's Claude vision models to write that description for you. It's the image-in counterpart to the pack's text-only Claude node, and it's the tool for reverse-engineering a look, seeding image-to-image, or building a consistent caption from a reference.

The demand for exactly this is real and current - the community's standard answer to "how do I go from an image + short idea to a detailed prompt" is a vision-language model wired as a ComfyUI node, and this is one of them. Claude's a strong describer. The tradeoff is the usual one for the cloud nodes in this pack: it's a paid API call and needs a key set in your environment.

How it works

The node encodes your images and sends them to Claude with an analysis system prompt, then returns Claude's written description as a string. The same tone controls as the text node apply: happy_talk toggles enthusiastic vs professional phrasing, compress with compression_level (soft/medium/hard) reins in length, and poster gives you poster-style copy. You can override the built-in instruction entirely with custom_base_prompt or override if you want, say, a tag-style caption instead of prose.

The inputs and outputs that matter

  • images - the reference image(s) to describe. This is the input the whole node exists for.
  • claude_model - the model dropdown (defaults to a Sonnet tier). Sonnet describes more precisely; Haiku is cheaper for quick captions.
  • compress + compression_level - keep the description tight. A vision model will happily write four paragraphs; your image encoder wants a few strong concepts, per the KB's attention-cap point.
  • custom_base_prompt / override (optional) - swap in your own instruction, e.g. "output comma-separated Danbooru tags" for an SDXL/Illustrious target instead of natural-language prose.

The single output is STRING - the description - into a CLIP Text Encode or a text preview so you can read it first.

How to install it

ComfyUI Manager: search comfyui_dagthomas, install, restart. Manual:

cd ComfyUI/custom_nodes && git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas && pip install -r requirements.txt

then restart. It needs the anthropic library (in requirements.txt) and an API key. Set ANTHROPIC_API_KEY (or CLAUDE_API_KEY) in the environment before starting ComfyUI.

Where people get burned

  • Key missing or set too late. Export ANTHROPIC_API_KEY before launching ComfyUI; the node reads it at startup.
  • Won't run on hosted ComfyUI. Serverless and shared cloud instances typically block outbound API calls and custom env vars, so this node is a local-install thing. If you need image-to-prompt on a hosted service, a local vision model (the pack's QwenVL/MiniCPM nodes, or a Florence-2/JoyCaption node) is the path that works there.
  • Match the output to your model. Claude writes natural-language prose by default. That's ideal for Flux/Z-Image; for a tag-based SDXL/Illustrious workflow, override the instruction to emit comma-separated tags, or you'll paste a paragraph into a box that wants tags.
  • Compress it. A long, faithful description is not the same as a good prompt. Trim it, or the encoder drowns in detail and drifts.
  • It describes, it doesn't reproduce. The prompt captures the vibe of the reference, not a pixel-exact copy. For true identity/style transfer you still want IP-Adapter or a LoRA alongside it.
Categorycomfyui_dagthomas/LLM

Inputs (9)

NameTypeDefaultDescription
imagesIMAGE
happy_talkBOOLEANtrue
compressBOOLEANfalse
compression_levelCOMBO3 options: soft, medium, hard
posterBOOLEANfalse
claude_modelCOMBOclaude-sonnet-4.57 options: claude-sonnet-4.5, claude-sonnet-4, claude-sonnet-3.7, claude-opus-4.1, claude-opus-4, claude-haiku-3.5, +1
custom_base_promptoptSTRING
custom_titleoptSTRING
overrideoptSTRING

Outputs (1)

NameTypeDescription
STRINGSTRING