NIMbus Text (PMS)
Chat with NVIDIA's hosted LLMs right inside ComfyUI
- text
This is the part of the pack that makes ComfyUI feel like a workspace rather than a renderer: a node that calls NVIDIA's hosted models - Nemotron, DeepSeek - over their NIM API and returns the reply as a plain STRING you can feed anywhere. No local model, no VRAM hit, no GPU involved at all. PMS_NimbusText is one of the pack's newer "v3" nodes, the text half of the NIMbus pair, and it's the piece people reach for when they want an LLM in the loop - rewriting prompts, generating captions, deciding parameters - without running a 30-billion-parameter model on their own card.
What it's for
Prompt engineering as a workflow step. Generate a base idea in one node, send it here to be expanded into a detailed positive prompt, and pipe the STRING output straight into your CLIP Text Encode. Or use it to caption a batch, write alt text, or produce a variation on a style description. Because it returns plain text, it composes with anything that takes a STRING - which in ComfyUI is nearly everything.
How it works
Pure REST, no SDKs. The node POSTs a chat completion to NVIDIA's NIM endpoint (/chat/completions, OpenAI-compatible format) using your API key, waits, and returns the message content as a string. The pack's shared client handles the annoying bits for you: exponential backoff on 429 rate limits, friendly error messages for bad keys, and - the part that keeps your workflow alive - it catches errors and returns them as an ❌ Error: … string instead of crashing the queue. Note it's not free: you need an NVIDIA API key from build.nvidia.com, and hosted model calls consume credits. The node is free; the API isn't, which is a point the community made quickly about this whole pack.
Inputs and outputs that matter
- prompt (STRING, multiline) - the user message. Default asks the model to explain what a ComfyUI custom node is; replace it with what you actually want.
- model (COMBO, default
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning) - the hosted model. The combo lists a few; anything NVIDIA NIM serves can be typed into custom_model, which overrides the combo when non-empty. - system_prompt (STRING) - optional system instruction; empty means no system message.
- temperature (0–2, default 0.7) and max_tokens (default 1024) - the usual dials.
- api_key (STRING) - leave empty and let the pack resolve it from the
NVIDIA_API_KEYenv var or the pack's.envfile. Pasted keys end up in your workflow JSON and PNG metadata, so the README's advice is to use.env. - text (STRING) - the reply.
Installing it
It's one of the v3 nodes in COMFYUI_PROMPTMODELS (PromptModels Studio in Manager):
cd ComfyUI/custom_nodes
git clone https://github.com/cdanielp/COMFYUI_PROMPTMODELS
Then create a .env in the pack folder with NVIDIA_API_KEY=nvapi-... and restart. Needs ComfyUI 0.26.0+; on older versions the whole pack refuses to load. No model files to download - that's the point of a hosted API.
Common issues
The two that actually bite: a 403 "key has no scope" error, which the client explicitly translates for you - your build.nvidia.com key needs the Public API Endpoints scope checked when you generate it; and 402 "credits exhausted", which means you've run the meter out, not that the node is broken. If the model name you typed isn't served, you'll get an HTTP error back as text. And remember the error-is-a-string design: a returned string starting with ❌ isn't output, it's the node telling you the call failed.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What is a ComfyUI custom node? Answer in two sentences. | — |
| model | COMBO | nvidia/nemotron-3-nano-omni-30b-a3b-reasoning | 5 options: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning, deepseek-ai/deepseek-v4-flash, deepseek-ai/deepseek-v4-pro, nvidia/llama-3.1-nemotron-ultra-253b-v1, nvidia/llama-3.3-nemotron-super-49b-v1 |
| system_promptopt | STRING | Instrucción de sistema. Vacío = sin system. | |
| custom_modelopt | STRING | Sobreescribe el combo si no está vacío. Ejemplo: nvidia/nemotron-3-ultra-550b-a55b | |
| temperatureopt | FLOAT | 0.700–2 | — |
| max_tokensopt | INT | 102464–8192 | — |
| api_keyopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |