GPT-5.4 Nano
When the job is tiny and you're calling it a lot
- messages
- images
- text
Some LLM jobs are boring on purpose: "is this caption about a landscape?", "extract the three words that describe the style", "clean up this prompt's commas." For that kind of high-volume, low-stakes text work, you do not want the big model - you want the smallest thing that reliably answers. GPT-5.4 Nano is exactly that: the cheapest, quickest tier of the 5.4 family, with the full control surface intact.
How it works
A textInference node that calls GPT-5.4 Nano through the Runware cloud API. The required messages input is a RUNWARE_MESSAGES socket, fed by the Runware Messages builder (Runware/Params) - same pattern as every other text node in the pack.
The controls are identical to the full 5.4 node, which is the convenient part:
settings.systemPrompt- system instruction; on Nano this is where you keep the task tight ("answer only yes or no").settings.temperature(default 1, 0–2) andsettings.topP(default 0.95) - you'll probably run Nano at a low temperature for consistent answers.settings.thinkingLevel-(default)/low/medium/high/xhigh. Nano rewardslow; it's not built for deep reasoning, so don't pay for thinking it can't really do.settings.maxTokens(default 4096, up to 128k) - response cap.images(IMAGE) - yes, even Nano is multimodal; handy for quick "does this image show X?" checks.toolChoice/toolChoice.type/toolChoice.nameandadvanced_jsonfor tools, plusseed,numberResults,includeUsage.
Output is a text STRING.
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 the cloud, so there's nothing to download. API key: Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
Nano is the value pick but it's also the one people misjudge. It will confidently produce mediocre results on anything that needs real reasoning - use it for classification and extraction, not for "improve my prompt into a masterpiece." Per-token cost is the lowest of the family, but it's still per-token; the title bar shows each run's cost. And as with every text node here, no chat memory - stateless per execution, multi-turn is your job to wire up.
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 | — |