GPT-5.4
A full-featured GPT-5.4 chat node, straight into ComfyUI
- messages
- images
- text
ComfyUI isn't just for images anymore, and this node is the argument: a GPT-5.4 chat model on your canvas, able to read the images in your workflow and answer in plain text. Prompt-rewriting, style-guide generation, upscaling advice that's aware of what's on screen, structured reasoning - all of it without leaving the graph or installing a single model file.
How it works
A textInference node that calls OpenAI's GPT-5.4 through the Runware cloud API. The required input is messages, and it's a RUNWARE_MESSAGES socket - you don't type a chat log into a widget, you build it with the Runware Messages builder node (look in Runware/Params). That's the pack's builder pattern: stackable inputs keep the model node clean.
What you'll actually configure:
settings.systemPrompt- the system-level instruction steering the whole exchange. This is where you set the persona ("you are a prompt engineer") or the constraint ("reply in valid JSON").settings.temperature(default 1, range 0–2) andsettings.topP(default 0.95) - the classic creativity dials. Lower temperature for deterministic rewrites, higher for ideation.settings.thinkingLevel- reasoning depth:(default),low,medium,high,xhigh. Crank it for hard problems, leave it low for trivial routing.settings.maxTokens(default 4096, up to 128k) - response length cap.images(IMAGE) - optional vision: attach any image in your workflow and the model can see it. This is the sleeper feature - ask the model about the image you just generated.toolChoice/toolChoice.type(auto/any/tool/none) withtoolChoice.namefor forcing a specific tool, plusadvanced_jsonwhere you drop in your JSON tools definition. That's the function-calling escape hatch.seed,numberResults(up to 4 variants),includeUsage(token stats in the response).
Output is a single text STRING - wire it into any text node, a prompt input, or a show-text display.
Install
Ships in 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"). The model runs in OpenAI's cloud via Runware - no weights, no local LLM runtime. API key: Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
Pay-per-token, and thinking models are the ones where the bill creeps - xhigh thinking plus a long exchange adds up fast; the title bar shows cost after each run. There's no chat memory: each execution is stateless, so if you want multi-turn, you wire the output back into the Messages builder yourself. And if you only need fast, cheap text, the Mini/Nano variants of this node exist for exactly that - this one is for when you want the controls.
Inputs (15)
| 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.temperatureopt | FLOAT | 1.000–2 | Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity. |
| 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. |
| settings.topPopt | FLOAT | 0.950–1 | Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity. |
| 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 | — |