Nodes/PromptModels Studio/NIMbus Vision (PMS)
ComfyUI Node

NIMbus Vision (PMS)

A vision-language model that actually looks at your image

By cdanielp·Created 9 months ago·Updated 2 months ago· 28
NIMbus Vision (PMS)
  • image
  • text
promptDescribe this image in detail.
modelnvidia/nemotron-nano-12b-v2-vl
system_prompt
custom_model
enable_thinkingfalse
temperature0.70
max_tokens1024
api_key

Some ComfyUI workflows generate a result and then need someone - or something - to look at it. PMS_NimbusVision is that something: a node that sends your image to NVIDIA's hosted vision-language models over the NIM API and returns a text description or answer as a STRING. It's the multimodal half of the pack's NIMbus pair, and it's genuinely useful in the loop: caption your own generations, check whether an output matches the prompt, ask a model to describe a reference so you can rebuild it as text.

What it's for

Automatic captioning and quality checks that don't need you at the keyboard. Wire your final image in, ask "describe this in detail," and feed the description into a text encoder for a follow-up pass - a poor man's image-to-prompt. Or use it as a guard: generate, have the model tell you what's actually in the frame, and compare that against what you asked for. Since it outputs a plain string, it composes with text widgets, conditioning, and anything else that eats a STRING.

How it works

The image gets converted to a JPEG data URL (downscaled to 1024px on the longest side) and sent with your prompt to NVIDIA's OpenAI-compatible chat endpoint, where the VL model sees the pixels alongside the text. Same REST-only machinery as the pack's other cloud nodes: no SDKs, exponential backoff on 429s, and errors come back as ❌ Error: … strings rather than crashing your queue. It's a paid hosted call - you need an NVIDIA API key from build.nvidia.com with the Public API Endpoints scope, and credits are consumed per call.

Inputs and outputs that matter

  • image (IMAGE) - required. The picture the model should look at. Wire from any generation or loader node.
  • prompt (STRING, multiline, default "Describe this image in detail.") - what you want to know about it. Asking for specifics beats generic descriptions every time.
  • model (COMBO, default nvidia/nemotron-nano-12b-v2-vl) - a hosted VL model. custom_model overrides the combo if you want to type another one.
  • enable_thinking (BOOLEAN, default false) - turns on extended reasoning via nvext.thinking, but only for models that support it; flip it and you may need a bigger model in the combo.
  • system_prompt, temperature, max_tokens, api_key - as you'd expect; leave the key empty and it resolves from NVIDIA_API_KEY in .env or the environment.
  • text (STRING) - the model's answer.

Installing it

One of the v3 nodes in COMFYUI_PROMPTMODELS (PromptModels Studio in Manager):

cd ComfyUI/custom_nodes
git clone https://github.com/cdanielp/COMFYUI_PROMPTMODELS

Add NVIDIA_API_KEY=nvapi-... to the pack's .env and restart. Requires ComfyUI 0.26.0+; on older builds the whole pack refuses to load. No local model downloads - the VL model lives at NVIDIA's end.

Common issues

Same family as the text node: a 403 tells you your key lacks the Public API Endpoints scope (regenerate it on build.nvidia.com with that box checked), a 402 means credits ran out. Small images with a lot of small text can confound VL models even with thinking enabled, so if the answer is wrong, that's usually the model being vision-limited rather than the node being broken. And don't paste your key into the node's api_key field - it ends up in your workflow JSON and PNG metadata; the .env route keeps it out of your files.

CategoryPromptModels/NVIDIA (NIMbus)

Inputs (9)

NameTypeDefaultDescription
imageIMAGEImagen para análisis multimodal (VL models).
promptSTRINGDescribe this image in detail.
modelCOMBOnvidia/nemotron-nano-12b-v2-vl3 options: nvidia/nemotron-nano-12b-v2-vl, nvidia/llama-3.1-nemotron-nano-vl-8b-v1, nvidia/vila
system_promptoptSTRINGInstrucción de sistema. Vacío = sin system.
custom_modeloptSTRINGSobreescribe el combo si no está vacío.
enable_thinkingoptBOOLEANfalseActiva razonamiento extendido (nvext.thinking). Solo modelos que lo soporten.
temperatureoptFLOAT0.700–2
max_tokensoptINT102464–8192
api_keyoptSTRING

Outputs (1)

NameTypeDescription
textSTRING