Prompt Engineering & Creative Control ·
Sora 2 “Container vs Prompt” Explained for Creators: The 12 Settings to Lock Outside the Prompt (and the 8 You Should Leave to Text) (as of 2026-05-27)
Learn “container vs prompt” for AI video: what to set as parameters (duration, size, refs) vs what to describe in text—plus rewrites and a fast checklist.
On this page
- What “container vs prompt” actually means (in plain creator language)
- The 12 things you should lock as settings (not write in the prompt)
- Two-column cheat sheet: settings vs prompt
- A practical note on resolutions and duration (Sora 2 examples)
- The 8 things text prompts are best at controlling
- A creator checklist: diagnose “ignored prompt” vs “wrong settings” in 90 seconds
- 90-second checklist
- 3 prompt examples rewritten the right way (bad → better → best)
- Example 1: Duration + resolution stuffed into the prompt
- Example 2: Aspect ratio + ‘4K’ arguments in prose
- Example 3: Consistent character across scenes
- How to adapt this to Veo3Gen (even if your UI uses different labels)
- Common edge cases: why models still “disobey” (and what to do next)
- Edge case 1: You’re asking prose to override the container
- Edge case 2: Supported resolutions depend on the model
- Edge case 3: Consistency needs references, not just adjectives
- Edge case 4: Randomness and iteration are part of the workflow
- FAQ
- What does “container vs prompt” mean in one sentence?
- Can I request resolution and duration in the prompt instead of settings?
- How long can Sora 2 videos be?
- How do I keep a character consistent across multiple videos?
- Why does the same prompt produce different results each time?
- Related reading
- CTA: Make your specs predictable, then iterate creatively
- Try Veo3Gen (Affordable Veo 3.1 Access)
- Sources
What “container vs prompt” actually means (in plain creator language)
Container = the settings/parameters that constrain the generation. Think: which model, what resolution, how long the clip is, and which uploaded references are allowed. These are the knobs that define the “box” your video must fit inside.
Prompt = the shot description: what we see, who’s there, what they do, the mood, lighting, camera movement, and story beats.
This separation isn’t just a workflow preference—it’s an API reality. OpenAI’s Sora 2 prompting guidance explicitly notes that some attributes are controlled only by API parameters and can’t reliably be requested in prose. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
So if you’ve been writing “10 seconds, 4K, cinematic quality” inside a paragraph and wondering why it gets ignored, you’re not failing at prompting—you’re putting “container” instructions in the wrong place.
One more mindset shift: re-running the same prompt can produce different results. Variation is normal in generative video; treat each run as a draft and iterate rather than expecting identical clones.
The 12 things you should lock as settings (not write in the prompt)
Below are the types of controls that belong in settings/parameters—because they constrain the generator, and because some of them are explicitly defined as API parameters in the Sora 2 guide.
Two-column cheat sheet: settings vs prompt
| Put in Settings (container) | Put in Prompt (shot text) |
|---|---|
Model choice (e.g., sora-2 vs sora-2-pro) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) |
“Handheld documentary feel” |
Frame size / resolution (use {width}x{height}) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) |
“Tight close-up on hands shaping clay” |
| Duration in seconds (values like 4/8/12/16/20; default 4) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Start calm, then accelerate into a lively rhythm” |
| Aspect orientation (choose width/height that implies vertical vs horizontal) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Vertical social video vibe with centered composition” |
| Character reference IDs (reuse a character upload for consistency) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “A cheerful barista wearing a teal apron” |
| Max two character references per generation (plan scenes accordingly) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Two friends exchange a knowing glance” |
| Export target (pick a supported resolution for your chosen model) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Soft, natural window light; gentle film grain” |
| Video extension mode (extend an existing clip rather than re-generating) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Continue the motion smoothly as the subject exits frame” |
| Extension context selection (extension uses the full initial clip as context) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Match the same color palette and camera movement” |
| Batch / async workflow for many shots (use batch jobs when scaling) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) | “Give me three variations: calm, energetic, dreamy” (as creative intent) |
| Project-level spec locking (series consistency: same size + seconds across shots) | “Episode 3: the reveal happens in the last beat” |
| Reference asset selection (choose which uploaded references are in play) | “Wardrobe: neutral tones; minimal logos; brand-safe” |
A practical note on resolutions and duration (Sora 2 examples)
If you are using Sora 2 directly, the guide describes:
secondssupports 4, 8, 12, 16, 20 with a default of 4, and the max duration increased from 12 to 20 seconds. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)sizeis{width}x{height}, and supported resolutions depend on model. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)- Supported sizes include 1920×1080 and 1080×1920 as higher-resolution exports. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
In Veo3Gen, you should map these ideas to the closest available controls in the UI or API (as of 2026-05-27) rather than assuming identical parameter names.
The 8 things text prompts are best at controlling
Once you’ve locked the container, keep the prompt focused on visual direction. In practice, prompts excel at:
- Subject and action (who/what is doing what)
- Setting (location, time of day, weather)
- Camera language (wide shot vs close-up, dolly-in, overhead, handheld)
- Composition (rule of thirds, centered hero framing, negative space)
- Lighting (soft daylight, neon rim light, candlelit interior)
- Mood and genre (whimsical, tense, cozy, commercial, documentary)
- Texture and materials (wet pavement reflections, ceramic glaze, wool fibers)
- Pacing inside the clip (a calm opening beat, a moment of surprise, a clean ending)
The payoff: prompts get shorter, clearer, and easier to iterate.
A creator checklist: diagnose “ignored prompt” vs “wrong settings” in 90 seconds
Use this quick checklist whenever a generation “disobeys” you.
90-second checklist
- Did I set duration in settings (not in the prose)? The Sora 2 guide treats duration as an API parameter (
seconds). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Did I set resolution/aspect in settings via
size(or the equivalent control)? (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide) - Am I asking for a size my model doesn’t support? Supported resolutions depend on model. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- If I need consistency, did I use character references (or your tool’s closest equivalent)? Character references are designed for consistent appearance across videos. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Am I expecting identical output from identical input? Variation is normal—run multiple takes and pick the best.
3 prompt examples rewritten the right way (bad → better → best)
These examples are brand-safe and original. The point is structure: move container requests out of prose.
Example 1: Duration + resolution stuffed into the prompt
Bad (prompt tries to force specs):
“Create a 20-second 1920x1080 ultra high quality cinematic video of a chef plating ramen, with dramatic lighting.”
Better (settings + prompt split):
- Settings: duration = 20s; size = 1920x1080 (pick a supported size for your model) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Prompt: “A chef plates ramen with deliberate, elegant movements. Warm dramatic key light, shallow depth of field, slow push-in, steam visible.”
Best (adds clear shot beats without spec-noise):
- Settings: duration = 20s; size = 1920x1080
- Prompt: “Close-up on hands finishing a bowl of ramen. Start on garnish placement, then a slow push-in to reveal the full bowl. Warm tungsten highlights, soft shadows, visible steam, calm premium food-ad aesthetic.”
Example 2: Aspect ratio + ‘4K’ arguments in prose
Bad:
“Vertical 4K TikTok format, 16 seconds, best quality. A cyclist rides through a rainy city at night.”
Better:
- Settings: duration = 16s; size = 1080x1920 (or nearest supported vertical size) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Prompt: “A cyclist rides through a rainy city at night. Neon reflections on wet pavement, light mist, handheld tracking shot behind the rider.”
Best:
- Settings: duration = 16s; size = 1080x1920
- Prompt: “Night rain ride through a neon-lit street. Tracking shot from behind, occasional side profile cut-in feel, water droplets on lens, saturated cyan/magenta reflections, energetic pace but readable subject.”
Example 3: Consistent character across scenes
Bad:
“Use the same woman from my last video, exactly the same face and outfit. 12 seconds. Office scene.”
Better:
- Settings: duration = 12s; character reference = uploaded character ID (character references are meant for consistent appearance) (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Prompt: “In a modern office, she reviews notes, looks up, and smiles subtly. Clean soft lighting, medium shot, gentle camera drift.”
Best (accounts for reference limits + clear visual cues):
- Settings: duration = 12s; characters = up to two IDs if needed (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
- Prompt: “Modern office, late afternoon. Character sits at desk with a notebook and a ceramic mug. She pauses writing, looks toward camera with a confident, friendly smile. Neutral wardrobe, minimal accessories, soft window light, steady medium shot.”
How to adapt this to Veo3Gen (even if your UI uses different labels)
Think in roles, not parameter names:
- If Sora 2 says
seconds, find Veo3Gen’s clip length / duration control. - If Sora 2 says
size, use Veo3Gen’s resolution / aspect controls. - If Sora 2 uses character references, look for Veo3Gen’s closest feature for reusable character/identity references—or emulate consistency by keeping wardrobe, hair, and defining traits stable in the prompt.
- If Sora 2 supports video extension, translate that to Veo3Gen’s nearest extend/continue workflow (if available) rather than trying to “continue the last frame” purely with text. Sora 2’s extension uses the full clip as context. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
When in doubt: put anything that sounds like a hard spec into settings, and keep prompts focused on what a director would say on set.
Common edge cases: why models still “disobey” (and what to do next)
Edge case 1: You’re asking prose to override the container
If the container says one size/duration but the prompt begs for another, the system will prioritize the parameter. OpenAI explicitly frames some attributes as governed by parameters rather than prose. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Fix: make settings authoritative; remove spec language from the prompt.
Edge case 2: Supported resolutions depend on the model
The Sora 2 guide lists different supported sizes by model (e.g., sora-2 vs sora-2-pro). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Fix: pick the model first, then select a supported size.
Edge case 3: Consistency needs references, not just adjectives
Character references are designed so you can upload once and reuse across videos with consistent appearance. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Fix: use reference features when available; otherwise simplify wardrobe and keep prompts consistent.
Edge case 4: Randomness and iteration are part of the workflow
Even with perfect structure, you’ll see variation between runs. That’s normal. Treat outputs like takes: generate a few options, keep what works, and adjust one variable at a time.
FAQ
What does “container vs prompt” mean in one sentence?
Container is settings/parameters that constrain the generation (like duration and resolution), while the prompt is text that describes the shot.
Can I request resolution and duration in the prompt instead of settings?
Not reliably. The Sora 2 guide notes that certain attributes are governed only by API parameters and can’t be requested in prose. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
How long can Sora 2 videos be?
The Sora 2 guide states the maximum duration increased from 12 seconds to 20 seconds, and seconds supports 4/8/12/16/20 (default 4). (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
How do I keep a character consistent across multiple videos?
Use character references when available: upload a character once and reuse it for consistent appearance across videos. (https://developers.openai.com/cookbook/examples/sora/sora2_prompting_guide)
Why does the same prompt produce different results each time?
Generative video has inherent variability. Plan to iterate: run multiple takes, then refine prompts and settings based on what you observe.
Related reading
CTA: Make your specs predictable, then iterate creatively
If you want a workflow where duration, resolution, and references live in settings—and prompts stay clean and direct—build your pipeline around explicit parameters and fast iteration.
- Explore the endpoints and see how to structure requests: /api
- Compare plans if you’re scaling generation or running many takes: /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.