AI Storyboard Generator - Story to Scene Images
Pricing
from $50.00 / 1,000 scene image generateds
AI Storyboard Generator - Story to Scene Images
Turn a story or script into storyboard images. Paste a story and it splits it into scenes. Or pass your own scene list. Every image shares one art style. Character notes carry over, so faces stay the same. $0.05 per scene image ($50.00 per 1,000).
Pricing
from $50.00 / 1,000 scene image generateds
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
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.
| Input | A story in story, or your own list in scenes |
| Output | One image and one row per scene |
| Ceiling | 20 images per run |
| Account needed | Your 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.
| Field | Prefilled with | What it is |
|---|---|---|
story | a lighthouse example | The text to break into scenes. Long input is cut at 6,000 characters before splitting. |
scenes | nothing | Your own scene descriptions, one image each. Supplying this skips the splitting step. |
numScenes | 6 | How many scenes the split is asked for, between 1 and 20. Read the note below. |
style | a cinematic look | The art direction put in front of every prompt. This is the main lever on how the set looks. |
characters | nothing | Who keeps appearing, in a sentence. Added to every prompt so faces and clothes stay close. |
aspectRatio | 9:16 | 9:16, 16:9 or 1:1. |
quality | high | low, medium or high. This moves your own OpenAI bill, not the charge here. |
openaiApiKey | nothing | Your own OpenAI key, used for both the splitting call and the renders. Marked secret. |
baseUrl | nothing | Advanced. Any OpenAI-compatible host. Empty means https://api.openai.com/v1. |
sceneModel | gpt-4o-mini | The chat model that does the splitting. Ignored when you pass scenes. |
imageModel | gpt-image-1 | The 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.
| Field | What it is |
|---|---|
ok | true. Only delivered images reach the dataset at all. |
index | Scene number, counting from 1. |
scene | The scene description, either the model's or yours. |
prompt | The full text that was actually sent, style and character notes included. |
imageKey | The key-value store key the picture is saved under. |
imageUrl | A direct link to it. |
aspectRatio, size | What you asked for, and the pixel size that came out. |
contentType, bytes | The 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:
| Reason | What happened |
|---|---|
missing_api_key | No key was supplied, so nothing was rendered. |
no_story_and_no_scenes | Neither field had anything in it. |
scene_split_failed | The chat model could not produce a usable scene list. |
no_usable_scenes | The 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
- Open AI Storyboard Generator and click Try for free.
- Paste your key into OpenAI API key (BYO).
- Put your text in Story / script, or your own shots in Scenes (optional).
- Write a line into Art style, and another into Character notes if people recur. These two do most of the work.
- 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
charactersnotes 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
numScenessays. - 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 want | Use |
|---|---|
| A run of scene images from a story | This one |
| One character in many poses, locked to a reference set | AI Character Reference Bank |
| A finished vertical video, script and voice included | AI Faceless Video Generator |
| Images you already have turned into a video | Storyboard Video Generator |
| A single thumbnail rather than a sequence | Viral 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.