OpenAI · text-to-video

    Sora 2 Text to Video Prompting Guide

    What this model actually wants — from its schema, not from vibes.

    Sora 2 Text to Video is OpenAI's text-to-video model on Versely. This page is its structured prompting reference: the 4 parameters its schema actually exposes, the t2v technique that applies to it, copy-ready templates.

    Everything here is grounded in the same sources Versely's agent reads — the model's input schema, the sora family rule its prompt enhancer applies. Where a line is general craft advice rather than a documented fact about Sora 2 Text to Video, the page says so.

    What Sora 2 Text to Video wants

    The exact input surface, from the same schema the Versely agent fetches with get_model_input_schema before every generation.

    Variant via kie

    ParameterWhat it doesValues
    promptreqText prompt (max 10000 chars)string (max 10000)
    aspect_ratioAspect orientation — KIE uses semantic values, NOT 16:9 / 9:16portrait · landscapedefault: landscape
    n_framesTotal seconds — string enum (NOT a `duration` field!)10 · 15default: 10
    character_id_listUp to 5 character IDs from sora-2-characters modelarray (max 5)
    • Use `n_frames` (string enum) for duration; KIE has no top-level `duration` field
    • Aspect ratios are `portrait` / `landscape` only — NOT 16:9-style strings

    Variant via fal

    ParameterWhat it doesValues
    promptreqText prompt (1-5000 chars per docs)string (min 1, max 5000)
    resolutionResolution (only 720p documented for standard tier)720pdefault: 720p
    aspect_ratioAspect ratio (no `auto` on T2V standard)9:16 · 16:9default: 16:9
    durationSeconds (4/8/12/16/20)4 · 8 · 12 · 16 · 20default: 4
    character_idsIDs from create-character endpoint (max 2; nullable per docs)array (max 2)
    • Audio is generated implicitly from the prompt — no toggle parameter

    The rule Versely's enhancer applies

    Versely's prompt enhancer carries a per-family rule for sora models, applied automatically whenever it rewrites a prompt for Sora 2 Text to Video. Verbatim:

    OpenAI Sora responds well to cinematic descriptions with clear scene narratives, camera movements, and temporal progression.

    Technique that applies here

    Text-to-video: scene narrative, camera movement, temporal flow; negative prompts where supported

    • VEO, Kling, and Sora all carry a MODEL_TIPS rule the prompt enhancer applies automatically, and all three converge on naming the camera: VEO's tip says to 'include camera angles, movement types (dolly, crane, steadicam), lighting setup, and temporal flow' and to 'be specific about scene transitions'; Kling's tip asks for 'camera movement (pan, zoom, tracking shot), subject action, and environment details... motion direction and pacing'; Sora's tip wants 'clear scene narratives, camera movements, and temporal progression.' None of these schemas expose a camera-movement parameter — the enhancer is rewriting your prose toward this language, so writing the move by name yourself ('slow dolly-in,' 'tracking shot following the subject') works with the family instead of getting rewritten.
    • Duration is a hard enum or cap per model, not a suggestion. VEO 3.1 is fixed at up to 8s per generation (extendable afterward via a separate call), and its fal variant's duration enum is literally '4s' / '6s' / '8s'. Sora 2's kie variant has no duration field at all — length is chosen via n_frames ('10' or '15'). Kling and Seedance's various tiers run roughly 3-15s windows depending on the exact model. Write one continuous beat sized to the window you're generating into, not a three-act script the model will compress or truncate.
    • Aspect ratio, resolution and style are dropdown enums on most of these schemas — set the parameter, don't restate it in prose ('in glorious widescreen' does nothing on its own). VEO's is 16:9 / 9:16 / Auto, Kling's is 16:9 / 9:16 / 1:1, Seedance 1.5 Pro's is seven values including 21:9 and auto. Sora 2's kie aspect_ratio enum is the sharpest exception: it's literally the words 'portrait' / 'landscape', not a ratio string, so writing or setting '16:9' does nothing there.

    Copy-ready templates

    Replace the bracketed slots; each template says when it's the right shape.

    Template 1
    [SUBJECT] [ACTION] in [SETTING]. Camera: [CAMERA MOVEMENT — e.g. slow dolly-in / handheld tracking shot / static locked-off]. Lighting: [LIGHT DESCRIPTION]. Transition: [HOW THE SHOT RESOLVES].

    Use when: VEO, Kling, or Sora-family t2v models — their applied MODEL_TIPS reward named camera movement and explicit transitions.

    Template 2
    [SUBJECT + ACTION + SETTING], portrait framing.

    Use when: Sora 2 Text to Video specifically — set aspect_ratio to the literal string 'portrait' or 'landscape' (not a ratio like 9:16) and choose length via the n_frames parameter ('10' or '15'), both as parameters rather than prompt text.

    How the Versely agent does this automatically

    You can use this page by hand, or let the agent apply the same knowledge. Four real mechanisms — no more, no less:

    • get_model_input_schema — before generating, the agent looks up Sora 2 Text to Video's exact input fields, required fields, allowed values, defaults, and min/max bounds. The parameter table above is that same surface.
    • The prompt enhancer's family rules — 12 per-family rewrite rules, including the sora rule quoted on this page, shape how a rough prompt gets rewritten.
    • The per-provider speech guide — for TTS scripts, the agent follows a provider-specific tag scheme — not relevant to this model, but it's why voiceover scripts come out marked up correctly.
    • expand_movie_scene — in movie flows, brief scene ideas are rewritten into detailed cinematic descriptions before generation.

    Mistakes that waste generations

    • Writing a multi-beat script (three different actions or cuts) into one generation call on a model capped well under 15s — VEO tops out at 8s per call, Sora 2's kie variant only offers 10 or 15 frames — and the model compresses everything into a blur or drops the later beats rather than pacing through your scenes.
    • Describing aspect ratio or resolution in prose ('shot in glorious 4K widescreen') instead of setting the actual aspect_ratio/resolution enum — the text has no effect on frame shape or output resolution, only the parameter does, and on Sora 2 the valid values are the words 'portrait'/'landscape', not a ratio string at all.
    • Using one family's register on another: a dense Kling-style shot list ('slow pan, then a hard cut to a tracking shot') fights a Wan model's 'straightforward... style keywords' tip, and a plain narrative sentence undersells VEO or Sora's named-camera-movement tip.

    Frequently asked questions

    How long can a Sora 2 Text to Video prompt be?+

    Sora 2 Text to Video's schema caps the prompt at 10,000 characters. Spend them on the subject, motion, and the register its family rewards rather than restating parameters the schema already controls.

    Does Sora 2 Text to Video support negative prompts?+

    No — Sora 2 Text to Video's published schema has no negative_prompt parameter. Exclusions have to be phrased positively inside the main prompt, or dropped.

    Which aspect ratios does Sora 2 Text to Video support?+

    The aspect_ratio parameter is an enum: portrait, landscape. Set the parameter — describing the frame shape in prose does nothing on its own.

    How long can a Sora 2 Text to Video generation be?+

    Duration is a hard enum: 4, 8, 12, 16, 20. Write one continuous beat sized to the window you pick, not a script the model will compress.

    How does the Versely agent know Sora 2 Text to Video's parameters?+

    Before generating, the agent calls its get_model_input_schema tool, which looks up the exact input fields, required fields, allowed values, defaults, and min/max bounds for the model; separately, the prompt enhancer applies the sora family rule quoted on this page to the prompt text itself. Nothing on this page is guessed — it is the same schema surface those tools read.

    Related prompting guides

    Generate with Sora 2 Text to Video

    Sora 2 Text to Video is live in Versely — paste a template above, or just describe what you want and let the agent map it onto the schema for you.