<!-- BusyBot node reference — https://busybot.net/tools/gemini-vision/ -->

> Node: Gemini Vision (`gemini_vision`) · Action (binary) · v1
> Category: AI · Credentials: Google AI (`googleAi`)
> Updated: 2026-08-16

# Gemini Vision

> Analyze images using Google Gemini's vision capabilities.

## Overview

Gemini Vision sends an image together with a text prompt to a Google Gemini model and returns the model's written analysis. The image can come from binary data attached to the incoming item — a download, a file read, an upload — or from a URL you supply. Use it to describe scenes, read text out of screenshots and scans, interpret charts, or classify pictures at scale. The analysis text is written to a configurable field alongside the model name and token usage.

**Category:** AI  
**Tool Name:** `gemini_vision`  
**Version:** 1

**Appearance:** Icon: `gemini` | Color: `#ffffff`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Google AI** credentials.
See the [Credentials Guide](https://busybot.net/credentials/google-ai/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Model | `options` | No | — | The Gemini model to use for vision analysis. Pick a specific version — labels are pinned, not aliased to "latest". The dropdown lists the models currently available for this node; leave it unset to use the default. |
| System Prompt | `string` | No | — | Optional system instruction to set the model's behavior and context for image analysis. Supports expressions. |
| User Message | `string` | No | `Describe this image in detail` | The text prompt to send alongside the image. Describes what analysis to perform. Falls back to item.message or item.prompt when cleared. Supports expressions. |
| Image Source | `options` | No | `binary` | Where to get the image — from binary data in the input item or from a URL. |
| | | | | Options: `binary` (read the image from binary data attached to the input item), `url` (give Gemini an image URL to analyze) |
| Binary Property Name | `string` | No | `data` | The name of the binary property containing the image data. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Image Source is `binary`)_ |
| Image URL | `string` | No | — | URL of the image to analyze. Falls back to item.imageUrl if empty. _(shown when Image Source is `url`)_ |
| Options | `collection` | No | `{}` | Optional generation settings. |
| — Temperature | `number` | No | — | Sampling temperature (0-2). Lower values are more deterministic. |
| — Max Output Tokens | `number` | No | — | Maximum number of tokens to generate in the response. |
| — Response Field Name | `string` | No | `response` | The output field name where the vision analysis text will be stored. |
| Include Input | `boolean` | No | `false` | Whether to include the original input item fields in the output alongside the response. |
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Lower values recommended for vision due to larger payloads. |

## Output Data

One output item per input item. Binary data arriving from upstream is preserved, so the analyzed image stays on the item for later steps.

The output item's JSON contains only the fields below. The input item's JSON is merged in **only** when Include Input is on:

| Field | Description |
|-------|-------------|
| `response` | The model's written analysis of the image. Renamed by **Response Field Name**. |
| `model` | The model that produced the analysis. |
| `usage` | Token usage metadata reported by the model. |

With Image Source set to `binary`, an item that carries no binary data under the configured property name is an item error — it never reaches the model.

Reference the result downstream by expression, e.g. `{{ $json.response }}`.

## Usage Examples

- Describe what is in an uploaded image using Gemini
- Extract text from a document image with Gemini vision
- Classify product photos by category
- Analyze medical or scientific images
- Identify landmarks in photos from URLs

## Example Configuration

Describe the image attached to each item:

```json
{
  "type": "gemini_vision",
  "parameters": {
    "imageSource": "binary",
    "binaryPropertyName": "data",
    "userMessage": "Describe this image in detail"
  }
}
```

Read text out of a scanned page, deterministically:

```json
{
  "type": "gemini_vision",
  "parameters": {
    "imageSource": "binary",
    "binaryPropertyName": "data",
    "systemPrompt": "You are an OCR assistant. Extract all visible text exactly as it appears.",
    "userMessage": "Extract all text from this image. Preserve formatting where possible.",
    "maxConcurrency": 5,
    "options": {
      "temperature": 0,
      "responseFieldName": "extractedText"
    }
  }
}
```

Analyze a remotely hosted image and keep the source fields:

```json
{
  "type": "gemini_vision",
  "parameters": {
    "imageSource": "url",
    "imageUrl": "{{ $json.photoUrl }}",
    "systemPrompt": "You are a product cataloging assistant. Extract structured attributes from product images.",
    "userMessage": "List the product name, color, and any visible text or labels.",
    "includeInput": true,
    "maxConcurrency": 3,
    "options": {
      "temperature": 0.2,
      "maxOutputTokens": 1024,
      "responseFieldName": "productAttributes"
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Gemini Vision analyzes images by sending binary data or URL references alongside a text prompt to the Google Gemini generateContent API using Gemini 2.0 Flash or Pro models. Use this tool when a workflow requires visual understanding of image content, such as extracting text, describing scenes, classifying objects, or answering questions about uploaded images. It returns a response text field containing the model analysis, along with the model name and usage metadata on the main output.