{"id":279446,"date":"2026-02-13T08:58:18","date_gmt":"2026-02-13T08:58:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-alt-text-creator\/"},"modified":"2026-02-13T09:47:56","modified_gmt":"2026-02-13T09:47:56","slug":"kookoo-ai-alt-text-creator","status":"publish","type":"plugin","link":"https:\/\/nl-be.wordpress.org\/plugins\/kookoo-ai-alt-text-creator\/","author":7819527,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.6.0","stable_tag":"1.6.0","tested":"6.9.4","requires":"6.0","requires_php":"","requires_plugins":null,"header_name":"KooKoo AI Alt Text Creator","header_author":"micromax","header_description":"Automatically generates alt text and titles for images using OpenRouter AI. Adds a generation button to the Media Library list view.","assets_banners_color":"b5c3c5","last_updated":"2026-02-13 09:47:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/kookoo-ai-alt-text-creator\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":195,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.3":{"tag":"1.5.3","author":"micromax2","date":"2026-02-13 08:59:09"},"1.6.0":{"tag":"1.6.0","author":"micromax2","date":"2026-02-13 09:47:56"},"1.6.1":{"tag":"1.6.1","author":"micromax2","date":"2026-02-13 09:57:13"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3460602,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3460602,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3460614,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3460614,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.3","1.6.0","1.6.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3460644,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3460644,"resolution":"2","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1953,17214,163,233,186],"plugin_category":[34,50,55],"plugin_contributors":[255790],"plugin_business_model":[],"class_list":["post-279446","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-alt-text","plugin_tags-images","plugin_tags-media-library","plugin_tags-seo","plugin_category-accessibility","plugin_category-media","plugin_category-seo-and-marketing","plugin_contributors-micromax2","plugin_committers-micromax2"],"banners":{"banner":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/banner-772x250.jpg?rev=3460614","banner_2x":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/banner-1544x500.jpg?rev=3460614","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/icon-128x128.jpg?rev=3460602","icon_2x":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/icon-256x256.jpg?rev=3460602","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/screenshot-1.jpg?rev=3460644","caption":""},{"src":"https:\/\/ps.w.org\/kookoo-ai-alt-text-creator\/assets\/screenshot-2.jpg?rev=3460644","caption":""}],"raw_content":"<!--section=description-->\n<p>AI Alt Text Creator is a complete solution for automating image SEO and accessibility on your WordPress site. It uses Artificial Intelligence to analyze your images and generate descriptive, context-aware Alt Text and Titles.<\/p>\n\n<p>By connecting to OpenRouter, this plugin bypasses expensive monthly subscriptions, giving you direct access to the world's best AI models (including Google Gemini, GPT-4, and Claude 3.5) at the lowest possible cost.<\/p>\n\n<p><strong>\ud83d\ude80 Key Features<\/strong><\/p>\n\n<p><strong>One-Click Manual Generation:<\/strong> Instantly generate metadata for individual images directly from the Media Library list view. Perfect for new uploads or refining specific images.<\/p>\n\n<p><strong>Automated Background Processing:<\/strong> Process your entire back catalog automatically using the built-in Cron scheduler. Configure batch sizes and intervals to suit your server's capacity.<\/p>\n\n<p><strong>Context-Aware Descriptions:<\/strong> The AI reads the Title and Content of the post\/page the image is attached to. This ensures the generated Alt Text is relevant to your specific article, not just a generic description of the visual.<\/p>\n\n<p><strong>Global Context:<\/strong> Add custom instructions (e.g., \"Always mention our brand name 'Acme Corp'\") that apply to every image generated.<\/p>\n\n<p><strong>Smart Error Handling:<\/strong><\/p>\n\n<p><strong>Retry Failed:<\/strong> Automatically logs failed attempts. You can retry all failed images with one click from the settings page.<\/p>\n\n<p><strong>JSON Fixer:<\/strong> A specialized tool to scan and fix images where the AI might have accidentally saved raw code instead of text.<\/p>\n\n<p><strong>Detailed Logging:<\/strong> View the exact generation timestamp, source (Manual vs Cron), and any error messages directly in the \"Edit Media\" screen.<\/p>\n\n<p><strong>Cost Control:<\/strong> You bring your own API key. You pay only for exactly what you use, with no markup.<\/p>\n\n<p><strong>Format Control:<\/strong> Choose exactly which file types to process (JPG, PNG, WEBP, etc.).<\/p>\n\n<p><strong>\ud83e\udde0 Why OpenRouter?<\/strong><\/p>\n\n<p>OpenRouter is an AI aggregator that offers significant benefits for WordPress users:<\/p>\n\n<p><strong>Cheaper:<\/strong> Models like Google Gemini 1.5 Flash are incredibly affordable (often fractions of a cent per image).<\/p>\n\n<p><strong>Flexible:<\/strong> Switch models instantly. If a new model is released tomorrow, you can simply paste its ID and use it immediately.<\/p>\n\n<p><strong>No Middleman:<\/strong> You use your own API key.<\/p>\n\n<p><strong>\ud83d\udca1 Context &amp; Prompts<\/strong><\/p>\n\n<p>You can customize exactly how the AI behaves using placeholders in your prompts:<\/p>\n\n<p><strong>Examples of Global Context:<\/strong><\/p>\n\n<pre><code>Inputs:\n\u2013 Page Topic: [{post_title}]\n\u2013 Page Content: [{post_content}]\n\u2013 Image: [attached image]\n<\/code><\/pre>\n\n<p>Examples of Alt Text Prompt:<\/p>\n\n<pre><code>Role: Web Accessibility and SEO Expert.\nTask: Generate a single, optimized alt text string (MAX 125 characters) for the provided image, situated within the context of inputs.\n<\/code><\/pre>\n\n<p>Examples of Alt Text Prompt:<\/p>\n\n<pre><code>Role: SEO Copywriting Specialist.\nTask: Generate 1 optimized image title based on the provided topic and attached image.\n<\/code><\/pre>\n\n<h3>External Services<\/h3>\n\n<p>This plugin relies on OpenRouter as a third-party service to provide Artificial Intelligence capabilities.<\/p>\n\n<blockquote>\n  <p>Service Name: OpenRouter<\/p>\n  \n  <p>Service URL: https:\/\/openrouter.ai\/<\/p>\n  \n  <p>Data Sent: Image URLs, Post Titles, and Post Content (context) are\n  sent to the OpenRouter API for processing.<\/p>\n  \n  <p>Terms of Service: OpenRouter Terms https:\/\/openrouter.ai\/terms<\/p>\n  \n  <p>Privacy Policy: OpenRouter Privacy Policy\n  https:\/\/openrouter.ai\/privacy<\/p>\n<\/blockquote>\n\n<p><strong>Note:<\/strong> You must obtain your own API key from OpenRouter to use this plugin.<\/p>\n\n<h3>Configuration<\/h3>\n\n<ol>\n<li><strong>API Configuration<\/strong><\/li>\n<\/ol>\n\n<p><strong>OpenRouter API Key:<\/strong> Sign up at OpenRouter.ai and paste your key here.<\/p>\n\n<p><strong>AI Model:<\/strong> Enter the model ID you wish to use (default: google\/gemini-flash-1.5).<\/p>\n\n<ol>\n<li><strong>Generation Options<\/strong><\/li>\n<\/ol>\n\n<p><strong>Global Context:<\/strong> Instructions sent with every request. Great for setting the \"persona\" of the AI.<\/p>\n\n<p><strong>Supported Image Formats:<\/strong> Define which file extensions the plugin should process.<\/p>\n\n<p><strong>Enable Alt Text \/ Title:<\/strong> Toggle which metadata fields you want to generate.<\/p>\n\n<p><strong>Prompts:<\/strong> Customize the specific instructions for generating Alt Text vs Titles.<\/p>\n\n<p><strong>Save Generation Info:<\/strong> Enables logging of timestamps and error messages to the database.<\/p>\n\n<ol>\n<li><strong>Bulk Generation (Cron)<\/strong><\/li>\n<\/ol>\n\n<p><strong>Enable Background Processing:<\/strong> Turns on the automatic generator.<\/p>\n\n<p><strong>Batch Size:<\/strong> How many images to process per run. Keep this low (1-2) to prevent server timeouts.<\/p>\n\n<p><strong>Interval:<\/strong> How often the job runs (in minutes).<\/p>\n\n<!--section=installation-->\n<p>Upload the plugin folder to the \/wp-content\/plugins\/ directory.<\/p>\n\n<p>Activate the plugin through the 'Plugins' menu in WordPress.<\/p>\n\n<p>Navigate to Settings &gt; AI Alt Text to configure the plugin.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20ai%20models%20are%20supported%20by%20openrouter%3F\"><h3>What AI models are supported by OpenRouter?<\/h3><\/dt>\n<dd><p>OpenRouter supports a vast array of models from all major providers. As of the latest update, supported model families include (but are not limited to):<\/p>\n\n<blockquote>\n  <p>Google: Gemini, PaLM<\/p>\n  \n  <p>OpenAI: GPT (GPT-3.5, GPT-4, GPT-4o, etc.)<\/p>\n  \n  <p>Anthropic: Claude (Haiku, Sonnet, Opus)<\/p>\n  \n  <p>Meta: Llama<\/p>\n  \n  <p>Mistral AI: Mistral, Mixtral, Codestral<\/p>\n  \n  <p>DeepSeek: DeepSeek Chat\/Coder<\/p>\n  \n  <p>Qwen: Qwen (Alibaba)<\/p>\n  \n  <p>Microsoft: WizardLM, Phi<\/p>\n  \n  <p>Perplexity: Perplexity Online\/Chat<\/p>\n  \n  <p>X.ai: Grok<\/p>\n  \n  <p>Cohere: Command<\/p>\n  \n  <p>Nvidia: Nemotron<\/p>\n  \n  <p>Amazon: Nova, Bedrock<\/p>\n  \n  <p>Databricks: DBRX<\/p>\n  \n  <p>Nous Research: Hermes<\/p>\n  \n  <p>Liquid: Liquid<\/p>\n  \n  <p>Arcee AI: Arcee<\/p>\n  \n  <p>Moonshot AI: Kimi<\/p>\n  \n  <p>Z.ai: GLM<\/p>\n  \n  <p>MiniMax: MiniMax<\/p>\n<\/blockquote>\n\n<p>You can find the specific Model IDs for these families on the OpenRouter Models page.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20modify%20my%20actual%20image%20files%3F\"><h3>Does this plugin modify my actual image files?<\/h3><\/dt>\n<dd><p>No. It only updates the metadata (Alt Text and Title) in the WordPress database. Your physical image files remain untouched.<\/p><\/dd>\n<dt id=\"will%20it%20overwrite%20my%20existing%20alt%20text%3F\"><h3>Will it overwrite my existing Alt Text?<\/h3><\/dt>\n<dd><p>Bulk Generation (Background): No. The background process automatically skips any image that has already been successfully processed by the plugin to save you money and preserve your data.<\/p>\n\n<p>Manual Generation (Button): Yes. If you click the \"Regenerate\" button on a specific image in the Media Library, it will overwrite the existing text with the new AI result.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>If you delete the plugin via the Plugins screen:<\/p>\n\n<p>It will clean up its own settings and temporary statistics.<\/p>\n\n<p>It will remove internal logs (timestamps, error logs).<\/p>\n\n<p>Crucially: The Alt Text and Titles generated for your images will remain. They become part of your site's standard content and are not deleted.<\/p><\/dd>\n<dt id=\"my%20bulk%20generation%20seems%20stuck.%20what%20do%20i%20do%3F\"><h3>My bulk generation seems stuck. What do I do?<\/h3><\/dt>\n<dd><p>Go to Settings &gt; AI Alt Text. Look at the \"Statistics\" box.<\/p>\n\n<p>Check the \"Failed\" count. If images are failing, check the \"Edit Media\" screen of a failed image to see the error message.<\/p>\n\n<p>Use the \"Retry Failed Images\" button to move them back to the pending queue.<\/p>\n\n<p>Use the \"Reset Cron Progress\" button if you want to completely restart the analysis from scratch (this allows the plugin to look at all images again).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.0<\/h4>\n\n<p>Redesigned Admin UI\nAdded Cron<\/p>\n\n<h4>1.5.3<\/h4>\n\n<p>Improved Cron reliability with a new watchdog function.<\/p>\n\n<p>Added error logging for failed API requests in the Edit Media screen.<\/p>\n\n<p>Fixed issue where failed images would block the bulk generation queue.<\/p>\n\n<p>Added uninstall.php for clean removal of plugin data.<\/p>\n\n<p>Added \"Scan &amp; Fix JSON Errors\" tool to settings.<\/p>\n\n<p>Added \"Retry Failed Images\" tool to settings.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial release.<\/p>","raw_excerpt":"Automatically generates descriptive Alt Text and Titles for your Media Library images using AI via OpenRouter.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/279446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=279446"}],"author":[{"embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/micromax2"}],"wp:attachment":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=279446"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=279446"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=279446"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=279446"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=279446"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=279446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}