Gemini 3.1 Flash
Gemini 3.1 Flash reads images, no GPU needed
- images
- api_config
- result
- request_id
This node is a vision-language model sitting inside your ComfyUI graph. Wire in an image, ask a question, and Gemini 3.1 Flash answers in plain text. No 24GB GPU, no GGUF download, no CLIP loader, no VRAM budget to babysit. It runs in the cloud, which is the whole point.
Gemini 3.1 Flash is the Google model that's fast and cheap enough to be the default for image understanding, and this node is how you get at it from ComfyUI without writing a single line of API code. It's part of the BizyTRD model-service family inside BizyAirPlus, SiliconFlow's cloud-execution pack. Flip the BizyAirPlus switch on, drop in an API key, and the heavy lifting happens on Google's servers instead of your machine.
Why you'd reach for it
The obvious use is captioning and vision Q&A - "describe this frame in detail," "what's wrong with this render," "extract the text on this sign." But it gets more interesting when you pipe the text back into the graph. Let it caption a video frame, then feed that description into a prompt-enrichment node for the next pass. Or use it as a quality gate: have it assess a render and route the result into a condition that decides whether to regenerate. It's the node you reach for whenever a workflow needs to look at an image and turn what it sees into a string.
It also slots neatly into the closed-vs-open-model reality the community has been living with. Veo and Nano Banana are closed; Gemini 3.1 Flash is closed. You're not pretending otherwise - you're renting the eyes for a few cents per call.
How it works
The mechanism is about as simple as it gets. You feed images into the images input, write your user_prompt (the question) and optionally a system_prompt (the role or instructions), and hit queue. The node uploads the image to BizyAir, sends the request to Gemini 3.1 Flash, waits, and hands back two outputs: result (STRING - the model's answer) and request_id (STRING - a trace ID for debugging or usage checks). Everything between queue and result happens on someone else's hardware.
The inputs that actually matter
Most of the knobs are self-explanatory, but a few are worth knowing:
images(IMAGE) - what the model looks at. Feed it from any Load Image node.user_prompt- the question or instruction. This is where 90% of the outcome is decided.system_prompt- set the persona or constraints, e.g. "you are an expert prompt engineer."detail- defaults tolow, and controls accuracy of the image analysis. Keep it low for speed and cost; bump it when you genuinely need the model to squint at fine detail.enable_thinking- off by default. Flip it on if you want reasoning before the answer; it's slower and costs more but can be dramatically better for hard questions.temperature(0–2) andmax_tokens(up to 65536) - standard sampling controls. Leave them alone until you have a reason.
There's also an optional api_config input (type BIZYAIR_OPENAPI_CONFIG) that overrides base_url and api_key for a single request, and a skip_error flag: set it and a failed call outputs an error placeholder instead of killing your whole workflow.
Install and setup
This node ships with the BizyAirPlus pack, so it's a one-time install:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart ComfyUI. (Or search "BizyAirPlus" in ComfyUI Manager.) On startup the pack auto-installs its real engine, the bizyair-cloudberry and bizytrd pip packages, and checks PyPI for updates. There are no model files to download - the model lives in the cloud.
First run: click the BizyAirPlus button in the action bar so it's ON, create an account at bizyair.ai, and enter the API key when prompted (or via Settings > BizyAirPlus > API Key, or the BIZYAIR_API_KEY env var). Then queue as usual.
Common issues
- "API Key is missing" - the switch is on but no key is set. Set it through the prompt or settings before queueing.
- Cloud execution fails - usually a dead key or no network. The detailed error lands in the ComfyUI console; the node itself will just report failure.
- It's slow / costs more than expected - you're paying per call, and
detailand thinking mode both add up. For routine captioning,low+ thinking off is the sensible default.
One honest caveat: BizyAir has a mixed reputation in the community because it auto-installs and phones home to the cloud, which sets off alarm bells in the post-LLMVISION era of ComfyUI security. It's a legit SiliconFlow product and you're only sending the images you explicitly feed it - but keep the switch OFF when you're running pure-local workflows.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Input Picture | |
| system_prompt | STRING | System prompt words | |
| user_prompt | STRING | User prompts | |
| detail | COMBO | low | Accuracy of image analysis |
| temperature | FLOAT | 1.000–2 | Sampling temperature |
| max_tokens | INT | 327681–65536 | Generates the maximum length of the text (Token) |
| enable_thinking | BOOLEAN | false | Start thinking |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| result | STRING | — |
| request_id | STRING | — |