Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/ziv-was-here/zwh-social-assets-generator/releases/download/v1.4.6/zwh-social-assets-generator.zipSocial Assets Generator
Generate social media captions, titles, email subject lines, hashtags, and AI images from any post using multiple AI providers.
Description
Social Assets Generator adds a meta box to every post and page editor. With one click it calls your chosen AI provider (Claude, OpenAI, Gemini, Groq, Mistral, or Ollama Cloud) and returns a complete social asset kit:
- 5 title options
- 5 email subject lines with preview text
- LinkedIn post (150–300 words)
- Twitter/X thread (5 tweets)
- Instagram caption with hashtags
- Facebook post
- Hashtag sets for all platforms
It also generates social share images via OpenAI gpt-image-2, Google Imagen 4, Stability AI, or Flux (fal.ai) in four formats: banner (1200×630), square feed (1080×1080), portrait feed (1080×1350), and Stories/Reels/TikTok (1080×1920).
Generated images are saved to the WordPress media library. All text assets are saved to post meta and reload automatically the next time you open the editor.
Installation
- Upload the
social-assets-generatorfolder to/wp-content/plugins/. - Activate the plugin in Plugins → Installed Plugins.
- Go to Settings → Social Assets and enter at least one AI provider API key.
- Open any post or page — the Social Assets Generator meta box appears below the editor.
Frequently Asked Questions
Which AI providers are supported for text?
Claude (Anthropic), OpenAI (GPT-4o), Google Gemini, Groq, Mistral, and Ollama Cloud.
Which providers are supported for image generation?
OpenAI gpt-image-2, Google Imagen 4, Stability AI Stable Image Core, and Flux via fal.ai.
Do I need all API keys?
No — one key is enough to get started. Configure whichever provider you have access to.
Is any content sent to third parties?
Yes — post title and content are sent to the AI provider you select. Review each provider's privacy policy before use.
Screenshots
- The Social Assets Generator meta box in the post editor.
- The Settings page showing provider selection and image generation options.
Changelog
1.4.6
- Changed: OpenAI image generation (gpt-image-2) now requests "low" quality instead of "medium." Medium-quality generations take noticeably longer, which was tripping 504 Gateway Timeout errors on hosts/CDNs with tighter proxy timeouts (e.g. Cloudflare's 100s edge cap, or a hosting provider's PHP execution limit). Low quality trades a bit of image fidelity for a much more reliable generation time.
1.4.5
- Changed: the "Save to post meta" button was sitting almost flush against the save row's bottom border, and the row itself had no gap before the Image section below it. Increased bottom padding (15px → 20px) so the button clears its border, and added a 20px bottom margin to separate the row from the next section.
1.4.4
- Changed: removed the "— free tier" label from the Google Gemini option in the Active AI provider dropdown — tier isn't something the plugin controls, it depends on whether your API key's Google Cloud project has billing linked, so the label was misleading for paid accounts.
1.4.3
- Changed: added a bottom border and 15px bottom padding to the save row ("Save to post meta — select a title first"), so it sits inside a clear frame instead of running flush against the card edge.
1.4.2
- Changed: layout reorder — social assets results (Titles/Email/LinkedIn/etc. tabs) now appear directly under the Text section that generates them, above the Image section. Order is now: Text → Results → Image → Generated image.
1.4.1
- Fix: the new Gemini image generation (1.4.0) failed with "Invalid value at 'generation_config.response_format.image.aspect_ratio'". The request was built against the
v1(non-beta) endpoint, whoseresponseFormat.imagefield is backed by strict protobuf enums that don't accept plain strings like "16:9" or "1K". Switched to the confirmed-workingv1betaendpoint withgenerationConfig.imageConfig, which does accept plain aspect ratio/size strings.
1.4.0
- Fix: "This model ... is no longer available to new users" on Gemini image generation, even with a paid Google AI Studio account. Root cause: Google is shutting down the entire Imagen predict API (imagen-4.0-generate-001/-ultra/-fast) on August 17, 2026 for every account — it was never a billing issue. Replaced Imagen entirely with Google's recommended successor, the "Nano Banana" family (generateContent-based image generation). Choose between Gemini 3.1 Flash Image (fast, has a free tier) or Gemini 3 Pro Image (highest quality, paid only) in Settings → Social Assets. The old model auto-detection/exclusion system is removed since it no longer applies.
- Fix: the Titles tab rendered blank apart from the "best for..." suggestion note — the actual title text was being written into a hidden element instead of the visible one. Titles now display correctly alongside their notes.
- Changed: the generated image now appears above the Titles/LinkedIn/etc. tabs instead of below them, so you see the image right under the button that made it.
1.3.4
- Fix: the Imagen model auto-detection cache and the "excluded model" list were shared site-wide instead of tied to which Gemini API key was configured. If you switched to a different key (e.g. moving to a paid-tier key), the plugin could keep honoring the old key's stale exclusions or cached model choice. Both are now scoped per API key, so entering a new key re-detects and re-checks access from scratch.
1.3.3
- Fix: "Generate Social Assets" could fail with "Could not parse the API response as JSON" on longer posts. The full social kit (5 titles, 5 subject lines, LinkedIn post, 5-tweet thread, Instagram, Facebook, hashtag sets) is a large JSON payload, and the output token limit (4096, or unset for OpenAI/Groq/Mistral/Ollama) was too small — the response was getting cut off mid-JSON. Raised limits across all providers (Claude, OpenAI-compatible, Gemini, Ollama Cloud) and added a clear "response looks cut off" hint to the error message when this happens.
- Fix: that same error message was rendering the response preview double-HTML-escaped (visible
"instead of"), from an unnecessaryesc_html()call — the admin UI already escapes safely on display.
1.3.2
- Fix: if your Image generation provider was OpenAI or Gemini but your Active AI provider (text) was something else, there was no visible way to set that key — it lived in a text-provider section hidden behind an unrelated dropdown. Both image sections now have their own editable API key field, live-synced with the text-provider field so there's still only one value saved, not two conflicting ones.
1.3.1
- Fix: imagen-4.0-generate-001 started returning "This model is no longer available to new users" — but Google's ListModels API still lists it as predict-capable, so our v1.2.0 auto-detection kept re-selecting the same broken model. Added a persistent 30-day exclusion list: once a model fails with a "not found" / "no longer available" / "deprecated" style error, it's excluded from auto-selection going forward and the next-best available Imagen model (fast/ultra variant, or whatever Google adds next) is used automatically instead.
1.3.0
- Changed: the meta box now separates text and image generation into two clearly labeled sections, stacked vertically, each with a one-line explanation of what it generates — instead of two buttons sitting side by side with no context.
1.2.0
- New: Google Imagen model is now auto-detected instead of hardcoded. We've hit Google retiring the Imagen model ID twice in one week (imagen-3.0-generate-001, then -002) — the plugin now calls ListModels itself, picks the newest model that supports "predict", and caches it for 24 hours. If a cached model gets retired mid-day, the very next request detects the 404/"not found" response, clears the cache, re-detects, and retries automatically — no more manual hotfixes when Google renames a model.
- Settings → Social Assets now shows the currently auto-detected Imagen model instead of a fixed name.
1.1.2
- Fix: imagen-3.0-generate-002 also 404'd — confirmed via Google's ListModels API that no imagen-3.0-* model is available anymore. Switched to imagen-4.0-generate-001 (currently the only Imagen model exposing the predict method on the Gemini API). Relabeled "Imagen 3" to "Imagen 4" throughout settings and meta box.
1.1.1
- Fix: Google Imagen calls failed with "models/imagen-3.0-generate-001 is not found for API version v1beta" — Google retired that model ID. Updated to imagen-3.0-generate-002.
1.1.0
- Fix: OpenAI and Gemini API keys entered in Settings → Social Assets were silently discarded on save. The Image Generation section rendered a second, always-blank input with the same field name as the main provider key, and the blank one was overwriting the saved value. Removed the duplicate field.
- New: GitHub-based update system (updates served from GitHub releases, with update badge and manual "Check for updates" support)
1.0.0
- Initial release.
- Support for 6 text AI providers and 4 image providers.
- 4 image format presets: banner, square, portrait feed, stories.
- Save-to-post-meta with title/subject selection.
Upgrade Notice
1.4.6
Fixes intermittent 504 Gateway Timeout on OpenAI image generation by lowering request quality for faster, more reliable responses.
1.4.5
CSS polish — more breathing room around the save row.
1.4.4
Minor label fix — removes misleading "free tier" text from the Gemini provider option.
1.4.3
Minor CSS polish on the save row — no functional change.
1.4.2
Layout tweak — social assets results now sit above the Image section instead of below it.
1.4.1
Fixes "Invalid value ... ImageResponseFormat.AspectRatio" — 1.4.0's Gemini image request hit the wrong API version. Required if you're on 1.4.0.
1.4.0
Fixes Gemini image generation for good — Google shut down Imagen entirely (not a billing issue), now using their current Nano Banana models. Also fixes blank title text and reorders the image/results layout.
1.3.4
Fixes Imagen model detection/exclusion being shared across API keys — switching to a new (e.g. paid) Gemini key now re-checks access instead of reusing the old key's cache.
1.3.3
Fixes text generation failing/truncating on longer posts (token limit was too low) and a garbled error message.
1.3.2
Fixes no way to set an OpenAI/Gemini key for image generation when a different provider is used for text.
1.3.1
Fixes Imagen auto-selection re-picking a model Google has blocked for new users — adds a persistent exclusion list so it falls through to the next available model automatically.
1.3.0
Meta box UX update — text and image generation are now separate labeled sections.
1.2.0
Google Imagen model is now auto-detected and self-healing — no more breakage when Google retires a model ID.
1.1.2
Fixes Google image generation for real this time — switches to Imagen 4, the only model your API key actually has predict access to.
1.1.1
Fixes Google Imagen image generation (retired model ID).
1.1.0
Fixes API keys not saving in Settings → Social Assets, and adds self-updating from GitHub.
1.0.0
Initial release.
Releases
16 releases. Each count is every asset in that release; expand a row for the breakdown.