From the zip you just downloaded to a Media Library with no missing ALT text, in about ten minutes. Every label below is the one you'll see in WordPress.
In Plugins > Add New > Upload Plugin upload the zip from your purchase email and activate it. If the free edition is already installed, deactivate and delete it first: your settings are kept. The license key is already inside the zip, so there is nothing to paste: the License key field in Settings > Alt Text BYOK stays empty and shows "Included in your download". Updates arrive in the usual Plugins > Updates. Fill the field only if you install a zip that didn't come with your key (the key is also in your purchase email).
Open Settings > Alt Text BYOK, choose a Provider and click Get an API key to open that provider's key page. The API base URL and model are filled in for you:
| Provider | Default model | Good for |
|---|---|---|
| OpenAI | gpt-4o-mini | the default, reliable |
| Google Gemini | gemini-flash-lite-latest | cheapest, has a free tier |
| Anthropic (Claude) | claude-haiku-4-5 | careful descriptions |
| OpenRouter | google/gemini-3.5-flash-lite | one key, many models |
| Mistral, Groq | mistral-small-latest, qwen/qwen3.8-27b | EU / fast inference |
| Ollama (local) | qwen2.5vl | free, images never leave your server |
Paste the key into API key, save, then click Test connection: it sends a tiny test image to the provider and shows the answer. Any other OpenAI-compatible endpoint works with Custom: set the API base URL and a model that accepts images.
Cost: you pay your provider directly, with no markup. As a guide, about $0.08 per 1,000 images with Gemini Flash-Lite (or $0 within its free tier) and well under a dollar per 1,000 with OpenAI's small models. Estimate your library with the ALT text cost calculator.
ALT text language: leave "Site language (auto, follows WPML/Polylang)" on multilingual sites, so each image gets ALT in the language of the post it belongs to; or pick "Fixed language" and type one (e.g. English). Leave Overwrite existing ALT unchecked unless your current ALT texts are junk (file names, "image1"): the plugin then only fills the empty ones.
Go to Media > Alt Text BYOK. The page lists images with no ALT; click Generate ALT for the whole library and keep the tab open (Stop pauses it). Each row also has its own Generate button. In the Media Library list view you can select images and use the bulk action Generate alt text; every image's details screen has an AI alt text field with Generate. If a result is wrong, Undo restores the previous ALT.
Large library? Tick Background backlog in the settings instead: the plugin works through every image without ALT, 20 per hour via WP-Cron, with no tab open.
alt="" in their HTML; this shows the new ALT there too.In the block editor, the Image block has an Alt Text BYOK panel with Generate alt text, and the document panel has Generate for all images in this post.
wp alt-text generate --limit=500 --dry-run wp alt-text generate --limit=500 wp alt-text sync-content --post_type=post
generate fills missing ALT (--overwrite redoes existing ones); sync-content
writes the Media Library ALT permanently into the HTML of already-published posts.
Run any page through the free ALT text audit: it lists images that still have missing or useless ALT. Spot-check a few product photos and charts, the cases where context matters most.
New uploads now get ALT on their own and the backlog is gone. Lifetime updates come through Plugins > Updates.
Alt Text BYOK — $24.99 one-time
Stuck on a step? Write to deus@lumnika.com with what Test connection says.