Nodes/ComfyUI-DeepSeek-JanusPro/🧩Janus Multimodal Understanding
ComfyUI Node

🧩Janus Multimodal Understanding

Janus Answers in Plain Text

By ZHO-ZHO-ZHO·Created 2 years ago·Updated 2 years ago· 106
🧩Janus Multimodal Understanding
  • model
  • processor
  • tokenizer
  • image
  • response
questiondescribe the image
seed42
top_p0.95
temperature0.10
max_new_tokens512

This is the half of the pack that's actually great at its job. The image generation side of Janus-Pro-7B is a fun novelty, but the understanding side is a genuinely useful local vision model. Janus Multimodal Understanding takes an image plus a question and hands you back a text answer - a captioning and VQA block sitting right in the middle of your ComfyUI graph, using the same weights as the generator. Fully local, no API key, no cloud round-trip.

How it works

Under the hood it's a standard vision-language inference loop. The node builds a chat-style conversation (<image_placeholder> plus your question), the VLChatProcessor packs the image and text together into embeddings, and the model's language head generates a reply token by token - do_sample is on whenever temperature is above 0. The output gets decoded and any leftover special tokens are stripped, so you get clean text, not markup soup.

You feed it from the Janus Model Loader (model, processor, tokenizer) plus an image and a question, and it returns one STRING.

The inputs that matter

  • image (IMAGE) - any image in your graph: from a Load Image node, from a VAE decode, even from the pack's own generation node. You can literally have Janus critique its own output. It's a party trick, but it works. (One catch: if you feed a batch of images, only the first one gets analyzed - the node reads image[0].)
  • question - a multiline text box, default describe the image. Ask anything: "what's the text on this sign", "is this person wearing a hat", "describe the lighting."
  • temperature - default 0.1. That's near-greedy, which is the right instinct for answering questions. Crank it up if you want more creative captions.
  • top_p - default 0.95. Leave it near the top; lower it for tighter, more repetitive output.
  • seed - default 42. Only matters when sampling is actually happening, so at temperature 0 it's inert.
  • max_new_tokens - optional, default 512, capped at 2048. How long an answer it's allowed to write. Long-form image descriptions want more; a yes/no question wants less.

The output

response (STRING) - one text string. That's the important bit to remember: it's not an image and it's not a number, so it doesn't wire into anything pixel-related. You want a ShowText / SaveText-style node on the end of it to actually see the answer, or you can chain the text into other things (a prompt for a later step, a filename, whatever).

Install and setup

Same as the rest of the pack - ComfyUI Manager, search "DeepSeek JanusPro", or:

cd ComfyUI/custom_nodes
git clone https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro

Then restart. The node itself needs nothing extra (the pack's only pinned dependency is attrdict), but it shares the loader's heavy baggage: the ~15 GB Janus-Pro-7B download on first use and ~14 GB of VRAM. If your card can't hold it, this particular node is where you'll really feel the loss, because on paper "local VLM that answers questions about images" is a surprisingly rare and handy thing to have in ComfyUI.

The honest take

Keep expectations calibrated. Janus-Pro-7B answers questions and describes images competently - "average to good" is the community's repeated verdict - but it's not a frontier vision model, and it can be literal-minded about composition. Where this node shines is convenience: one model in one graph that reads and writes images, no API subscription, no separate download for a captioner. It's also, again, a pack whose code was famously written entirely by DeepSeek's R1 and later folded into ZHO's ComfyUI-DeepSeek-All-In-One project - so treat it as a working snapshot, not something under active development. It works. That's what matters.

Category🧩Janus

Inputs (9)

NameTypeDefaultDescription
modelJANUS_MODEL
processorPROCESSOR
tokenizerTOKENIZER
imageIMAGE
questionSTRINGdescribe the image
seedINT420–18446744073709550000
top_pFLOAT0.950–1
temperatureFLOAT0.100–1
max_new_tokensoptINT51216–2048

Outputs (1)

NameTypeDescription
responseSTRING