Nodes/RedNode Studio/RedNode Describe To Boxes
ComfyUI Node

RedNode Describe To Boxes

Turn a reference picture into a full prompt, section by section, with a local model

By RedNodeAI·Created 2 months ago·Updated 3 days ago· 4
RedNode Describe To Boxes
  • image
  • subject
  • surroundings
  • light_and_colour
  • raw
  • notice
engineOllama
model
instructionSort what you see in this image into exactly five labelled sections, in this order, each on its own line: SUBJECT: the main thing only. What it is, what it is wearing or made of, its pose, its expression, its own colours and materials. SURROUNDINGS: the place only. The setting, the background, the objects near it. LIGHT: where the light comes from, its direction and how hard or soft it is. COLOUR: the overall palette in a few words. MOOD: the feeling, in a few words. Rules. Every label appears exactly once and is never empty. If the main thing is lit or shadowed, that belongs in LIGHT, not SUBJECT. Do not name the place in SUBJECT. Write nothing before SUBJECT and nothing after the MOOD line. No bullets, no markdown, no preamble.
max_tokens420
seed1

The Krea 2 / prompt-frame approach this pack pushes splits a prompt into Subject and Surroundings because word order sets the framing - open with the person and you get a close shot, open with the room and the camera pulls back. The laborious part is writing those boxes from a reference image by hand. RedNode Describe To Boxes does that for you: it sends a picture to a local Ollama vision model, gets back five labelled sections, and hands Subject, Surroundings, and Light-and-colour out on separate sockets, ready to wire into a RedNode Prompt Frame.

Mechanically it's clean. You feed an image, pick the engine (Ollama is the only verified one - the tooltip notes the ComfyUI QwenVL nodes currently can't execute), pick the model from what Ollama has (tested on qwen3-vl 8b instruct at Q4), and hit run. The node asks for five sections - SUBJECT, SURROUNDINGS, LIGHT, COLOUR, MOOD - each on its own line, and parses the reply into the labeled outputs. There's a raw output carrying the full reply in case the split comes back malformed, and a notice output for when something went wrong (no model found, Ollama not running).

Three details are worth knowing before you use it. First, the instruction text is the whole game: the default wording is the one that scored 100% on format across 30 captions, and the parser keys on the exact section names - change them and the split breaks. Leave it alone unless you know what you're doing. Second, max_tokens is the reply cap, and too low truncates MOOD - the last section, so it dies first. Third, seed makes the description reproducible: same seed, same caption.

The best design choice here is what happens after the reply: the vision model is released from VRAM the moment the response lands (keep_alive zeroed), so it doesn't sit on top of your checkpoint for the rest of the queue. That's the classic low-VRAM trap with LLM nodes - running two models at once because nobody unloaded the first - and this node refuses to fall into it.

One thing the wider ecosystem should teach you before you get too trusting: any LLM/VLM node is arbitrary Python reaching the network, and that exact category already shipped malware once (the ComfyUI_LLMVISION incident). This node is one of the good shapes - a local Ollama call, no bundled model downloads, no hidden API keys - but "local and open" is precisely why it's the right instinct.

Installation is the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git

or search RedNode Studio in ComfyUI Manager. You'll also need Ollama running locally with a vision model pulled (ollama pull qwen3-vl:8b), which is the one external dependency. No pip requirements beyond that. Works with any model - the Ollama side doesn't care what you generate with.

CategoryRedNode/Prompt

Inputs (6)

NameTypeDefaultDescription
imageIMAGEThe picture to describe.
engineCOMBOOllamaWhich captioner does the describing. Ollama is the only one verified so far; the ComfyUI QwenVL nodes currently cannot execute (their process() wants an argument their INPUT_TYPES never declares).
modelCOMBOA vision model. Anything that follows instructions will do; tested on qwen3-vl 8b instruct at Q4.
instructionSTRINGSort what you see in this image into exactly five labelled sections, in this order, each on its own line: SUBJECT: the main thing only. What it is, what it is wearing or made of, its pose, its expression, its own colours and materials. SURROUNDINGS: the place only. The setting, the background, the objects near it. LIGHT: where the light comes from, its direction and how hard or soft it is. COLOUR: the overall palette in a few words. MOOD: the feeling, in a few words. Rules. Every label appears exactly once and is never empty. If the main thing is lit or shadowed, that belongs in LIGHT, not SUBJECT. Do not name the place in SUBJECT. Write nothing before SUBJECT and nothing after the MOOD line. No bullets, no markdown, no preamble.What the captioner is asked for. The default is the wording that scored 100% on format across 30 captions. Change the section names here and the parser will not find them.
max_tokensINT42064–2048Upper bound on the reply. Too low truncates MOOD.
seedINT10–18446744073709550000Same seed gives the same description.

Outputs (5)

NameTypeDescription
subjectSTRING
surroundingsSTRING
light_and_colourSTRING
rawSTRING
noticeSTRING