---
title: "Image caption written by Gemini and drawn onto the picture"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/b909d265-61f8-4e68-a255-f35588a085ea"
updated: "2026-11-12"
---

# Image caption written by Gemini and drawn onto the picture

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow you start by hand: it downloads a sample photo, and Google Gemini writes a punny title and a caption for it. The Edit Image node then draws both in a dark band along the bottom.

Image caption written by Gemini and drawn onto the picture is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow puts an AI-written caption on a picture. A manual trigger starts it, and an HTTP request downloads a sample photo. Google Gemini looks at a smaller copy and answers with a punny title and a caption. A Code node works out where the words fit, and the Edit Image node draws a dark band along the bottom with the text in white. Eleven nodes do the work, beside five sticky notes that explain the steps.

### Who it suits

Editors, social media teams and developers who want a first caption and a text overlay without leaving n8n. Skip it if the design matters. The band is a plain dark box, the font is set in the file, and the workflow is built around one picture at a time.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Publishing | Picture editors | Get a first caption drawn on each photo before a person polishes it | An editor opens a warehouse photo that already carries a title and a caption. |
| Social media | Community managers | Turn a plain photo into a captioned post image | A manager posts a picture with a pun and a line of context across the bottom. |
| E-commerce | Catalog teams | Add a short description to product and stock photos | A team labels a photo of a loaded pallet with a plain caption. |
| Development | Automation builders | Swap the sample download for a form or a webhook that receives a file | A builder sends photos through an upload form and finds the captioned copy in the run’s output. |

You need a little n8n: import a file, add a Google Gemini credential and press a button. Edit Image also needs a font file, which the setup steps cover.

### Where to use it

Any n8n that can reach Google’s Gemini API and has GraphicsMagick for the Edit Image node will run it. The finished picture stays in the run until you add a node that sends it on.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps, with a font file that exists on the machine
- A form or a webhook: replace the sample download to caption pictures people send
- Drive, Slack or email: add a node after the last step to send the picture on

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. One Google Gemini key covers it.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own. The Edit Image node runs on GraphicsMagick, which n8n’s own Docker image includes |
| Google Gemini | An API key from Google AI Studio, saved in a Google Gemini credential |
| A picture | The file downloads a sample photo, so you need none for the first run |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Google Gemini credential with your API key and select it in `Google Gemini Chat Model`.
3. Check the model in that node. The file uses `models/gemini-3.6-flash`. Pick another from the list if Google has retired it.
4. Open `Apply Caption to Image` and look at the Font field of its text step. The file points to an Arial file that n8n’s own Docker image holds. On a machine without that file, pick a font from the node’s list.
5. Press Execute workflow and open the last node’s output. The captioned picture is on its Binary tab.
6. To caption your own pictures, replace `Get Image` with a node that returns a file in a field named `data`.

### How to use it

Press Execute workflow. The sample photo is downloaded, a smaller copy goes to Gemini, and the answer comes back as `caption_title` and `caption_text`. The last node returns the original picture with the title in quotes and the caption drawn over a dark band at the bottom.

What to change for a different result

| To change | Where |
| --- | --- |
| The picture | The address in \`Get Image\`, or a node of yours that returns a file in \`data\` |
| The caption’s style | The system message in \`Image Captioning Agent\`, which asks for a punny title and a caption built from who, when, where and context |
| The fields Gemini returns | The example JSON in \`Structured Output Parser\` |
| The model | \`modelName\` in \`Google Gemini Chat Model\` |
| The band and the text | The draw and text steps in \`Apply Caption to Image\`, and the calculations in \`Calculate Positioning\` |

### Example

The sample photo shows a forklift driver in a warehouse, carrying a pallet of beer cans.

Gemini answers with a pun for the title and a sentence about the driver, the place and what is being moved. The Edit Image node draws that text in white on a dark band across the bottom of the photo. The finished picture is in the last node’s output.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here the line splits after the download. One branch asks Gemini for a caption and the other measures the picture. Two Merge nodes bring the results together before the drawing. Run it once and click each node to see its output.

**For experts.** The picture goes to Gemini as an Image (Binary) human message in a Basic LLM Chain, so no base64 text is built by hand.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Resize For AI\` | Edit Image resize to 512 by 512 with its default option | The default keeps the shape and caps the area, so the copy is smaller but not squashed. The original goes on untouched |
| \`Image Captioning Agent\` | Basic LLM Chain 1.4 with the picture as an Image (Binary) human message | A structured parser makes the answer two fields, \`caption\_title\` and \`caption\_text\` |
| \`Calculate Positioning\` | Code, run once for each item | Font size is the picture’s height divided by 35, and the band’s height comes from a rough count of text lines |
| \`Apply Caption to Image\` | Edit Image multi step: a draw step, then a text step | The band is black at a little over half opacity, and the font is a path on the machine that runs n8n |

### Good to know

The original copy named a model Google no longer lists, and the text drawing depends on a font file.

- Model: the original copy named a Gemini 1.5 model. Google’s models and deprecations pages, read on 12 November 2026, no longer list any 1.5 model. Mindket’s copy uses \`models/gemini-3.6-flash\`, which the models page lists as available with image input
- Font: \`Apply Caption to Image\` points at an Arial file in n8n’s own Docker image. Elsewhere that path may not exist, so pick a font from the node’s list
- One picture a run: the two Merge nodes join by position, so send one picture through at a time
- Long captions: the band’s height comes from a rough line count, so an extra long caption can run past it
- Sample picture: it comes from a stock photo site, and one sticky note shows an example picture loaded from an outside address
- Billing: Google bills the Gemini call to your key under your plan
- Your data: a smaller copy of each picture goes to Google
- Credentials: the JSON holds none

## README

```markdown
# Image caption written by Gemini and drawn onto the picture

An n8n workflow you start by hand. It downloads a sample photo and sends a smaller copy to Google Gemini, which writes a
punny title and a caption. The Edit Image node then draws both in white on a dark band along the bottom of the picture.

## What is inside

- `workflow.json`: the workflow as n8n exports it, sixteen nodes. Eleven do the work and five are sticky notes that
  explain the steps. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The chat model named a Gemini 1.5 model. Google's models and deprecations pages, read on 12 November 2026, no longer
  list any 1.5 model, so Mindket's copy uses `models/gemini-3.6-flash`, which the models page lists as available with
  image input.
- The model node was linked to a credential in its author's n8n. The link is gone, so select your own.
- The file had no settings block, so Mindket's copy adds `executionOrder` v1, the setting n8n gives a new workflow.
- Nothing else. The prompt, the nodes, the sticky notes and the sample photo's address are the file's own.

## Before you start

- An n8n instance, on n8n Cloud or your own server. The Edit Image node runs on GraphicsMagick, which n8n's own Docker
  image includes.
- A Google Gemini API key, from Google AI Studio, for a Google Gemini credential.
- A font file the Edit Image node can read. The steps below say how to pick one.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Google Gemini credential with your API key and select it in `Google Gemini Chat Model`.
3. Check the model in that node. The file uses `models/gemini-3.6-flash`. Pick another from the list if Google has
   retired it.
4. Open `Apply Caption to Image` and look at the Font field of its text step. The file points to an Arial file that
   n8n's own Docker image holds. On a machine without that file, pick a font from the node's list.
5. Press Execute workflow. Open the last node's output and look at the picture on its Binary tab.
6. To caption your own pictures, replace `Get Image` with a node that returns a file in a field named `data`.

## How a run goes

1. The manual trigger starts the run when you press Execute workflow.
2. `Get Image` (HTTP Request 4.2) downloads a 600 pixel wide sample photo from a stock photo site.
3. The picture goes down two branches. `Resize For AI` makes a smaller copy for the model, and `Get Info` reads the
   original's width and height.
4. `Image Captioning Agent` (Basic LLM Chain 1.4) sends the smaller copy to `Google Gemini Chat Model` as an Image
   (Binary) human message. Its system message asks for a caption built from who, when, where and context, and a punny
   title. `Structured Output Parser` makes the answer two fields, `caption_title` and `caption_text`.
5. `Merge Image & Caption` joins the size and the caption by position.
6. `Calculate Positioning` (Code, run once for each item) works out the font size, the line length and where the band
   and the text go. `Merge Caption & Positions` brings those numbers together with the caption.
7. `Apply Caption to Image` (Edit Image, multi step) draws a dark rectangle and then the caption in white Arial. The
   finished picture is in the field `data` of its output.

## Change the look

- Picture: the address in `Get Image`, or a node of yours that returns a file in `data`.
- Caption style: the system message in `Image Captioning Agent`.
- Fields Gemini returns: the example JSON in `Structured Output Parser`. `Calculate Positioning` and the text step read
  `caption_title` and `caption_text`, so rename them there too.
- Model: `modelName` in `Google Gemini Chat Model`.
- Band and text: the colour, font and size in `Apply Caption to Image`, and the numbers in `Calculate Positioning`.
- Where the picture goes: add a node after `Apply Caption to Image`, such as Google Drive, Slack or Gmail.

## Good to know

- The band's height comes from a rough count of text lines, so an extra long caption can run past it.
- The two Merge nodes join by position, so send one picture through at a time.
- The font path in the file exists in n8n's own Docker image. Elsewhere the node may find no file there, so pick a font
  from its list.
- The sample photo comes from a stock photo site, and one sticky note shows an example picture loaded from an outside
  address.
- Google bills the Gemini call to your key under your plan.
- A smaller copy of each picture goes to Google.
- The file holds no credential and no key.
```

## What is in it

3 files, 17 KB, downloaded as a zip.

```text
NOTICE.md  612 B
README.md  4 KB
workflow.json  12 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 9 steps, starting by hand
- AI: 1 step calls an AI model: Image Captioning Agent
- Sign-ins: Signs in to: Google Gemini
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads 5 of its 6 step types. It does not read: Edit Image

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/b909d265-61f8-4e68-a255-f35588a085ea)
- [Its page on Mindket](https://mindket.com/p/b909d265-61f8-4e68-a255-f35588a085ea)
