About this tool
What you get for each image
Every image gets a short alt text first — one sentence, trimmed to 125 characters at a sentence or word boundary, ready for the alt attribute. Two more outputs are optional, because each one costs another pass through the model: a detailed description for a <figure> caption or a long-description page, and the text that appears in the image — the Florence-2 OCR task, which returns the words without line breaks. Every field is editable, one click copies alt="…", and the whole batch exports as a CSV with the file name, alt text and description, so a dozen images for a blog post is one drag and one download.
It runs in your browser, so the model downloads once
The image description generator is Florence-2-base-ft from Microsoft, MIT-licensed, running through Transformers.js. On the first visit the browser fetches the model from huggingface.co — about 218 MB with WebGPU, about 277 MB without — and keeps it in the browser's cache, so later visits start without a model download. The ONNX Runtime script that runs it comes from cdn.jsdelivr.net. Your images never leave the tab: there is no upload, no account, and nothing for a server to log. The trade is speed. With WebGPU a short description takes about a second per photo and the text in the image about four seconds; without a usable GPU the model runs on the CPU and the same photo takes about 18 seconds for the description and about 25 for the text, which is why the page shows the device it ended up on and tells you before you queue fifty images.
How accurate the descriptions are
We ran 20 photographs through the short alt text and had another AI model — not a person — grade each result: On the CPU build, which is what most people without a GPU run, 16 were usable as written, 4 needed an edit and 0 were wrong about what the photo showed; on the WebGPU build, 16 were usable, 3 needed an edit and 1 was wrong. That is a useful first draft, not a finished one. Florence-2 can misname an object, miscount people, and it has no idea why this photo is in your article — a chart it calls "a graph with blue bars" might be there because revenue fell. It does not recognise who people are, and it will not guess. Treat the output as a starting point that already has the nouns right, then rewrite it to say what the image means in context.
English only, with translation as a separate step
The model writes English. On the Japanese and Traditional Chinese pages, a button translates each draft with the browser's built-in Translator when Chrome offers it; the translation appears next to the English, never in place of it, because it is a second machine step that can add its own errors. When the Translator is unavailable the page says so and leaves the English, which is still a usable draft to rewrite by hand. For reading text out of a Chinese or Japanese screenshot you are better served by the OCR tool, which is built for those scripts.
Writing alt text the model cannot write for you
Alt text describes what the image contributes, not what it contains. A photo used as decoration should get an empty alt="" so screen readers skip it; a chart should state the finding, not the colours; a product shot should say what the product is, not "an image of". The 125-character convention exists because some screen readers pause or split long alt text, so detail beyond that belongs in a caption or the surrounding paragraph — that is what the detailed description output is for. The generator gets you past the blank field; the sentence that fits your page is still yours.