ComfyUI Node

GPT-5 Nano

The Runware text node

By Runware·Created 2 years ago·Updated about a month ago· 140
GPT-5 Nano
  • messages
  • images
  • text
seed0
numberResults1
includeUsagefalse
settings.maxTokens32000
settings.systemPrompt
settings.thinkingLevelmedium
toolChoicefalse
toolChoice.name
toolChoice.type(default)
outputFormatTEXT
advanced_json

This is the node that makes you look at your workflow and ask why you've been wrestling a local LLM into ComfyUI at all. GPT-5 Nano is OpenAI's small, cheap reasoning model, and the Runware pack hands it to you as one node that returns a plain text string. No model download, no GGUF quantization roulette, no VRAM. You type, it thinks, ComfyUI gets the answer.

It's part of Runware's official ComfyUI pack - every Runware model ships as a node that runs on their cloud GPUs over their REST API. Your machine does none of the inference. What you need instead is a Runware API key, which is the one thing everyone forgets the first time and then never does again.

What you actually set

The required input is messages, which is a builder socket, not a text box. You create a Runware/Params messages node, add user/assistant turns, and wire it in. That's the pack's design: model nodes stay clean, and the parameters hang off typed builder nodes.

The inputs worth touching:

  • settings.systemPrompt - the model-level instruction that shapes every reply. This is where you set its role, tone, and rules.
  • settings.thinkingLevel - none, low, medium, or high. This controls how much internal reasoning happens before it answers. Higher is better at hard problems and slower; none turns it into a fast autocomplete-style model. medium is the default and a sensible place to start.
  • settings.maxTokens - how long an answer can be. Default 32,000, up to 128,000.
  • outputFormat - TEXT or JSON. If you're feeding the output into anything downstream that parses it, JSON saves you a cleanup step.
  • images - an IMAGE socket, so you can pass a picture along with the text for a genuinely multimodal turn without leaving the graph.
  • numberResults - up to 4, each with a different seed. Handy for picking a winner from variations.
  • advanced_json - the escape hatch. Raw JSON merged into the request, which is how you attach tools and a jsonSchema. If you've never written Runware request JSON, leave it alone.

The only output is text, a STRING. Wire it into a text display node, or feed it into a prompt node to drive an image or video generation downstream. That loop - LLM writes the prompt, image node draws it - is the most common way this node ends up in a graph.

Install

ComfyUI Manager → Custom Nodes → search Runware → install → restart. Or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Then grab an API key from runware.ai/api-keys and drop it into ComfyUI Settings → Runware API key (or export RUNWARE_API_KEY). The pack only depends on runware-sdk, pillow, and soundfile - nothing heavy, and it needs Python 3.11+.

Where people get burned

  • "No Runware API key" - the single most common error, and it's exactly what it says. Set the key in Settings, restart, move on.
  • Cost. This is not free, and reasoning tokens add up faster than you expect. The node's title bar prints the per-run cost (and NSFW flag if a content check ran), so glance at it before you queue 4 variations of a 128k-token answer.
  • Thinking level isn't free either. high thinking on a long prompt is where the bill sneaks up. If you only need a one-line prompt rewrite, low is plenty.

One honest caveat: if your workflow is already running a local model happily, switching to this buys you nothing but a bill. Reach for it when you want a model you can't run locally, or you want the task off your GPU entirely.

CategoryRunware/Text/openai

Inputs (13)

NameTypeDefaultDescription
messagesRUNWARE_MESSAGES
imagesoptIMAGE
seedoptINT00–2147483647Random 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.maxTokensoptINT320001–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.thinkingLeveloptCOMBOmediumControls 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.
outputFormatoptCOMBOTEXTOutput format for the generated text.
advanced_jsonoptSTRINGOptional JSON merged into the request. For: jsonSchema, tools

Outputs (1)

NameTypeDescription
textSTRING