# Helper - captioning images

**URL:** https://meta.discourse.org/t/helper-captioning-images/336100
**Category:** Site Management
**Tags:** how-to, ai, ai-captions
**Created:** [November 14, 2024, 9:31am UTC](https://meta.discourse.org/t/helper-captioning-images/336100 "2024-11-14T09:31:36Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [November 14, 2024, 9:31am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/1 "2024-11-14T09:31:37Z")

</div>

> 🔖 This guide explains how to enable and configure AI powered image captions, which is part of the [Helper](https://meta.discourse.org/t/discourse-ai-helper/283943) feature of [Discourse AI](https://meta.discourse.org/t/discourse-ai/259214) plugin.
> 
> 🙋 Required user level: Administrator

Image captioning allows users to harness AI to caption any uploaded image, providing detailed descriptions. Users can manually trigger captioning by clicking the `Caption with AI` button that appears on images in the composer.

## Features

- Manual `Caption with AI` button on images in the composer
- Editable caption with “(Captioned by AI)” attribution

## Enabling Image Caption

### Prerequisites

You must configure at least _one_ vision-powered Large Language Model (LLM) from a provider.

To get started you can configure them through the [Discourse AI - Large Language Model (LLM) settings page](https://meta.discourse.org/t/discourse-ai-large-language-model-llm-settings-page/319903).

- [OpenAI](https://meta.discourse.org/t/discourse-ai-openai-configure-api-keys/280783)
- [Anthropic](https://meta.discourse.org/t/discourse-ai-anthropic-configure-api-key/280936)
- [Azure OpenAI](https://meta.discourse.org/t/discourse-ai-azure-openai-configure-api-keys/282442)
- AWS Bedrock with Anthropic access
- HuggingFace Endpoints with Llama2-like model
- [Self-Hosting an OpenSource LLM](https://meta.discourse.org/t/self-hosting-an-opensource-llm-for-discourseai/290923)
- [Google Gemini](https://meta.discourse.org/t/configure-api-keys-for-google-gemini/289556)
- Cohere

### Configuration

1. Go to Admin → Plugins
2. Search for `discourse-ai` and ensure it’s enabled
3. Ensure the Helper feature is enabled by checking `ai helper enabled`
4. In `ai helper enabled features` ensure `image_caption` is added — note that it is **not** included by default
5. Select the agent at `ai helper image caption agent`
6. Ensure the desired user groups are included in `composer ai helper allowed groups` so they can use the caption button

## Technical FAQs

**Why is the caption description not matching the image?**

- This depends on the vision-powered LLM and the image itself. More powerful LLMs _might_ be able to better describe the picture but that is dependendent on the model. Picture fidelity and the subject of the picture are also important factors to consider in caption output.

> Last edited by @sam 2026-03-20T06:03:12Z
> 
> > **Check document**
> >
> > Perform check on document:

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [November 14, 2024, 9:56am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/2 "2024-11-14T09:56:52Z")

</div>

When an image is uploaded, a short summary (about 1 sentence) is given. I assume that is generated by AI and will incur costs?

---

<div class="post-metadata">

### Author: ![Saif](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saif/32/318253_2.png) [@Saif](https://meta.discourse.org/u/Saif)
#### Post date: [November 14, 2024, 10:14am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/3 "2024-11-14T10:14:34Z")

</div>

> [@NateDhaliwal](#):
>
> When an image is uploaded, a short summary (about 1 sentence) is given. I assume that is generated by AI and will incur costs?

Yes you would incur a cost and that would depend on the provider

---

<div class="post-metadata">

### Author: ![Saif](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saif/32/318253_2.png) [@Saif](https://meta.discourse.org/u/Saif)
#### Post date: [November 14, 2024, 4:33pm UTC](https://meta.discourse.org/t/helper-captioning-images/336100/4 "2024-11-14T16:33:30Z")

</div>

@NateDhaliwal, this should help give you some rough estimates.

> [@Estimating costs of using LLMs for Discourse AI](https://meta.discourse.org/t/estimating-costs-of-using-llms-for-discourse-ai/307243/4):
>
> Estimated costs for a month of Image Captions in Meta
> 
> - 1019 calls
> - 55M request tokens
> - 34K response tokens
> 
> Which would cost, depending on the LLM:
> 
> - Claude Haiku 3: $13.86
> - GPT-4o Mini: $8.31
> - Gemini 1.5 Flash 8B: $2.07

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [November 15, 2024, 1:06am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/5 "2024-11-15T01:06:47Z")

</div>

Right, thanks!

---

<div class="post-metadata">

### Author: ![cultiv](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cultiv/32/483312_2.png) [@cultiv](https://meta.discourse.org/u/cultiv)
#### Post date: [March 5, 2025, 10:19am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/6 "2025-03-05T10:19:07Z")

</div>

One very important instruction is missing here, took me a long time to figure it out:

The list of `AI helper enabled features` does not by default include “Image caption”, so I had to add that one specifically:

 ![The image shows a screenshot of a black interface with an input field containing the text "image_caption" with red underlines and a search bar labeled “image_caption” (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/4/f/a/4fad61f0f153565339dab2725fe181f5c0df6b95.png)

---

<div class="post-metadata">

### Author: ![cultiv](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cultiv/32/483312_2.png) [@cultiv](https://meta.discourse.org/u/cultiv)
#### Post date: [April 13, 2025, 11:42am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/7 "2025-04-13T11:42:25Z")

</div>

Found (and fixed) one more problem: if you set “AI auto image caption allowed groups” to the “everyone” group it will not automatically caption anything for anyone (regardless of the user’s setting) I had to explicitly set it to include all trust levels.

![The image shows a screen displaying options for enabling AI auto image captioning, allowing users to toggle trust levels for this feature. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/6/7/a/67a6fb445948d462806192e58bc91cc5e3834bc2.png)

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [April 13, 2025, 11:49am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/8 "2025-04-13T11:49:36Z")

</div>

`Everyone` is a bit problematic, because it isn’t real group, amd it includes anons, who can’t write and upload anything.

But on my forum `trust_level_0` works just fine including everybody who are logged in.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [August 8, 2025, 5:31am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/9 "2025-08-08T05:31:51Z")

</div>

I think the op needs an update  
[https://github.com/discourse/discourse/pull/33794](https://github.com/discourse/discourse/pull/33794)

---

<div class="post-metadata">

### Author: ![loginerror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/loginerror/32/156605_2.png) [@loginerror](https://meta.discourse.org/u/loginerror)
#### Post date: [September 2, 2025, 11:07am UTC](https://meta.discourse.org/t/helper-captioning-images/336100/10 "2025-09-02T11:07:39Z")

</div>

I really liked it ☹

I was confused why it stopped working, but now I at least know why.
