Workflow Optimization ·
Sora 2 Prompt “Containers” vs. Prompts: The 15-Minute Creator Workflow to Stop Ignored Duration, Resolution, and Character Settings (as of 2026-04-13)
Stop “duration/resolution/character” being ignored in Sora 2: use container parameters first, then write the shot. A 15‑minute workflow + examples.
On this page
- Why your prompt gets ignored: “container parameters” vs. prompt text
- The 15-minute creator workflow: set containers first, then write the shot
- Step 1 (3 minutes): Pick your
- Step 2 (3 minutes): Lock
- Step 3 (4 minutes): Decide up front
- Step 4 (5 minutes): Write the shot prompt (only what belongs the container)
- One short checklist (under 15 minutes)
- Copy/paste “Container Card” (decide this for every clip)
- Container Card (Sora 2-style)
- Copy/paste “Shot Card” (what to write in the prompt every time)
- Shot Card (Prompt Text)
- Common failure modes (and the exact fix)
- Duration ignored (“make it longer”)
- Resolution ignored (“4K”, “1080p”, “vertical”)
- Character consistency drifts (“same character as before”)
- Mini decision tree: change containers vs rewrite the prompt
- Example: one marketing clip rewritten (bad prompt vs fixed setup + prompt)
- Bad prompt (why it fails)
- Fixed setup + prompt (containers first)
- How to port this thinking to Veo3Gen (so settings don’t fight your prompt)
- Quick FAQ (as of 2026-04-13)
- What are “container parameters” in Sora 2?
- Can I ask for 1080×1920 just by writing “vertical 1080p”?
- What durations can I set?
- How do I keep the same character across clips?
- If I need something longer than one clip, what should I do?
- Related reading
- CTA: turn this workflow into repeatable generation
- Try Veo3Gen (Affordable Veo 3.1 Access)
- Sources
Why your prompt gets ignored: “container parameters” vs. prompt text
If you’ve ever written “make it 20 seconds, 4K, same character” and the output still comes back short, low-res, or with a slightly different face—this is usually not a “bad prompt” problem. It’s a where you put the instruction problem.
In plain English:
- Container parameters are the generation settings that surround your prompt—think: the form fields / API parameters that define the boundaries of the clip.
- Prompt text is the shot description—what happens inside those boundaries.
OpenAI’s Sora 2 Prompting Guide is explicit that certain video attributes are governed only by API parameters and cannot be reliably requested in prose. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
As of 2026-04-13, the guide calls out capabilities that map neatly to “containers,” including:
- Resolution / size (set via a
sizeparameter in{width}x{height}format; supported resolutions depend on the model). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Duration (set via a
secondsparameter, with supported values4,8,12,16,20; default is4). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Character references (upload once, then reference a character ID to keep appearance consistent; optional
characterscan reference up to two uploaded characters). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
When you treat those like “prompt adjectives” instead of hard settings, your prose can be ignored—because it’s asking the model to break its own container.
The 15-minute creator workflow: set containers first, then write the shot
This workflow is designed for solo creators who want repeatable outputs—marketing clips, social ads, explainers, storyboards—without endlessly re-prompting.
Step 1 (3 minutes): Pick your model container
Decide which model family you’re targeting (for Sora API, the guide lists sora-2 and sora-2-pro). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
This matters because supported sizes differ by model. For example, the guide lists sora-2 supporting 720x1280 and 1280x720. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
And it lists sora-2-pro supporting additional sizes including 1920x1080 and 1080x1920. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Step 2 (3 minutes): Lock duration and aspect
Choose your duration as a container value, not a sentence:
- Set
secondsto one of:4,8,12,16,20(default4). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
The guide notes that maximum duration increased from 12 seconds to 20 seconds. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Then choose size using the {width}x{height} string format. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Step 3 (4 minutes): Decide character consistency up front
If your clip needs the “same person” across variants or across episodes, treat character identity as a container reference:
- Character references let you upload a character once and reuse it across videos with consistent appearance. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- The optional
charactersparameter can reference up to two uploaded characters, and each entry should include the character ID returned from upload. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Step 4 (5 minutes): Write the shot prompt (only what belongs inside the container)
Now write your prompt text as if duration/resolution/identity are already handled.
Focus on:
- Subject + action
- Location + time of day
- Camera/shot language (wide/close, movement)
- Lighting + style references
- What must not happen (sparingly)
One short checklist (under 15 minutes)
- Choose model (
sora-2vssora-2-pro) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Set size in
{width}x{height}supported by that model (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Set duration with
seconds(4/8/12/16/20) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Attach character reference IDs (0–2) if continuity matters (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Write a shot prompt that assumes those settings are already locked
Copy/paste “Container Card” (decide this for every clip)
Use this as a preflight card in your notes app or production doc.
Container Card (Sora 2-style)
- Model:
sora-2orsora-2-pro(https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Size:
{width}x{height}(supported sizes depend on model) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Seconds:
4 | 8 | 12 | 16 | 20(default4) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Characters (optional):
[character_id_1, character_id_2](max 2) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Extension plan (optional): If you’ll need a longer narrative, plan for video extension, which can extend an existing clip using the full initial clip as context. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Copy/paste “Shot Card” (what to write in the prompt every time)
Shot Card (Prompt Text)
- One-line intent: What should the viewer feel/understand?
- Subject & wardrobe: Who/what, key visual traits (but not “same character” if you’re using references).
- Setting: Location, era, time of day, weather.
- Action beats: 2–4 sequential beats (what happens).
- Camera language: lens vibe, framing, movement.
- Lighting & color: soft/hard, warm/cool, contrast.
- Style constraints: e.g., “documentary realism,” “product commercial,” “handheld street footage.”
- Guardrails: 1–2 “avoid” statements (avoid logo distortion, avoid extra limbs, etc.).
Common failure modes (and the exact fix)
Duration ignored (“make it longer”)
Symptom: You ask for “longer,” but you still get a short clip.
Fix: Set seconds to the target value (16 or 20) instead of requesting duration in prose. The guide lists supported seconds values and notes certain attributes must be set via parameters. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
If you need a story that exceeds a single clip, plan to extend a clip; the guide describes extension using the full initial clip as context. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Resolution ignored (“4K”, “1080p”, “vertical”)
Symptom: You request “4K” or “vertical,” but exports don’t match.
Fix: Set size explicitly using {width}x{height} supported by your model. For sora-2-pro, the guide lists sizes including 1920x1080 and 1080x1920. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Character consistency drifts (“same character as before”)
Symptom: Same “person” changes hair/face/clothes across takes.
Fix: Use character references. The guide says you can upload a character once and reuse it across videos with consistent appearance. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Mini decision tree: change containers vs rewrite the prompt
- If the issue is length → change
seconds(container). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - If the issue is framing/aspect/resolution → change
size(container). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - If the issue is same character across clips → add/adjust
charactersreferences (container). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - If the issue is what happens in the scene (action, mood, camera move, style) → rewrite prompt text (shot card).
Example: one marketing clip rewritten (bad prompt vs fixed setup + prompt)
Bad prompt (why it fails)
“Make a 20-second 4K vertical ad for a new smart water bottle. Same female athlete character as before. Cinematic lighting. Make it longer if needed.”
What’s wrong: It mixes container requirements (duration, resolution, vertical format, character reuse) into prose. The Sora guide warns some attributes are controlled only by parameters, not by text. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Fixed setup + prompt (containers first)
Container Card
- Model:
sora-2-pro(https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Size:
1080x1920(vertical) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Seconds:
20(https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Characters:
[athlete_character_id](consistent identity) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Shot prompt (text only)
“Vertical product commercial. A focused female athlete finishes a sunrise run on a quiet city bridge. She stops, pulls a sleek smart water bottle from her bag, and taps the cap; a subtle indicator light turns on. Close-up of condensation and water swirling as she drinks. Cut to a medium shot as she smiles, stretches, and jogs away. Cinematic golden-hour lighting, shallow depth of field, smooth gimbal movement, clean modern color grade. Keep branding minimal and legible; avoid warped text.”
This split keeps the model from negotiating with your “please be longer” sentence—because the clip’s boundaries are already decided.
How to port this thinking to Veo3Gen (so settings don’t fight your prompt)
Even if your tool UI or API doesn’t match Sora 2 parameter names 1:1, the mental model transfers:
- Set generation settings first (duration, resolution/aspect, reference images/characters where available).
- Then write the shot (action, camera, style, guardrails).
The win is practical: you stop overloading the prompt with “meta” instructions that belong in settings, and you get cleaner iteration loops—especially when you’re producing multiple variations for the same campaign.
Quick FAQ (as of 2026-04-13)
What are “container parameters” in Sora 2?
They’re the settings around the prompt that define constraints like duration (seconds), resolution (size), and character reuse (characters)—attributes that the guide notes aren’t reliably controlled via prose. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Can I ask for 1080×1920 just by writing “vertical 1080p”?
The guide describes setting size as {width}x{height} and lists supported resolutions by model; for sora-2-pro, 1080x1920 is supported. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
What durations can I set?
The guide lists seconds values 4, 8, 12, 16, 20 (default 4) and notes the maximum increased to 20 seconds. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
How do I keep the same character across clips?
Use character references: upload the character once, then reference its ID in the characters parameter (up to two per generation). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
If I need something longer than one clip, what should I do?
Plan a multi-clip workflow and use video extension where appropriate; the guide states extension can use the full initial clip as context. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Related reading
- Getting started with the Veo 3 API
- What is the Veo 3 API?
- Veo 3.1 vs Sora 2: comparison for creators
CTA: turn this workflow into repeatable generation
If you want to operationalize the “containers first, shot second” approach in your own pipeline, Veo3Gen is built for structured generation workflows.
- Explore the endpoints and how to pass generation settings cleanly: /api
- Estimate costs and plan production runs: /pricing
Try Veo3Gen (Affordable Veo 3.1 Access)
If you want to turn these tips into real clips today, try Veo3Gen:
Sources
Try Veo 3 & Veo 3 API for Free
Experience cinematic AI video generation at the industry's lowest price point. No credit card required to start.