Image caption generator

Describe each picture in a sentence or a paragraph. Drop one picture or a whole folder, choose how long the captions should be, edit them, and save them as .txt files (one per picture) or as one CSV.

📝 Drop pictures here (one or many), paste one, or click to choose

How to write captions for your pictures

  1. Add your pictures. Drop them anywhere on the page, paste one, or click the box and choose files. JPEG, PNG, WebP and iPhone HEIC photos work.
  2. Pick a caption length. Detailed is the default. You can change it at any time after the captions are written, because every picture gets all three lengths in one go.
  3. Press the button. The first time, the page downloads the caption model (see below). Then each picture is read and described.
  4. Read and fix the captions. Every caption is a text box you can edit. Copy puts one on your clipboard.
  5. Save them. Download .txt files (ZIP) gives one file per picture with the picture's name, so cat.jpg gets cat.txt. Download as CSV gives one spreadsheet with the file name and the caption.

The three lengths

Here is one picture of ours, a hamburger on a black background, captioned on the processor:

LengthWhat it wrote
ShortA hamburger with lettuce on top of it on a black background.
DetailedA hamburger with lettuce on top of it, sitting on a plate. The hamburger is a classic hamburger patty, with a golden-brown bun, lettuce, and a juicy patty. The plate is a light wood color, and there is a watermark in the bottom right corner of the image.
Very detailedA photograph of a hamburger. The hamburger is in the center of the image and is placed on a black background. It has a round bun with a golden brown crust and a layer of lettuce on top. The lettuce is a bright green color and appears to be wilted.

The short caption is right. The detailed one invents a plate and a watermark: there is neither in the picture. That is the pattern to expect, and the next section has the numbers. (The first words of the longer captions, "The image shows" and "The image is", were taken off by the page, as described under Wording below.)

How good are the captions?

We tried eight pictures: a mountain with a town, two cats, a dog, a cartoon teacher, a hamburger, an aerial view of snowy peaks and a cup of coffee, and checked every caption against its picture. The short caption named the main subject correctly in all eight; one of them also gave the coffee cup a "baseball design" that is really latte art. Of the detailed captions written on the graphics chip, four contained a detail that is not in the picture: a slice of cheese on a plain burger, text at the bottom of a picture with no text, a fence where there were bare branches, and papers lying around a coffee cup where there was one sugar packet. The very detailed captions written on the processor added more of the same: a tabby cat with green eyes and a closed mouth was described as having dark eyes and a mouth "slightly open, as if it is about to pounce", and one sentence repeated itself ("jagged and jagged"). The two ways of running can word the same picture differently, because their arithmetic is not identical.

So treat the result as a first draft written by someone who looked at the picture for a moment:

  • The main subject, the colors and the scene are usually right.
  • Small details are often wrong or invented, and the longer the caption, the more of them there are.
  • It does not count well, read text reliably or name people or places. For text in a picture use Image to Text.
  • It is English only.

Read each caption against its picture before you use it, especially for training. A wrong detail in a training caption teaches the model the wrong thing.

Wording options

  • Leave out openings like "The image shows". On by default. The model often starts with "The image shows a cat" or "The image is a close-up of a cat". The page takes that opening off the first sentence and capitalizes what is left ("A cat…"). It says nothing about the picture, and for alt text the guidance from the W3C is that there is usually no need to include words like "image" or "picture", since screen readers already announce an image. Untick the box to see the model's own words.
  • Start every caption with. Type a word or phrase and it goes at the front of every caption that you have not edited by hand: a trigger word for a training run, a subject name or a style tag. If your text ends with a comma, the first letter of the caption is lowered, so ohwx woman, gives "ohwx woman, a white cat…".

Your own edits are kept for each length. If you rewrite a Short caption, switch to Detailed and come back, your rewrite is still there.

Captions for training a model

Newer image models such as Flux and Stable Diffusion 3 are usually trained with full-sentence captions, and many anime-style models with tag lists. Our guides explain the choice: tags or sentences, how to caption a LoRA dataset and the caption .txt file format. Short version: put each caption in a .txt file with the same name as its picture, which is what this page's ZIP does. This page writes sentences. For tags, use the batch WD14 tagger, and for a mix of both, tag first and add the sentence in front.

Speed, the model and the download

The captions come from Florence-2 base, a model made by Microsoft with 0.23 billion parameters and an MIT license. It runs in this tab, through transformers.js (Apache-2.0) and ONNX Runtime. The model files come from Hugging Face at a pinned version, and your browser keeps them, so the download happens once.

Graphics chip (WebGPU)Processor
Download, onceabout 343 MBabout 265 MB
Time for one picture, all three lengthsabout 2 to 3 secondsabout 20 seconds

Those times are from an Apple M1 Max laptop that was busy with other work, in Chrome. The page uses your graphics chip when the browser offers it (current Chrome and Edge do on most computers) and otherwise your processor. If the graphics chip fails halfway, the page switches to the processor by itself and says so. A slower computer takes longer, and a folder of 100 pictures on the processor is a job of half an hour: leave the tab open. We have not tested phones, and the model needs a few hundred megabytes of memory, so use a computer.

Each picture is sent to the model at 768 pixels on its longest side, which is the size the model looks at, so a tiny object in a large photo can be missed. Pictures are done one after another. Stop ends the run and keeps what is finished.

Privacy

The captions are made in this tab. For what the site collects, see our privacy policy.

Frequently asked questions

How do I generate captions for a LoRA or Flux training set?

Add the pictures, keep Detailed, type your trigger word under Start every caption with (end it with a comma), press the button, read and fix each caption, and download the ZIP of .txt files. Put the .txt files in the same folder as the pictures. Our LoRA captions guide covers what to do next.

Can I caption many pictures at once?

Yes. Add a whole folder's worth and press the button once. They are done one after another, and the page shows how long is left. On the graphics chip it takes a few seconds per picture; on the processor about 20 seconds.

Why is it slow on my computer?

Probably because your browser did not offer the graphics chip, so the page is using the processor, which is roughly eight to ten times slower. The page says which one it is using before you start. Chrome and Edge on a recent computer usually offer the graphics chip.

Are the captions always correct?

No. The main subject and scene are usually right, but small details are often invented, and long captions invent more. In our test of eight pictures, four of the detailed captions written on the graphics chip contained something that was not in the picture. Read them before you use them.

What is the difference between tagging and captioning?

A tagger gives a list of short labels such as 1girl and outdoors. A captioner writes sentences. The two suit different training setups: see tags vs natural-language captions.

Does it write captions in other languages?

No, English only. You can edit the text yourself or translate the saved files with another tool.