Auto-Generate Hero Images for Ghost (2026)

Auto-Generate Hero Images for Ghost (2026)

Ghost has no native AI image generator in 2026, unlike Substack and Beehiiv. Automating featured images means pairing an external image tool with Ghost’s Admin API, which accepts uploads via multipart/form-data and attaches them to posts through the feature_image field. Weekly publishers can cut image creation from 20 minutes per post to under a minute.

Ghost is the indie publishing platform that never shipped the AI image features its competitors launched in 2024 and 2025. The company hit $10.4M revenue and 20,400+ paying customers in 2024, growing 65% year-over-year, and Ghost publishers collectively earned $9.2M in subscriptions that year. The platform scaled while the editor sat still on image tooling, so writers on Ghost still do this by hand while Substack and Beehiiv users click a button. Blogs with relevant images get 94% more views, and we saw similar patterns when we looked at whether blog images actually move the needle on engagement, so the gap compounds every month you publish without addressing it.

Can you automate Ghost featured image generation?

Yes, but only with external tools. Ghost exposes a full Admin API that supports programmatic image uploads and setting the feature_image field on posts, so end-to-end automation is possible on any plan, including self-hosted. What Ghost doesn’t provide is the image itself: there is no built-in AI generator inside the Koenig editor, no “Generate” button, and no official AI partnership as of April 2026.

For Ghost in 2026, the question isn’t whether automation is possible but which external tool feeds the Admin API most smoothly. The same semi-automation ceiling we covered in our guide to automating blog hero images applies here, though Ghost goes further than Substack or Beehiiv in one way: because the Admin API is fully open on every paid plan, Ghost is the easiest of the three to automate end-to-end if you’re comfortable writing a small script. The auto-generation workflow for Substack and Beehiiv caps out at Enterprise tiers. Ghost doesn’t.

Why Ghost publishers struggle with featured images

The friction comes from two specific editor limitations that get worse the more you publish. Ghost’s editor has a native Unsplash integration, which is fast, but it guarantees a duplicate-image problem. After two months of weekly publishing, you’ll start recognizing your own cover images on three other Ghost newsletters in the same niche, and that’s not just aesthetic. Readers in a crowded space identify a publication by its visuals before reading the title, so sharing stock photos with other indie publishers blurs the brand identity most Ghost users came here to build.

Ghost also has no media library. No shared asset pool, no folders, no way to reuse an image across posts without re-uploading it. This is cited as one of the biggest friction points in the Ghost forum and has been a standing feature request for years. If you want the same hero image on two posts, you upload it twice.

The community has been asking for native AI image generation in the Ghost forum but as of Ghost 6.0, released in August 2025, the roadmap has focused on ActivityPub, analytics, and “own your platform” distribution features instead. Nothing in the Ghost team’s 2026 AI priorities post suggests an image generator is coming, which makes third-party tooling the only realistic path.

Stock photo avoidance also isn’t just a branding concern. There are documented cases of bloggers being sued by stock agencies, including a $7,500 settlement over a single unlicensed image. Generating your own images sidesteps that risk entirely.

What are Ghost’s featured image requirements?

Ghost doesn’t prescribe fixed dimensions the way Substack or Beehiiv do. Image sizes are defined per theme in the theme’s package.json under config.image_sizes, and Ghost generates responsive variants at those sizes. The default Casper theme uses six widths: 30, 100, 300, 600, 1000, and 2000 pixels. Images wider than 2000 pixels are resized to that ceiling.

Here are the practical specs, pulled from Ghost’s official assets documentation and the media file size limits help page:

Spec Value Notes
Recommended featured image 1200 × 675 px (16:9) Industry standard, matches most themes
Max width Ghost processes 2000 px Larger images auto-resized
Social preview (OG) 1200 × 630 px (1.91:1) Auto-used from feature_image
Max file size (Starter) 5 MB Ghost(Pro) plan-dependent
Max file size (Publisher) 100 MB Ghost(Pro)
Max file size (Business) 250 MB Ghost(Pro)
Max file size (self-hosted) 50 MB default Server-configurable
Supported formats (upload) JPEG, PNG, GIF, WebP, SVG No AVIF for upload

The feature_image field becomes the OG and Twitter Card image unless you override it, and Ghost emits ImageObject structured data for it as well. A single asset drives homepage display, post page header, email newsletter, social previews, and image search (our complete guide to Open Graph images covers the OG side in depth). Skip the featured image and you lose all five.

A couple of edge cases matter for automation. Ghost’s responsive image pipeline only runs on images hosted by Ghost itself, so linking to an external image drops srcset generation entirely. And alt text lives inside the caption editor behind an “Alt” button that many users never find. Missing alt text is a WCAG Priority 1 accessibility failure and a small SEO cost.

Four ways to generate Ghost hero images in 2026

There are four realistic options for Ghost publishers today, and they vary less in raw output quality than in how much of your week they eat.

Method Time per image Skill required Automatable via API? Cost
Unsplash (built into editor) 3 to 10 min None No Free
Bannerbear or Placid + Zapier 2 to 5 min Template design Yes €10 to €49/mo
DALL-E / ChatGPT + manual upload 5 to 15 min Prompt writing Partial €16+/mo
URL-in AI (imghero) ~30 seconds None Yes, via API Free tier, then €9/mo

Unsplash is the editor’s built-in option and the fastest path on day one, but it damages brand identity the most quickly over time. Every Ghost publisher pulling from the same library converges on the same ten photos per topic, and once a reader subscribes to more than one indie newsletter in a niche, they’ll notice.

Bannerbear and Placid are the established template-based automation tools. Placid has an official Ghost integration that connects via your Admin API key, and Bannerbear works well through Zapier flows like the ones we walked through for blog image automation. Both require you to design a template first, then let the tool fill it in with post data. The output is consistent but repetitive: text, stock photo, logo. For newsletters with strong visual branding this works, but for article-style blogs where the image should match the specific topic, you’ll feel the constraint within a few months.

DALL-E or ChatGPT via Zapier produces unique images but puts you back on the prompt-writing treadmill. Research on prompt engineering from 2025 found that expert prompts succeed on the first try only 40 to 60 percent of the time, and reaching 85 percent satisfaction typically takes three iteration rounds. Scale that across a year of weekly posts and you’re looking at 30 to 50 hours spent on prompt-writing alone.

URL-in AI skips the prompt step entirely. imghero scrapes your draft, summarizes the article with an LLM, writes the image prompt, and returns a 1200 × 675 PNG with full commercial rights. You skip the creative decisions as well as the clicks. The output URL plugs directly into Ghost’s Admin API, which is where the real time savings come from.

How Ghost’s Admin API handles featured images

Ghost’s Admin API handles images in two steps: upload the file to the /images/upload/ endpoint, then reference the returned URL in the feature_image field when you create or update a post. Both endpoints live under /ghost/api/admin/ and both require a JWT token signed with your Admin API key.

Authentication has a specific shape worth getting right on the first try. You create a custom integration in Ghost Admin, which gives you an API key formatted as id:secret. You sign a JWT using HS256 with the secret, set the kid header to the id, and set the token expiry to no more than five minutes. Requests include two headers: Authorization: Ghost {token} and Accept-Version: v5.0. Full details live in Ghost’s Admin API authentication docs.

The upload endpoint itself is straightforward:

POST /ghost/api/admin/images/upload/
Content-Type: multipart/form-data

Form fields:
  file (required): the image file
  purpose (optional): "image" | "profile_image" | "icon"
  ref (optional): your own reference string (e.g., filename)

The response returns the hosted URL:

{
  "images": [
    {
      "url": "https://yoursite.ghost.io/content/images/2026/04/hero.png",
      "ref": "hero.png"
    }
  ]
}

You take that URL and set it on the post. A POST or PUT to /ghost/api/admin/posts/ accepts three image-related fields: feature_image, feature_image_alt, and feature_image_caption. The alt and caption fields matter for accessibility and image search and are worth filling in even when automating.

One caveat: Ghost’s Admin API doesn’t publish official rate limits. A widely-cited figure from forum threads mentions 100 requests per 3600 seconds per IP, but the question of whether that’s still accurate has been asked and not officially answered. If you’re building something that hits the API at volume, implement exponential backoff.

How to auto-generate a Ghost hero image with imghero

The semi-manual workflow takes about a minute per post once you’ve done it once. This is the path that works on Ghost(Pro) Starter and above, and on any self-hosted site, without writing code.

  1. Draft your Ghost post and save it. Copy the preview URL, which Ghost generates for every draft. imghero can read drafts from the preview URL, so you don’t need to publish first.
  2. Go to img-hero.com and paste the URL. Pick a style (more on style selection below) or leave it on Auto, which picks one based on content.
  3. Wait about 30 seconds. imghero scrapes the page via Jina Reader, summarizes the content with Google Gemini 3 Flash, generates an optimized prompt through Claude Opus 4.6, and renders the image with FAL’s nano-banana-2 model at 1200 × 675 pixels.
  4. Download the PNG. Full commercial rights, no attribution required, 16:9 aspect ratio that matches the Ghost theme default.
  5. Open your Ghost post, click the settings panel on the right, and drop the image into the Feature Image slot. Add alt text while you’re there.
  6. Publish or send, and the same image flows to the post page, homepage card, RSS feed, OG preview, and newsletter header without any further action.

For fully hands-off automation, Ghost’s API is the missing piece most newsletter platforms don’t have. The next section covers that.

Full automation: Ghost webhook + imghero API + Admin API

If you want images to appear in drafts without any manual steps, the pattern is: Ghost fires a webhook when a draft is saved, your server calls imghero’s API to generate the image, polls until it’s ready, uploads it to Ghost, and sets the feature_image field. Roughly 50 lines of Python or Node.

The data flow:

  1. Ghost post.added webhook fires with the new post ID and URL.
  2. Your server calls POST https://img-hero.com/api/v1/generate/ with the post URL and a style preference. This returns a url_id immediately.
  3. Your server polls GET https://img-hero.com/api/v1/urls/{url_id}/ every 5 to 10 seconds until status is complete. Total time is usually 30 to 60 seconds.
  4. Your server reads images[0].direct_url from the response and pipes the binary to Ghost’s /images/upload/ endpoint.
  5. Your server updates the post with PATCH /posts/{id}/, setting feature_image to the uploaded URL, plus feature_image_alt from the summary.

imghero’s API accepts 100 requests per minute on paid plans, uses token authentication, and returns the same structured response whether you’re generating from the web dashboard or from code. Style parameters supported in the API match the dashboard exactly: auto, photo, illustration, minimal, bold, dark_glass, and 14 others. The imghero API FAQ covers edge cases like reusing URLs and adjusting generated images.

Running this on a $5 DigitalOcean droplet with a small Flask or Express app means every draft gets a featured image without you touching it.

Choosing the right style for your Ghost blog

Visual consistency is how indie blogs build a recognizable identity, and Ghost publishers tend to care about it more than WordPress or Medium writers because Ghost’s default themes put the feature image front and center. imghero ships 20 styles across two categories. Creative styles (17 of them: Photo, Illustration, Minimal, Bold, Cinematic, 3D Render, Anime, Retro, and more) use LLM-generated artistic direction. Preset styles (Soft, Dark Glass, SaaS Hero) use curated reference images for tighter visual consistency.

Pick one style and use it consistently. Auto mode works if you want variety, but most successful indie publications lock in one aesthetic and let it become recognizable. Add your brand colors in your imghero profile and they’re applied to every generation, which matters if you’re building a visual identity you can point at six months from now.

Cost comparison for Ghost publishers

Here’s the actual monthly cost for a weekly publisher (four images per month) and a daily publisher (around 20 images per month). All prices reflect what’s publicly listed in April 2026.

Tool Weekly (4/mo) Daily (20/mo) Setup time Automatable end-to-end?
Unsplash in editor Free Free 0 min No
Placid Basic $19 $19 (same tier) 1 to 2 hours Yes (official Ghost integration)
Bannerbear Startup + Zapier ~$69 ~$69 3 to 5 hours Yes
Zapier + DALL-E 3 ~$50 ~$50 2 to 3 hours Yes, but prompts required
imghero Starter €9 €35 (Pro tier) 0 min (web), ~2 hrs (API) Yes, via API

imghero’s free tier (3 images) plus Starter at €9/month is the cheapest automated path that skips both template design and prompt writing (full plan details on the pricing page). At higher volumes, the Pro tier at €35 covers 100 images per month, which suits a daily publisher. Placid and Bannerbear end up more expensive once you add Zapier and count the hours spent on template setup.

EU AI Act: what Ghost publishers should know before August 2026

The EU AI Act’s transparency and watermarking provisions take effect on August 1, 2026, with fines up to €15 million or 3% of global annual turnover for non-compliance. AI-generated images on commercial publications, including Ghost sites monetized through memberships or ads, will need machine-readable markers indicating the image is synthetic.

The draft Code of Practice points toward C2PA (Content Authenticity Initiative) as the likely standard, with final guidance expected in June 2026. For Ghost publishers specifically, this means two things. First, keep a record of which featured images are AI-generated so you can update them if disclosure becomes a labeling requirement. Second, choose tools from EU-based providers when you can, since they’re more likely to ship compliance support on day one. imghero is EU-based and has publicly committed to compliance ahead of the deadline.

This doesn’t apply to US or non-EU audiences in 2026, but if you have any EU readership, it’s worth planning for now rather than scrambling in July.

FAQ

Does Ghost have AI image generation built-in? No. As of April 2026, Ghost has no native AI image generation. The Koenig editor integrates Unsplash for stock photos but has no prompt-to-image feature. The Ghost team’s public roadmap in 2025 and 2026 has focused on ActivityPub, analytics, and commerce features rather than AI image tools.

What size should my Ghost featured image be? 1200 × 675 pixels at 16:9 aspect ratio works for all default themes and matches the social preview ratio that Ghost auto-generates. Ghost processes images up to 2000 pixels wide and resizes anything larger. The exact theme-specific sizes are defined in each theme’s package.json under config.image_sizes.

Can I use AI-generated images on my Ghost blog without disclosing them? In most jurisdictions in April 2026, yes. Starting August 1, 2026, the EU AI Act requires machine-readable markers on AI-generated content for EU audiences. US and most other jurisdictions have no disclosure requirement today. Google has stated publicly that AI-generated images don’t carry an SEO penalty when quality and E-E-A-T signals are strong.

Why does my Ghost featured image get cropped on social media? Ghost uses the featured image for OG and Twitter Card previews, and social platforms crop to 1.91:1 (1200 × 630) while Ghost themes typically display at 16:9 (1200 × 675). A 16:9 image crops about 5% off the top and bottom on social, which usually lands in empty space. Generating at 1200 × 675 gives you good margins on both.

Can imghero auto-upload to my Ghost site? Not directly in the dashboard. imghero’s API returns an image URL, which you then upload to Ghost’s Admin API from your own script. The two-step pattern (generate, then upload) takes roughly 50 lines of code in Python or Node. A direct Ghost integration isn’t on imghero’s public roadmap in April 2026.

Getting to a one-minute workflow

For Ghost publishers who move to URL-in AI, the practical change is smaller than it sounds. Writing and editing time stay exactly the same. What goes away is the ten to thirty minutes per post that used to go toward hunting for stock photos, crafting prompts, or designing templates. Over a year of weekly publishing, that’s eight to twenty-six hours back.

Ghost gives you a complete API on the publishing side, and imghero handles the image. Sign up for a free imghero account to get three images with full commercial rights and see whether the URL-in workflow fits your publishing rhythm before committing to a paid plan.

Stop wasting time on images

Your content deserves better visuals

Paste a URL. Get a stunning image. It's that simple.

Start Creating
Instant image generation Ready in seconds Full commercial rights

More from the Blog