Gemini 3.5 Flash
The one that searches the web and answers in JSON
- messages
- images
- text
Gemini 3.5 Flash is the newest, most feature-packed text node in the pack, and the two features that earn it a place in serious workflows are in its name and its settings: web search grounding and structured JSON output. This is the model you pick when an LLM in your graph needs to be right about the real world - current events, product info, anything that changes - instead of hallucinating from training data. Flip providerSettings.google.search on and the model grounds its answer in live web results.
The second killer feature is outputFormat: JSON. For automation, a plain-text reply you have to parse is friction; a JSON reply with a jsonSchema in advanced_json is a contract. That combination - grounded, structured, machine-readable output - is what makes this node the natural endpoint for building real pipelines instead of toy demos.
What you set
messages(required) - from the Runware Messages builder:role+content, chained for multi-turn.images- optional IMAGE input for vision tasks.providerSettings.google.search- live web search grounding, off by default. Costs extra tokens; worth it when recency matters.providerSettings.google.searchLatitude/searchLongitude- gated; location-biased search for "near me"-style queries.outputFormat-TEXTorJSON. Pick JSON and pair it withjsonSchemainadvanced_json.settings.thinkingLevel-off/minimal/low/medium/high(the only text node that lets you turn thinking off entirely).providerSettings.google.thoughtSignature- pass the encrypted reasoning context from a previous response to keep multi-turn reasoning continuity.settings.frequencyPenalty/presencePenalty(-2 to 2) - token-level variety controls.providerSettings.google.mediaResolution- token budget for images/video frames.settings.maxTokens- up to 65535, default 65535.includeUsagefor token stats.
Output is text (STRING). advanced_json covers audios/documents/videos inputs, stop sequences, jsonSchema, and tools.
How it works
Standard pack machinery: taskType: textInference over REST via the Runware SDK. The grounding and JSON features are request-level flags that Runware forwards to the model. Web-grounded runs pull live context before answering - that's the extra cost and the extra correctness. The thoughtSignature field is the interesting one for multi-turn work: feed a previous response's signature back in and the model keeps its reasoning thread across calls instead of starting fresh.
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
A grounded run that's slow or pricey is normal - search tokens add up; if you don't need recency, turn search off. JSON mode misbehaving? Validate your jsonSchema locally first; a malformed schema produces flaky output and the node won't tell you why. Thinking continuity not working across calls? Check you're actually passing the thoughtSignature through from the previous result. And if all you need is cheap chat, the older Gemini 3 Flash is still there.
Inputs (24)
| 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.frequencyPenaltyopt | FLOAT | 0.00-2–2 | Penalizes tokens based on their frequency in the output so far. A value of 0.0 disables the penalty. |
| settings.maxTokensopt | INT | 655351–65535 | Maximum number of tokens to generate in the response. |
| providerSettings.google.mediaResolutionopt | COMBO | (default) | Controls the token budget allocated to images and video frames. Higher values preserve more detail at the cost of additional tokens. |
| settings.presencePenaltyopt | FLOAT | 0.00-2–2 | Encourages the model to introduce new topics. A value of 0.0 disables the penalty. |
| providerSettings.google.searchopt | BOOLEAN | false | Enable live web search grounding to incorporate real-world, up-to-date information into image generation. |
| providerSettings.google.searchLatitudeopt | BOOLEAN | false | Enable to set providerSettings.google.searchLatitude. Off uses the model's default. |
| providerSettings.google.searchLatitude_valueopt | FLOAT | -90.00-90–90 | Latitude for location-biased Google Search grounding. |
| providerSettings.google.searchLongitudeopt | BOOLEAN | false | Enable to set providerSettings.google.searchLongitude. Off uses the model's default. |
| providerSettings.google.searchLongitude_valueopt | FLOAT | -180.00-180–180 | Longitude for location-biased Google Search grounding. |
| 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. |
| providerSettings.google.thoughtSignatureopt | STRING | Encrypted reasoning context returned from a previous response. Pass it back to maintain multi-turn reasoning continuity. | |
| 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 | — |