n8n Workflow

Prompt Based Object Detection With Gemini 2 0

This n8n workflow automates tasks and integrates with various services. Prompt Based Object Detection With Gemini 2 0 - ready to import and run in your n8n instance.

n8n workflow.json

About This Script

This n8n workflow automates tasks and integrates with various services. Prompt Based Object Detection With Gemini 2 0 - ready to import and run in your n8n instance.
Features:
  • Makes HTTP requests to external APIs
Source Code
{
    "nodes": [
        {
            "id": "bae5d407-9210-4bd0-99a3-3637ee893065",
            "name": "When clicking \u2018Test workflow\u2019",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -1440,
                -280
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "c5a14c8e-4aeb-4a4e-b202-f88e837b6efb",
            "name": "Get Variables",
            "type": "n8n-nodes-base.set",
            "position": [
                -200,
                -180
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "b455afe0-2311-4d3f-8751-269624d76cf1",
                            "name": "coords",
                            "type": "array",
                            "value": "={{ $json.candidates[0].content.parts[0].text.parseJson() }}"
                        },
                        {
                            "id": "92f09465-9a0b-443c-aa72-6d208e4df39c",
                            "name": "width",
                            "type": "string",
                            "value": "={{ $('Get Image Info').item.json.size.width }}"
                        },
                        {
                            "id": "da98ce2a-4600-46a6-b4cb-159ea515cb50",
                            "name": "height",
                            "type": "string",
                            "value": "={{ $('Get Image Info').item.json.size.height }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.4
        },
        {
            "id": "f24017c9-05bc-4f75-a18c-29efe99bfe0e",
            "name": "Get Test Image",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -1260,
                -280
            ],
            "parameters": {
                "url": "https://www.stonhambarns.co.uk/wp-content/uploads/jennys-ark-petting-zoo-for-website-6.jpg",
                "options": []
            },
            "typeVersion": 4.2
        },
        {
            "id": "c0f6a9f7-ba65-48a3-8752-ce5d80fe33cf",
            "name": "Gemini 2.0 Object Detection",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -680,
                -180
            ],
            "parameters": {
                "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent",
                "method": "POST",
                "options": [],
                "jsonBody": "={{\n{\n  \"contents\": [{\n    \"parts\":[\n        {\"text\": \"I want to see all bounding boxes of rabbits in this image.\"},\n        {\n          \"inline_data\": {\n            \"mime_type\":\"image/jpeg\",\n            \"data\": $input.item.binary.data.data\n          }\n        }\n    ]\n  }],\n  \"generationConfig\": {\n    \"response_mime_type\": \"application/json\",\n    \"response_schema\": {\n      \"type\": \"ARRAY\",\n      \"items\": {\n        \"type\": \"OBJECT\",\n        \"properties\": {\n          \"box_2d\": {\"type\":\"ARRAY\", \"items\": { \"type\": \"NUMBER\" } },\n          \"label\": { \"type\": \"STRING\"}\n        }\n      }\n    }\n  }\n}\n}}",
                "sendBody": true,
                "specifyBody": "json",
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "googlePalmApi"
            },
            "credentials": {
                "googlePalmApi": {
                    "id": "dSxo6ns5wn658r8N",
                    "name": "Google Gemini(PaLM) Api account"
                }
            },
            "typeVersion": 4.2
        },
        {
            "id": "edbc1152-4642-4656-9a3a-308dae42bac6",
            "name": "Scale Normalised Coords",
            "type": "n8n-nodes-base.code",
            "position": [
                -20,
                -180
            ],
            "parameters": {
                "jsCode": "const { coords, width, height } = $input.first().json;\n\nconst scale = 1000;\nconst scaleCoordX = (val) => (val * width) / scale;\nconst scaleCoordY = (val) => (val * height) / scale;\n  \nconst normalisedOutput = coords\n  .filter(coord => coord.box_2d.length === 4)\n  .map(coord => {\n    return {\n      xmin: coord.box_2d[1] ? scaleCoordX(coord.box_2d[1]) : coord.box_2d[1],\n      xmax: coord.box_2d[3] ? scaleCoordX(coord.box_2d[3]) : coord.box_2d[3],\n      ymin: coord.box_2d[0] ? scaleCoordY(coord.box_2d[0]) : coord.box_2d[0],\n      ymax: coord.box_2d[2] ? scaleCoordY(coord.box_2d[2]) : coord.box_2d[2],\n    }\n  });\n\nreturn {\n  json: {\n    coords: normalisedOutput\n  },\n  binary: $('Get Test Image').first().binary\n}"
            },
            "typeVersion": 2
        },
        {
            "id": "e0380611-ac7d-48d8-8eeb-35de35dbe56a",
            "name": "Draw Bounding Boxes",
            "type": "n8n-nodes-base.editImage",
            "position": [
                400,
                -180
            ],
            "parameters": {
                "options": [],
                "operation": "multiStep",
                "operations": {
                    "operations": [
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "endPositionX": "={{ $json.coords[0].xmax }}",
                            "endPositionY": "={{ $json.coords[0].ymax }}",
                            "startPositionX": "={{ $json.coords[0].xmin }}",
                            "startPositionY": "={{ $json.coords[0].ymin }}"
                        },
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "endPositionX": "={{ $json.coords[1].xmax }}",
                            "endPositionY": "={{ $json.coords[1].ymax }}",
                            "startPositionX": "={{ $json.coords[1].xmin }}",
                            "startPositionY": "={{ $json.coords[1].ymin }}"
                        },
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "endPositionX": "={{ $json.coords[2].xmax }}",
                            "endPositionY": "={{ $json.coords[2].ymax }}",
                            "startPositionX": "={{ $json.coords[2].xmin }}",
                            "startPositionY": "={{ $json.coords[2].ymin }}"
                        },
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "endPositionX": "={{ $json.coords[3].xmax }}",
                            "endPositionY": "={{ $json.coords[3].ymax }}",
                            "startPositionX": "={{ $json.coords[3].xmin }}",
                            "startPositionY": "={{ $json.coords[3].ymin }}"
                        },
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "endPositionX": "={{ $json.coords[4].xmax }}",
                            "endPositionY": "={{ $json.coords[4].ymax }}",
                            "startPositionX": "={{ $json.coords[4].xmin }}",
                            "startPositionY": "={{ $json.coords[4].ymin }}"
                        },
                        {
                            "color": "#ff00f277",
                            "operation": "draw",
                            "cornerRadius": "=0",
                            "endPositionX": "={{ $json.coords[5].xmax }}",
                            "endPositionY": "={{ $json.coords[5].ymax }}",
                            "startPositionX": "={{ $json.coords[5].xmin }}",
                            "startPositionY": "={{ $json.coords[5].ymin }}"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "52daac1b-5ba3-4302-b47b-df3f410b40fc",
            "name": "Get Image Info",
            "type": "n8n-nodes-base.editImage",
            "position": [
                -1080,
                -280
            ],
            "parameters": {
                "operation": "information"
            },
            "typeVersion": 1
        },
        {
            "id": "0d2ab96a-3323-472d-82ff-2af5e7d815a1",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                740,
                -460
            ],
            "parameters": {
                "width": 440,
                "height": 380,
                "content": "Configuration note: update with your credentials or endpoint.",
                "color": "#FFF59D"
            },
            "typeVersion": 1
        },
        {
            "id": "c1806400-57da-4ef2-a50d-6ed211d5df29",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1520,
                -480
            ],
            "parameters": {
                "color": "#FFF59D",
                "width": 600,
                "height": 420,
                "content": "Configuration note: update with your credentials or endpoint."
            },
            "typeVersion": 1
        },
        {
            "id": "3ae12a7c-a20f-4087-868e-b118cc09fa9a",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -900,
                -480
            ],
            "parameters": {
                "color": "#FFF59D",
                "width": 560,
                "height": 540,
                "content": "Configuration note: update with your credentials or endpoint."
            },
            "typeVersion": 1
        },
        {
            "id": "35673272-7207-41d1-985e-08032355846e",
            "name": "Sticky Note3",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -320,
                -400
            ],
            "parameters": {
                "color": "#FFF59D",
                "width": 520,
                "height": 440,
                "content": "Configuration note: update with your credentials or endpoint."
            },
            "typeVersion": 1
        },
        {
            "id": "d3d4470d-0fe1-47fd-a892-10a19b6a6ecc",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -660,
                80
            ],
            "parameters": {
                "color": "#FFF59D",
                "width": 340,
                "height": 100,
                "content": "Configuration note: update with your credentials or endpoint."
            },
            "typeVersion": 1
        },
        {
            "id": "5b2c1eff-6329-4d9a-9d3d-3a48fb3bd753",
            "name": "Sticky Note5",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                220,
                -400
            ],
            "parameters": {
                "color": "#FFF59D",
                "width": 500,
                "height": 440,
                "content": "Configuration note: update with your credentials or endpoint."
            },
            "typeVersion": 1
        },
        {
            "id": "965d791b-a183-46b0-b2a6-dd961d630c13",
            "name": "Sticky Note6",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1960,
                -740
            ],
            "parameters": {
                "width": 420,
                "height": 680,
                "content": "Configuration note: update with your credentials or endpoint.",
                "color": "#FFF59D"
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "Get Variables": {
            "main": [
                [
                    {
                        "node": "Scale Normalised Coords",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Image Info": {
            "main": [
                [
                    {
                        "node": "Gemini 2.0 Object Detection",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Test Image": {
            "main": [
                [
                    {
                        "node": "Get Image Info",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Draw Bounding Boxes": {
            "main": [
                []
            ]
        },
        "Scale Normalised Coords": {
            "main": [
                [
                    {
                        "node": "Draw Bounding Boxes",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Gemini 2.0 Object Detection": {
            "main": [
                [
                    {
                        "node": "Get Variables",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \u2018Test workflow\u2019": {
            "main": [
                [
                    {
                        "node": "Get Test Image",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    },
    "n8n_version": "1.5.0"
}
Requirements
n8n instance, API credentials for connected services
Tags
#n8n #automation #workflow
Quick Actions
More in n8n Workflows