GPT-5.4 Pro
The heavy thinker with the training wheels removed
- messages
- images
- text
Some problems in a workflow deserve a model that will sit there and think for a while: "design a regional prompt setup that fixes the hands in this generation chain" or "explain why this lighting pipeline keeps banding." That's what GPT-5.4 Pro is for. It's the biggest, most capable tier of the 5.4 family on the Runware pack, and you'll know it when you see the bill - which is exactly why it's a specialist, not a default.
How it works
A textInference node calling GPT-5.4 Pro through the Runware cloud. The required messages input is a RUNWARE_MESSAGES socket from the Runware Messages builder (Runware/Params), same as the other text nodes.
Here's the interesting part about the Pro's control surface: there's no temperature or topP on this node. OpenAI locks those on the big reasoning models - you don't get to dial creativity, the model's internal sampling is what it is. What you do control:
settings.thinkingLevel-(default)/low/medium/high/xhigh. This is the main lever, and on Pro it's the whole game: crank it when the problem is genuinely hard. It's also where your budget goes.settings.systemPrompt- the system instruction.settings.maxTokens(default 4096, up to 128k) - response cap; long reasoning chains eat into this.images(IMAGE) - Pro is multimodal, so it can stare at your actual images before advising on them. This is the killer feature for "look at my render and tell me what's wrong."toolChoice/toolChoice.type(auto/any/tool/none) andtoolChoice.name, withadvanced_jsonfor tool definitions.numberResults(up to 4) andincludeUsage.
Output is a single text STRING.
Install
Part of ComfyUI-Runware:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart (or ComfyUI Manager → search "Runware"). Cloud model, no downloads. API key: Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
Cost, cost, cost. Pro with xhigh thinking on a long prompt is the most expensive single node run in the text category - the title bar shows the damage, but glance before you queue a batch. And don't be surprised by the missing temperature/topP; that's OpenAI's policy on reasoning models, not a pack bug. If you find yourself reaching for it on trivial jobs, you're paying for a specialist to do grunt work - the Mini or Nano handles those.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| messages | RUNWARE_MESSAGES | — | |
| imagesopt | IMAGE | — | |
| seedopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| includeUsageopt | BOOLEAN | false | Include token usage statistics in the response. |
| settings.maxTokensopt | INT | 40961–128000 | Maximum number of tokens to generate in the response. |
| settings.systemPromptopt | STRING | System-level instruction that guides the model's behavior and output style across the entire generation. | |
| settings.thinkingLevelopt | COMBO | (default) | Controls the depth of internal reasoning the model performs before generating a response. |
| toolChoiceopt | BOOLEAN | false | Enable to set toolChoice. Off uses the model's default. |
| toolChoice.nameopt | STRING | Name of the specific tool the model must call. Required when type is `tool`. | |
| toolChoice.typeopt | COMBO | (default) | Strategy the model uses to decide when and which tools to call. |
| outputFormatopt | COMBO | TEXT | Output format for the generated text. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: tools |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |