ComfyUI Node

GPT-5.4

A full-featured GPT-5.4 chat node, straight into ComfyUI

By Runware·Created 2 years ago·Updated about a month ago· 140
GPT-5.4
  • messages
  • images
  • text
seed0
numberResults1
includeUsagefalse
settings.maxTokens4096
settings.systemPrompt
settings.temperature1.00
settings.thinkingLevel(default)
toolChoicefalse
toolChoice.name
toolChoice.type(default)
settings.topP0.95
outputFormatTEXT
advanced_json

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) and settings.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) with toolChoice.name for forcing a specific tool, plus advanced_json where 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.

CategoryRunware/Text/openai

Inputs (15)

NameTypeDefaultDescription
messagesRUNWARE_MESSAGES
imagesoptIMAGE
seedoptINT00–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
includeUsageoptBOOLEANfalseInclude token usage statistics in the response.
settings.maxTokensoptINT40961–128000Maximum number of tokens to generate in the response.
settings.systemPromptoptSTRINGSystem-level instruction that guides the model's behavior and output style across the entire generation.
settings.temperatureoptFLOAT1.000–2Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity.
settings.thinkingLeveloptCOMBO(default)Controls the depth of internal reasoning the model performs before generating a response.
toolChoiceoptBOOLEANfalseEnable to set toolChoice. Off uses the model's default.
toolChoice.nameoptSTRINGName of the specific tool the model must call. Required when type is `tool`.
toolChoice.typeoptCOMBO(default)Strategy the model uses to decide when and which tools to call.
settings.topPoptFLOAT0.950–1Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity.
outputFormatoptCOMBOTEXTOutput format for the generated text.
advanced_jsonoptSTRINGOptional JSON merged into the request. For: tools

Outputs (1)

NameTypeDescription
textSTRING