Google Gemini 3.6 Flash (Official Edition)
Gemini 3.6 Flash VLM — the vision node that can swallow 3,000 images and return structured JSON
- images
- api_config
- result
- request_id
Read the images tooltip on this node and stop for a second: up to 3,000 images per request, PNG/JPEG/WebP/HEIC/HEIF, 7 MB per inline image. That's not a captioning node - that's a batch-vision node. Hosted Gemini 3.6 Flash, billed through your BizyAir key, and it's the newest vision entry in the pack. Combined with response_mime_type and response_schema for structured output, this is the node you'd build a whole auto-captioning or batch-quality-report pipeline around.
The use case that makes this interesting is the one the older vision nodes can't do well: analyzing a collection. Caption an entire dataset folder in one call. Look at ten reference frames and ask which ones violate the style guide. Get back a JSON array of per-image verdicts instead of a wall of prose you then have to parse.
Inputs and outputs
- images - required, up to 3,000 (7 MB per inline image, 30 MB per Cloud Storage image). Note this one is typed
IMAGE, not autogrow - but the hosted limit is what matters, and it's enormous. - prompt - required. Up to 1,048,576 input tokens.
- system_instruction - optional.
- stop_sequences - optional, up to 5.
- response_mime_type - combo, default
text/plain. Set toapplication/jsonfor structured answers. - response_schema - optional JSON schema, only effective when the mime type is
application/json. - seed - default 0 (-1 = random).
- max_output_tokens - default 8192, up to 65,536.
Outputs: result (STRING) and request_id.
How it works
Images and text serialize up to the gemini-3.6-flash-official/vision endpoint, the cloud analyzes, and the text returns via standard polling. The key comes from BizyAirPlus settings or BIZYAIR_API_KEY; api_config overrides per request. With skip_error on, a failure returns the error text as the result rather than killing the workflow.
The honest take
Two practical notes. First, the structured-output pairing matters even more here than on the LLM version: asking for a JSON verdict per image is the difference between "the model said the batch is mostly fine" and "image 4 fails the spec, image 7 passes" - and the schema is the thing that enforces the shape. Second, mind the 7 MB per-image cap: for large source files, downscale or re-encode before wiring them in, or you'll get rejected before the model ever sees them. The 3,000-image ceiling is generous enough that the practical limit is almost always your upload time and your credit balance, not the model.
Install
With the pack:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart ComfyUI, confirm BizyAirPlus is ON and keyed, and point it at a folder of images with a JSON schema in hand. It's the closest thing this pack has to a batch quality inspector, and it's worth the credits for that job alone.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Up to 3,000 images per request (PNG/JPEG/WebP/HEIC/HEIF, max 7MB per inline image, 30MB per Cloud Storage image). | |
| prompt | STRING | User's text prompt describing what to do with the image(s). Supports up to 1,048,576 input tokens. | |
| system_instructionopt | STRING | Optional system instruction to guide model behavior. Default: empty. | |
| stop_sequencesopt | STRING | Up to 5 string sequences that stop generation. Default: empty. | |
| response_schemaopt | STRING | Optional JSON schema for structured output (only valid when response_mime_type=application/json). Default: empty. | |
| response_mime_typeopt | COMBO | text/plain | Output format of the generated text. Default: text/plain. |
| seedopt | INT | 0-1–2147483647 | Random seed for reproducible generation (-1 = random). |
| max_output_tokensopt | INT | 81921–65536 | Maximum number of tokens to generate (1-65,536). Default: 8192. |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| result | STRING | — |
| request_id | STRING | — |