Opennan

Story concepts

Live

Send a script, lyrics or a story idea. Get distinct film concepts, each with a synopsis, a visual style, a story arc, key scenes, locations, key objects and the story's sections.

$0.2808 per runFailed runs are not charged.

Story concepts

Input

287 / 20,000
For example: anime, film noir, warm 3D animation.
One a line, up to 10: a name, then what they look like after a colon.
Kept in every concept.

$0.2808 per run.

These tools need an API key with the api:opennan scope: paste one under Use API key to run them.

Output

Example
Example outputMade with these inputs

The Cabin on the Ridge

Leo's journey is told exactly as the lyrics describe — a weary climb rewarded by warmth, a mysterious map, and a hopeful dawn departure. The video ends with the first breathtaking glimpse of the hidden lake, glittering below the mountains. Every visual beat mirrors the song's gentle, wonder-filled tone.

Visual style

Warm amber and honey tones dominate interior scenes; crisp blue-white snow outside creates a cozy contrast. Soft volumetric lighting spills from cabin windows into the dusk. Camera moves are slow and deliberate — wide establishing shots of the mountain, then intimate close-ups inside the cabin. 3D animation with slightly painterly textures, like a storybook illustration come to life.

Story arc

The video opens on a vast snowy mountain at dusk, tiny Leo visible against the immensity of the landscape — immediately establishing scale and wonder. As he reaches the cabin and steps inside, the world shrinks to something warm and safe, full of small discoveries. The old map becomes the emotional turning point — his eyes light up, and we feel the pull of the unknown. Dawn arrives gently, and Leo steps back into the cold world, but now with purpose. The final shot — the hidden lake revealed below the treeline — lands as a quiet, earned miracle.

Key scenes

  1. Leo silhouetted against a violet dusk sky, the glowing cabin window the only warm light on the entire snowy slope — he reaches out and touches the door.
  2. Close-up of Leo's gloved finger tracing the route on the old map pinned to the cabin wall, his breath fogging slightly in the cold air.
  3. Time-lapse of the cabin at night — stars wheel overhead, warm light steady in the window — then dawn blushes pink across the snow.
  4. Leo crests a final ridge at golden hour and stops. Camera slowly pulls back to reveal the hidden lake below, perfectly still, reflecting the morning sky.

Locations

  • snowy_mountain_slope · Steep snow-covered hillside at dusk, purple-blue shadows, sparse pine trees, soft gradient sky fading from orange to violet
  • cabin_exterior_dusk · Small log cabin on a snowy ridge, amber light glowing warmly from two square windows, thin smoke curling from stone chimney
  • cabin_interior · Cozy single-room log cabin, stone fireplace casting warm orange glow, wooden shelves with jars and books, planked floor dusted with snow from the open door
  • cabin_exterior_dawn · Same log cabin at early morning, snow tinted pink-gold by rising sun, long blue shadows stretching across fresh undisturbed snow
  • mountain_ridge_path · Narrow snow trail winding between frosted pine trees, pale morning light filtering through branches, footprints forming behind a small walking figure
  • hidden_lake_reveal · Vast pristine alpine lake in a mountain valley, perfectly still water reflecting gold-pink dawn sky, surrounded by snow-capped peaks, no footprints anywhere

How it works

  1. 01Send the scriptUp to 20,000 characters, with your characters and direction.
  2. 02We write conceptsEach one a different take, built around your direction.
  3. 03Pick oneUse its scenes, locations and objects to plan the film.

Call Story concepts from your code

One endpoint and one key, on the same balance as the playground. The request below is the example's own.

POSThttps://api.opennan.com/v1/story/concepts
  1. Get an API key

    Create a key in the console. It uses the same balance as the playground.

    Create a key
  2. Send your first request

    The same request the playground sends. Set OPENNAN_KEY to your key.

    curl https://api.opennan.com/v1/story/concepts \
      -H "Authorization: Bearer $OPENNAN_KEY" \
      -H "Content-Type: application/json" \
      -d '{"script":"Leo, a cheerful young explorer in a green jacket with a big backpack, reaches a snowy log cabin at dusk after a long climb. Warm light glows in the windows. Inside he finds an old map pinned to the wall, showing a hidden lake beyond the mountains. At dawn he sets off again, map in hand.","style":"warm 3D animation","characters":[{"name":"Leo","description":"a cheerful young explorer, green jacket, big backpack, brown hair"}],"direction":"Keep it hopeful and gentle; end on the first view of the hidden lake."}'
    
    # Then poll until "status" is "succeeded" or "failed":
    curl https://api.opennan.com/v1/tasks/<task id> -H "Authorization: Bearer $OPENNAN_KEY"
  3. Poll the task

    The call answers right away with a task id. Ask for the task until it finishes:

    GEThttps://api.opennan.com/v1/tasks/{id}
    queued
    Waiting for a worker
    running
    Being made
    succeeded
    Done: outputs[].url holds the files
    failed
    Failed: you are not charged

Errors and how to fix them

  • 401Missing or wrong key

    Send the header Authorization: Bearer with a key from the console.

  • 402Balance too low

    Add credit in Billing, then send the same call again.

  • 400A value is not accepted

    Read error.message: it names the field. Use a value from the parameter table.

  • 429Too many requests

    Wait a few seconds and try again, waiting longer after each 429.

Add Opennan to your AI app

One install gives your AI every Opennan tool: video, images, chat, voice, music, sound effects, 3D, captions and dubbing. Pick your app and follow the steps.

MCP serverhttps://api.opennan.com/v1/mcp

Works in the Codex CLI, the Codex app and the Codex IDE extension: they share ~/.codex/config.toml. If the app or IDE does not see OPENNAN_KEY, use the config.toml option with your key in it. Codex asks before each tool call: approve it to go on.

  1. Get an API key

    Create a key in the console. It starts with sk- and uses the same balance as the website.

    Create a key
  2. Save your key as OPENNAN_KEY

    # macOS / Linux (zsh shown; bash: ~/.bashrc)
    echo 'export OPENNAN_KEY="sk-..."' >> ~/.zshrc
    source ~/.zshrc
    
    # Windows (PowerShell), then open a new terminal
    setx OPENNAN_KEY "sk-..."
  3. Install the Opennan plugin: the server plus a skill that teaches your AI to pick models, confirm prices and wait for results

    codex plugin marketplace add Opennan/opennan-ai-plugin
    codex plugin add opennan@opennan
  4. Or add only the server

    codex mcp add opennan --url https://api.opennan.com/v1/mcp --bearer-token-env-var OPENNAN_KEY
  5. Or add this to ~/.codex/config.toml

    [mcp_servers.opennan]
    url = "https://api.opennan.com/v1/mcp"
    http_headers = { Authorization = "Bearer sk-..." }
  6. Check that opennan is listed

    codex mcp list
  7. Restart Codex, then ask for anything

    “Make a 5 second video of rain on a neon street, a song to go with it and a poster image.”

Replace sk-... with your own key and keep it private: anyone who has it can spend your balance. Your app can list the tools before you add a key; making anything needs one.

This tool from your AI

Once Opennan is added, your AI calls this tool with arguments like these.

Tool
generate_concepts
Example arguments
{
  "script": "Leo, a cheerful young explorer in a green jacket with a big backpack, reaches a snowy log cabin at dusk after a long climb. Warm light glows in the windows. Inside he finds an old map pinned to the wall, showing a hidden lake beyond the mountains. At dawn he sets off again, map in hand.",
  "style": "warm 3D animation",
  "characters": [
    {
      "name": "Leo",
      "description": "a cheerful young explorer, green jacket, big backpack, brown hair"
    }
  ],
  "direction": "Keep it hopeful and gentle; end on the first view of the hidden lake."
}

Story concepts: questions

How much does Story concepts cost?

$0.2808 per run. The Run button shows the exact price for your input before you start.

How do I call it from my code?

Send POST https://api.opennan.com/v1/story/concepts with your API key. It answers with a task id: ask https://api.opennan.com/v1/tasks/{id} until the task succeeds or fails.

Can my AI agent use it?

Yes. Add the MCP server https://api.opennan.com/v1/mcp and call the generate_concepts tool, or point your agent at https://api.opennan.com/llms.txt.

What happens if a run fails?

A failed run is not charged. You pay only for results.

Which API key do I need?

A key with the api:opennan scope. A full api key does not include it: create one with that scope in the console, then use it here under Use API key or in your code.

We only use the cookies the site needs, such as your language and a referral code. No ads. We count page visits with cookie-free analytics. See our Cookie Policy for details.