NIMbus Vision (PMS)
A vision-language model that actually looks at your image
- image
- text
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_modeloverrides the combo if you want to type another one. - enable_thinking (BOOLEAN, default
false) - turns on extended reasoning vianvext.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_KEYin.envor 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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Imagen para análisis multimodal (VL models). | |
| prompt | STRING | Describe this image in detail. | — |
| model | COMBO | nvidia/nemotron-nano-12b-v2-vl | 3 options: nvidia/nemotron-nano-12b-v2-vl, nvidia/llama-3.1-nemotron-nano-vl-8b-v1, nvidia/vila |
| system_promptopt | STRING | Instrucción de sistema. Vacío = sin system. | |
| custom_modelopt | STRING | Sobreescribe el combo si no está vacío. | |
| enable_thinkingopt | BOOLEAN | false | Activa razonamiento extendido (nvext.thinking). Solo modelos que lo soporten. |
| temperatureopt | FLOAT | 0.700–2 | — |
| max_tokensopt | INT | 102464–8192 | — |
| api_keyopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |