Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
AI Storyboard Generator icon

AI Storyboard Generator

Turn a story or script into storyboard scene images. One art style across every shot. $0.05 per scene image, or $50.00 per 1,000.

5 from 1 review on Apify 144 runs on Apify $0.05 per scene image ($50 / 1,000)
Run this in the cloudRun on Apify →

AI Video & Content Studio

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust story, scenes, numScenes (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.05 per scene image = $50 per 1,000

You are charged forWhenPrice
Scene image generatedOne generated storyboard scene image.$0.05

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-11, and they are what you are actually charged.

Inputs

FieldWhat it doesType
storyA story or script. It will be split into visual scenes automatically. (Leave empty if you provide your own scenes.)string
scenesYour own list of scene descriptions (one image each). Overrides automatic splitting.array
numScenesHow many scenes/images to generate when splitting a story.integer
styleShared visual style applied to every image (for consistency).string
charactersDescribe recurring characters so they stay consistent across scenes (e.g. 'an old bearded keeper in a yellow raincoat').string
aspectRatio9:16 (vertical), 16:9 (wide), or 1:1 (square).string
qualitygpt-image-1 quality.string
openaiApiKeyYour OpenAI key, used for scene splitting and image generation (gpt-image-1). Kept private.string
baseUrlOpenAI-compatible base URL. Default https://api.openai.com/v1.string
sceneModelChat model used to split a story into scenes. Must exist on your base URL. Ignored when you pass your own scenes.string
imageModelImage model used for the renders. Must exist on your base URL.string

What you get

A structured dataset — each result includes fields like:

indexsceneimageUrlaspectRatio

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in AI Video & Content Studio

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

AI Video Dubber iconAI Video & Content Studio

AI Video Dubber

Dub a video into another language. Transcribe, translate, AI voice timed to the original, optional subtitles. $0.12 per dubbed minute, flat.

Ready to run — no setup

Auto Caption Burner iconAI Video & Content Studio

Auto Caption Burner

Burn word-by-word animated captions into any video. Five styles, no watermark. Transcript and word timings included. $0.04 per 30-second block.

Ready to run — no setup

Storyboard Video Generator iconAI Video & Content Studio

Storyboard Video Generator

Turn images or a story into a Ken Burns slideshow video. Pan-and-zoom motion, optional audio, 9:16, 16:9 or 1:1 output. $0.015 per rendered second.

Ready to run — no setup

Story to Script Rewriter iconAI Video & Content Studio

Story to Script Rewriter

Turn a story, article or Reddit post into a short-form script. You get a hook, tight narration, a title and extra hooks. $0.02 per script.

Ready to run — no setup

Subtitle Translator iconAI Video & Content Studio

Subtitle Translator

Translate SRT and VTT subtitles into many languages in one run, or transcribe a video first. Timings stay exact. $0.05 per language, flat rate.

Ready to run — no setup

AI Thumbnail Generator iconAI Video & Content Studio

AI Thumbnail Generator

Generate video thumbnails with AI. A close-up face plus a bold hook headline. Sizes 9:16, 16:9 and 1:1. For YouTube, Shorts, Reels and ads.

Ready to run — no setup

See all AI Video & Content Studio →

AI Storyboard Generator: turn a story into a run of scene images that match

Paste a story and it breaks it into scenes, then renders one image per scene with the same art style and the same character notes carried through every prompt. Or skip the splitting and hand it your own scene list.

Two things to know first. It runs on your own OpenAI key, so the renders are billed to you by OpenAI on top of the per-image charge here. And the continuity is prompt-based: characters stay recognisable across shots, they are not pixel-identical.

InputA story in story, or your own list in scenes
OutputOne image and one row per scene
Ceiling20 images per run
Account neededYour own OpenAI API key
Price$0.05 per scene image, flat on every plan

🎬 What AI Storyboard Generator does

Two paths in, one path out.

Give it story and a chat model reads it and writes short visual descriptions, one per shot. Give it scenes instead and that step is skipped entirely, which is the cheaper route when you already know your shot list: no chat call, no key needed for splitting.

Either way, every scene description gets the same treatment before it is rendered: your style in front of it, your characters notes after it, and a rule asking for no lettering. That repetition is what keeps the run looking like one piece of work rather than nine unrelated pictures.

Scenes render one at a time, and each one takes a while. A measured two-scene run at 9:16 took roughly 27 seconds per image.

aspectRatio decides the shape: 9:16 gives 1024x1536, 16:9 gives 1536x1024, 1:1 gives 1024x1024.

📥 What you give it

{
  "story": "A lonely lighthouse keeper finds a glowing bottle washed ashore. Inside is a map to an island that should not exist. He sets sail at dawn.",
  "numScenes": 6,
  "style": "cinematic, highly detailed, dramatic lighting",
  "characters": "an old bearded keeper in a yellow raincoat",
  "aspectRatio": "9:16",
  "quality": "high"
}

Nothing in this schema has a default. The form opens with example values filled in, and those are a starting point, not a setting the actor falls back to.

FieldPrefilled withWhat it is
storya lighthouse exampleThe text to break into scenes. Long input is cut at 6,000 characters before splitting.
scenesnothingYour own scene descriptions, one image each. Supplying this skips the splitting step.
numScenes6How many scenes the split is asked for, between 1 and 20. Read the note below.
stylea cinematic lookThe art direction put in front of every prompt. This is the main lever on how the set looks.
charactersnothingWho keeps appearing, in a sentence. Added to every prompt so faces and clothes stay close.
aspectRatio9:169:16, 16:9 or 1:1.
qualityhighlow, medium or high. This moves your own OpenAI bill, not the charge here.
openaiApiKeynothingYour own OpenAI key, used for both the splitting call and the renders. Marked secret.
baseUrlnothingAdvanced. Any OpenAI-compatible host. Empty means https://api.openai.com/v1.
sceneModelgpt-4o-miniThe chat model that does the splitting. Ignored when you pass scenes.
imageModelgpt-image-1The image model. It has to exist on whatever baseUrl you point at.

numScenes is a request, not a cap. It is what the splitting model is asked for, and the list it returns is used as it comes back, so you can end up with a couple more images than you asked for and pay for those too. The hard ceiling is 20. If you want an exact count, pass scenes yourself.

📤 What you get back

One row per image that was rendered and stored, and the picture itself in the run's key-value store under a key like scene-01-1786411663909.png.

FieldWhat it is
oktrue. Only delivered images reach the dataset at all.
indexScene number, counting from 1.
sceneThe scene description, either the model's or yours.
promptThe full text that was actually sent, style and character notes included.
imageKeyThe key-value store key the picture is saved under.
imageUrlA direct link to it.
aspectRatio, sizeWhat you asked for, and the pixel size that came out.
contentType, bytesThe image type as read off the file, and how big it is.

No example row is printed here. Storyboard images are large: a measured two-scene run returned PNGs of 2,257,573 and 1,902,976 bytes.

🧾 Reading the output

The dataset only ever holds finished images. A scene that failed is not in it, and neither is any notice about the run.

Everything else goes to two places: a DIAGNOSTICS record in the run's key-value store, and a separate dataset named storyboard-diagnostics in your account. Both carry a short reason code:

ReasonWhat happened
missing_api_keyNo key was supplied, so nothing was rendered.
no_story_and_no_scenesNeither field had anything in it.
scene_split_failedThe chat model could not produce a usable scene list.
no_usable_scenesThe split came back, but every scene in it was blank.

The run finishes green in all four cases, with an empty dataset. That is deliberate, since the dataset is what gets billed, but it does mean an empty dataset here means read DIAGNOSTICS, not that your story was too short.

One thing to keep an eye on: storyboard-diagnostics is a named dataset, so it sits in your account after the run and grows with every run you do. Clear it out occasionally.

The Overview table shows index, scene, imageUrl and aspectRatio. prompt, bytes and contentType are in the row but not in that table.

▶️ How to run it

1. Open AI Storyboard Generator and click Try for free. 2. Paste your key into OpenAI API key (BYO). 3. Put your text in Story / script, or your own shots in Scenes (optional). 4. Write a line into Art style, and another into Character notes if people recur. These two do most of the work. 5. Click Start, then take the pictures from the run's Storage tab.

💰 How much does it cost?

$0.05 per scene image. Flat on every Apify plan, no volume tiers.

You pay per picture that was rendered and stored. Scenes that failed are not charged, and a run stopped by one of the four reasons above delivers no images and charges for none. OpenAI bills your own key separately for the splitting call and the renders, and quality moves that figure, not this one.

💡 What people use it for

  • Shot sequences for faceless video, where a script has to become pictures before anything is cut.
  • Comic and webtoon roughs, working from a scene list rather than a story.
  • Ad and pitch concepts, where the point is showing a client the run of shots, not a finished frame.
  • Laying out a children's book or an explainer, one page at a time, in one style.

🚧 What it does not do

  • It does not lock a face. Continuity comes from repeating your characters notes in every

prompt, so people stay close but shift a little shot to shot. If you need a locked character, the reference bank below is the better tool.

  • No video. Still images only, no motion, no assembly.
  • No editing or upscaling. It renders once. There is no retouch pass and no second attempt on a

picture you dislike.

  • 20 images per run, whatever numScenes says.
  • No text in the images. Prompts ask for none, because rendered lettering usually comes out

wrong.

  • It will not work without your key, and the key has to be valid for both the chat model and the

image model you name.

🧭 Which AI image actor do you need?

If you wantUse
A run of scene images from a storyThis one
One character in many poses, locked to a reference setAI Character Reference Bank
A finished vertical video, script and voice includedAI Faceless Video Generator
Images you already have turned into a videoStoryboard Video Generator
A single thumbnail rather than a sequenceViral Thumbnail Generator

❓ Questions people ask

Do I need my own key? Yes, for the renders. There is no shared key behind this.

Can I get exactly six images? Pass six entries in scenes. Going through story and numScenes asks for six and usually gets six, but the list is used as returned.

Why did my run finish with nothing in it? One of the four reasons above. Open DIAGNOSTICS in the run's key-value store and it will say which.

Will the same character look the same in every shot? Close, not identical. Write the characters note like a casting brief, with hair, age and clothing in it, and it holds up better.

Can I use a model other than gpt-image-1? Yes, if it answers on your baseUrl. Set imageModel and sceneModel to names that exist there.

How long does a run take? About half a minute per image, one after another.

🆘 If something breaks

Open the Issues tab on the actor page. Include the run ID and the reason code from DIAGNOSTICS, since it already carries the exact message and a suggested fix.