Nodes/KIE.ai Nodes Next/DeepSeek V4.1 Flash
ComfyUI Node

DeepSeek V4.1 Flash

The LLM Node That Also Takes an Image

By felipederosilva·Created about a month ago·Updated a day ago· 3
DeepSeek V4.1 Flash
  • images
  • text
  • raw_json
  • credits_consumed
  • usage_json
  • credits_left
◄prompt►
◄system_prompt►
◄streamfalse►
◄tools_json[]►
◄history_json[]►
◄reasoning_efforthigh►
◄max_output_tokens4096►
◄expert_override_json{}►

Almost every LLM node in this pack is text in, text out. This one is different in a way that matters: it has an IMAGE socket. That makes it the pack's captioning and image-reading node - the one you reach for when you want a vision pass inside the graph rather than a prompt rewrite.

What you'd do with it

The canonical Comfy job is captioning: an image goes in, a description comes out, and the description becomes a prompt for img2img, or a training caption, or the seed text for an image-to-video call. The KB's llm-in-comfyui.md puts VLM captioning as one of three jobs an LLM node does in a graph, and notes that the standard practice is chaining - a describer feeding a rewriter feeding the sampler. This node can be both halves: read the image with the image socket, then have the text output drive the next node.

Worth knowing before you trust it with a training set: every VLM mixes up who is doing what when there are multiple subjects in frame, and single-subject captions are still not reliably faithful enough to reconstruct the source. Auto-caption a large set, audit a small one by hand.

How it works

KIE's DeepSeek page is a Responses-style endpoint, and the pack's adapter treats it as such. Instead of Anthropic's messages array, the request body is built as input items - your prompt becomes an input_text part, and anything connected to images is uploaded first (as PNG) and added as input_image parts. The system prompt goes into instructions, and reasoning goes into reasoning: {effort: ...}.

That's why the socket names differ from the Claude nodes: this node has images and reasoning_effort and max_output_tokens where a Claude node has history_json and thinking and max_tokens. Same pack, different provider's request shape.

One provider note: KIE's own documentation for this model describes a reasoning.effort of "none" and thinking.type: "disabled" as options, while the node's selector offers low, medium, high and xhigh. If you need the exact documented shape rather than the friendly selector, expert_override_json merges into the raw request body last and overrides anything.

Inputs and outputs

Required: prompt. Optional: system_prompt (becomes instructions - put your format contract here), images (native IMAGE socket, batches are uploaded image by image), reasoning_effort (default high, with low/medium/high/xhigh), max_output_tokens (default 4096, up to 131072), history_json (prior input items as JSON), stream, tools_json, expert_override_json.

Outputs: text - the caption or rewrite, ready for a text-encode node or another model's prompt socket. raw_json for the full provider response, usage_json for token accounting, and credits_consumed / credits_left floats with a credits receipt on the node face after each run.

Install

ComfyUI Manager → ComfyUI-KIE-Nodes-Next. Registry publication is prepared but not shipped per the README, so the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt

Restart, then Settings → KIE.ai Nodes Next → Connection and paste the key once. KIE_API_KEY overrides for headless installs. Python 3.10+, a handful of light Python deps, no GPU and no weights.

Common issues

Connecting an image does nothing useful. It uploads and sends fine - but check your system_prompt. A model told nothing about what to do with an image will chat about it. "Describe this image as a single paragraph prompt for a diffusion model" is the kind of instruction that makes this node worth installing.

Reasoning burns your output budget. With reasoning_effort at the default high, part of max_output_tokens goes to deliberation. Short outputs that arrive empty or clipped are usually this: lower the effort or raise the tokens.

Caption drift on multi-subject images. Documented, provider-independent, and the reason tag-based captioners still exist for booru-trained bases.

It's metered per call. Captioning a 500-image dataset through this node is 500 billed calls, which is exactly the situation where the local-VLM path (JoyCaption, Florence-2, a tagger) is the sane default and the API is for the awkward images. Also: your images leave the machine.

Nothing in the menu on first launch. The pack builds the model library from KIE's docs index at startup and reloads the frontend once. Restart before troubleshooting.

CategoryKIE Next/LLM/Deepseek

Inputs (9)

NameTypeDefaultDescription
promptSTRINGUser prompt / message.
system_promptoptSTRING—
streamoptBOOLEANfalse—
tools_jsonoptSTRING[]Optional function/tool definitions supported by this model endpoint.
history_jsonoptSTRING[]Optional prior message/input array as JSON.
imagesoptIMAGE—
reasoning_effortoptCOMBOhigh4 options: low, medium, high, xhigh
max_output_tokensoptINT40961–131072—
expert_override_jsonoptSTRING{}Expert-only request overrides. Normal use does not require this.

Outputs (5)

NameTypeDescription
textSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
usage_jsonSTRING—
credits_leftFLOAT—