Nodes/PromptModels Studio/Gemini Chat V3 (PMS)
ComfyUI Node

Gemini Chat V3 (PMS)

The one to use when you're building fresh

By cdanielp·Created 9 months ago·Updated 2 months ago· 28
Gemini Chat V3 (PMS)
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • text
promptDescribe esta imagen en detalle.
modelgemini-3.1-pro-preview
thinking_budgetOff
system_prompt
custom_model
temperature0.70
max_tokens4096
api_key

If you've seen PMS_GeminiChat and wondered why there's a "V3" - this is the answer. The plain Gemini Chat node is a deprecated compatibility alias, kept around so old workflows don't explode. This one is the maintained version, shipped in the pack's v3 core and actually in the active node list. Same idea, same generateContent backend, fewer asterisks.

What it does: talk to Gemini over plain REST and return text, with up to five images attached for vision, an optional system prompt, and a thinking knob that actually does something. No local model, no VRAM, no SDKs. Cost is whatever Gemini bills you per token, so a GEMINI_API_KEY is non-negotiable.

The inputs that matter

  • prompt - your message. Multiline, so structure it like you'd write to an assistant.
  • model - defaults to gemini-3.1-pro-preview, with flash variants in the combo for cheaper, faster runs.
  • custom_model - the V3 exclusive: type any model ID here and it overrides the combo. Handy when Gemini releases something before this pack updates its dropdown.
  • thinking_budget - Off / Low / Medium / High. On Gemini 3.x it maps to thinkingLevel, on 2.5 to thinkingBudget. The tooltip says it plainly: Off means no thinking. Leave it Off for quick jobs, crank it for analysis.
  • system_prompt - now a first-class input at the top of the node (in the legacy alias it was buried in optional). Empty = no system instruction.
  • image_1 … image_5 - optional IMAGE tensors. Attached as base64 JPEG parts.
  • temperature / max_tokens - creativity and length. max_tokens to 65,536.

Single text output. Wire it to a display node or anywhere a STRING flows.

V3 vs the legacy Gemini Chat

The internals are nearly identical - the V3 node was rebuilt on the pack's new core REST client, which is where the 429 exponential backoff lives. The meaningful differences are the custom_model override, the more visible system_prompt, and the fact that this node isn't flagged deprecated. If you're starting a workflow today, use this one. If you're loading an old workflow that references PMS_GeminiChat, both will still run; you're just on the legacy path.

Installing it

ComfyUI Manager, search "COMFYUI_PROMPTMODELS", install, restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/cdanielp/COMFYUI_PROMPTMODELS

Add to the pack's .env:

GEMINI_API_KEY=AI...

Restart ComfyUI. Requires ComfyUI >= 0.26.0 and Python >= 3.10; dependencies are just requests and Pillow.

The usual traps

Key hygiene first: put the key in .env, not in the node's api_key field - the field value ends up in your workflow JSON and in saved PNG metadata. Blank field, .env key, done.

Second, remember what it isn't: a local model. If your graph runs offline or you're budget-sensitive, this node is a per-call bill, and "thinking on High" multiplies that bill. It's great for prompt engineering, captioning, and analysis inside a graph; it's the wrong tool when a local model does the job free.

CategoryPromptModels/Google

Inputs (13)

NameTypeDefaultDescription
promptSTRINGDescribe esta imagen en detalle.
modelCOMBOgemini-3.1-pro-preview4 options: gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-pro, gemini-2.5-flash
thinking_budgetCOMBOOffOff = sin thinking. Gemini 3+: thinkingLevel. Gemini 2.5: thinkingBudget.
system_promptoptSTRINGInstrucción de sistema. Vacío = sin system.
custom_modeloptSTRINGSobreescribe el combo si no está vacío.
image_1optIMAGEImagen 1 (multimodal).
image_2optIMAGEImagen 2 (opcional).
image_3optIMAGEImagen 3 (opcional).
image_4optIMAGEImagen 4 (opcional).
image_5optIMAGEImagen 5 (opcional).
temperatureoptFLOAT0.700–2
max_tokensoptINT409664–65536
api_keyoptSTRING

Outputs (1)

NameTypeDescription
textSTRING