Gemini 3.1 Flash Lite
The cheapest LLM in the graph
- messages
- images
- text
Gemini 3.1 Flash Lite is the "Lite" in Google's Gemini lineup, and in the Runware pack that means one thing: the cheapest text node on the menu. It's the model you wire in when the job is high-volume and low-stakes - batch captioning, tag normalization, prompt cleanup, routing decisions - and you'd rather not pay Pro prices for work a small model can do. The Lite suffix is doing honest work here: it's smaller, faster, and cheaper, and it shows on genuinely hard reasoning.
The honest take: don't give it your hardest task. Where Gemini 3.1 Pro earns its higher price tag on complex multi-step reasoning, Flash Lite shines at the mechanical stuff your workflow does a hundred times - and for that, it's genuinely the right node. Pair it with a clear settings.systemPrompt that pins down the output format and it'll surprise you with how much of the grunt work it handles.
What you set
messages(required) - the conversation from the Runware Messages builder:role+contentpairs, chained for multi-turn.images- optional IMAGE input for vision tasks like captioning frames.settings.systemPrompt- the format contract. This matters more on Lite than on any bigger sibling; the small model leans on instructions.settings.maxTokens- up to 65536, default 4096.settings.temperature(0–2, default 1) andsettings.topP(0.95).settings.thinkingLevel-minimal/low/medium/high. Keep it low for speed.toolChoice- gated tool-calling for structured automation.includeUsage- token stats in the response, useful when you're cost-tracking.
Output is text, a STRING. advanced_json covers extra inputs (audio/document/video), stop sequences, and tools.
How it works
Standard pack machinery: taskType: textInference over REST through the Runware SDK, reply back as a string. Cost prints on the title bar, which is where Lite's reason for existing becomes obvious - the per-call price is the lowest in the text family. Each call is independent, so state lives in the Messages chain you feed it. One practical pattern: use Lite as a prompt preprocessor - clean up a user's messy input, hand the result to a bigger model or a sampler downstream, and let the cheap node absorb the grunt work.
Installing
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No model downloads; deps are runware-sdk, pillow, soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Troubleshooting
Format drift is the Lite failure mode - it'll occasionally wander off-schema. The fix is a stricter systemPrompt and a shorter maxTokens; give it room to improvise and it will. If answers are flat-out wrong on reasoning-heavy tasks, that's the model's ceiling, not a bug - escalate to Gemini 3.1 Pro. And if you need live web grounding or JSON output, that's Gemini 3.5 Flash's territory.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| messages | RUNWARE_MESSAGES | — | |
| imagesopt | IMAGE | — | |
| seedopt | INT | 00–4294967295 | 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–65536 | 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 | high | 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: inputs.audios, inputs.documents, inputs.videos, settings.stopSequences, jsonSchema, tools |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |