Nodes/ComfyUI-SwissArmyKnife/LLM Studio Picture Describe
ComfyUI Node

LLM Studio Picture Describe

Caption a single image with a local vision model — no cloud, no key

By sammykumar·Created 12 months ago·Updated 8 months ago· 6
LLM Studio Picture Describe
  • image
  • caption
base_urlhttp://192.168.50.41:1234
model_nameqwen/qwen3-vl-30b
api_endpointcompletions
caption_promptPlease analyze the image and provide a detailed description of the the person's hair and facial features. Focus especially on texture, style, length, flow, facial structure, eyes, brows, nose, lips, skin tone, any visible markings (freckles, moles, etc.), and how light or shading affects their face. Use precise, descriptive language. Return description as one paragraph
temperature0.2
verbosefalse

LLM Studio Picture Describe is the workhorse of the pack's local captioning family: you feed it one image tensor and it returns one caption paragraph from a vision model running in LM Studio. No API key, no cloud round-trip - just you, LM Studio, and a model on your own GPU.

The inputs follow the LLM Studio pattern. base_url and model_name point at your LM Studio server, image takes the actual IMAGE tensor (from a Load Image, a Frame Extractor output, wherever), and caption_prompt is the instruction sent to the model. The default prompt is worth reading because it reveals what this node is tuned for: a detailed hair-and-facial-features caption - texture, style, length, facial structure, eyes, brows, nose, lips, skin tone, markings, and how light falls on the face. That's character-consistency territory. If you want reusable descriptions of a person so a face survives across generations, this default is aimed right at that job. If you want a general caption instead, replace it with your own text.

Two controls matter beyond the obvious. api_endpoint offers chat/completions and completions - and the tooltip is the truth: chat/completions may include thinking/reasoning tags in the output, while completions is cleaner. For caption text you'll actually paste into a prompt, completions is usually the one. And temperature defaults to a low 0.2, which is right for description - you want consistent, deterministic captions, not creative reinterpretations. verbose toggles console logging when something's misbehaving.

Mechanically it's plain: the image gets encoded and posted to LM Studio's OpenAI-compatible endpoint, and the returned text comes out as a single STRING output, caption. From there it can feed a prompt builder, a logging node, or a Multi-Caption Combiner when you're assembling per-frame descriptions of a clip.

Installing

Part of Swiss Army Knife:

  • ComfyUI Manager: search "Swiss Army Knife", install, restart.
  • Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/sammykumar/ComfyUI-SwissArmyKnife.git
cd ComfyUI-SwissArmyKnife
pip install -e .

And of course: LM Studio running with a vision model loaded on port 1234.

Gotchas

  • Vision models only. A text-only model returns gibberish or an error. You need a VLM like a Qwen-VL variant.
  • The default endpoint is completions for a reason. If captions come back littered with 思考...-style thinking tags, you're on chat/completions with a reasoning model - switch endpoints or the model.
  • The default caption_prompt is very face-focused. Great for character work, wrong for "describe the scene" use. Don't treat it as a general default; own your prompt.
  • A low temperature is your friend here. Description wants consistency, not creativity.

It's the node you reach for when you want a specific, reproducible read on one image without paying a cloud API. Pair it with Frame Extractor and Multi-Caption Combiner and you've got a fully local video-captioning chain that never touches the internet.

CategorySwiss Army Knife 🔪/Media Caption

Inputs (7)

NameTypeDefaultDescription
base_urlSTRINGhttp://192.168.50.41:1234LM Studio server URL (e.g. http://192.168.50.41:1234)
model_nameSTRINGqwen/qwen3-vl-30bModel name in LM Studio (e.g. qwen/qwen3-vl-30b)
api_endpointCOMBOcompletionsAPI endpoint: 'chat/completions' (may include thinking tags) or 'completions' (cleaner output)
imageIMAGEInput image to analyze
caption_promptSTRINGPlease analyze the image and provide a detailed description of the the person's hair and facial features. Focus especially on texture, style, length, flow, facial structure, eyes, brows, nose, lips, skin tone, any visible markings (freckles, moles, etc.), and how light or shading affects their face. Use precise, descriptive language. Return description as one paragraphPrompt for image caption
temperatureFLOAT0.20–2Temperature for text generation
verboseBOOLEANfalseShow detailed processing information in console

Outputs (1)

NameTypeDescription
captionSTRING