ComfyUI Node

MiniMax M3

MiniMax M3 without a GPU

By Runware·Created 2 years ago·Updated about a month ago· 140
MiniMax M3
  • messages
  • text
numberResults1
includeUsagefalse
settings.maxTokens128000
settings.systemPrompt
settings.temperature1.00
toolChoicefalse
toolChoice.name
toolChoice.type(default)
settings.topP0.95
outputFormatTEXT
advanced_json

This is the node that makes people do a double take: a text generation model living in the Runware/Text/minimax folder of your node menu, right next to the image and video stuff. The ComfyUI-Runware pack is Runware's whole cloud catalog exposed as nodes, and MiniMax M3 is its chat/text entry point. You type into it, it returns a string, and you can feed that string anywhere a text box would go in a workflow - prompt templates, captions, batch variations, whatever you can dream up.

Why would you want an LLM inside your graph instead of a browser tab? Two reasons, really. First, no local GPU required and no 20GB model download - the whole ComfyUI-Runware pack runs on Runware's machines, so a weak laptop handles M3 the same way a 4090 does. Second, it makes text a first-class part of the pipeline. Build a workflow that drafts a prompt, pipes it into an image model, and you've automated the boring part of prompting.

What you actually set

The only required input is messages of type RUNWARE_MESSAGES - that's the conversation history, produced by a companion builder node in the pack. If you see a socket you're not sure how to fill, that's the one. Everything else is optional and sensibly defaulted:

  • settings.systemPrompt - the system-level instruction that steers the model across the whole generation. This is where you put "you are a prompt engineer" style framing.
  • settings.temperature - randomness, 0 to 2, default 1. Lower for deterministic, higher for creative.
  • settings.maxTokens - up to a generous 512,000 (default 128k). Long-form output lives here.
  • settings.topP - nucleus sampling, default 0.95; most people leave it alone.
  • numberResults - 1 to 4, one per seed, if you want variations.
  • toolChoice and the toolChoice.name/toolChoice.type pair - for tool-calling. Turn the toggle on and pick auto, any, tool, or none; tool plus a name forces the model to call a specific tool. If that means nothing to you, ignore it.

The single output is text (a STRING), ready to wire into whatever consumes text next.

How it works

Mechanically this node is identical to its siblings in the pack: it builds a request with the model AIR and taskType and ships it over REST through the Runware SDK, then reads the text back from the response. That's it - no local inference, no tokenizer on your machine. The one genuinely useful extra is that the node's title bar shows cost per run, which matters more here than anywhere, because LLM output is metered by token and it's very easy to generate 10,000 words of something you didn't want. One reddit poster called Runware out on exactly this: it's so fast you can get carried away and forget about the cost. includeUsage adds token counts to the response if you want to keep score.

Installing the pack

ComfyUI Manager is the easy route - search Runware and install. Manual:

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

Restart ComfyUI. There are no models to download; the dependencies (runware-sdk, pillow, soundfile) are light. You do need an API key: paste one into ComfyUI Settings → Runware API key, or set RUNWARE_API_KEY, or run runware auth login once.

Troubleshooting

The failure you'll actually hit is the missing-key error: "No Runware API key. Set RUNWARE_API_KEY or run runware auth login." Fix that first, before touching anything else. If the node returns empty output, check that a messages builder is actually wired in - with no conversation, there's nothing to answer. And if the price is a surprise, remember every run prints its cost on the node, and there's no free tier to lean on.

CategoryRunware/Text/minimax

Inputs (12)

NameTypeDefaultDescription
messagesRUNWARE_MESSAGES
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.maxTokensoptINT1280001–512000Maximum 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.
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