---
title: "AI Video Prompt Engineering Playbook 2026"
description: "A worked plan for AI video prompts: the five-part structure, JSON-style prompt blocks for Kling, Veo, Seedance and Wan, and how to measure results yourself."
canonical: "https://aicontentdrop.com/blog/ai-prompt-engineering-secrets"
source: "https://aicontentdrop.com/blog/ai-prompt-engineering-secrets"
---
Guide

April 15, 2026

19

min read

# AI Video Prompt Engineering Playbook: Structured Prompts by Model

A worked plan for AI video prompts: the five-part structure, JSON-style prompt blocks for Kling, Veo, Seedance and Wan, and how to measure results yourself.

prompt-engineering

ai-video

json-prompts

kling

This is a prompt engineering playbook for AI video, written as a plan you can run rather than a report on results. It gives you one prompt structure that holds across model families, a JSON-style block for each model with the fields that model's API actually accepts, a before-and-after prompt pair shown as plain text, and a measurement method so that the quality numbers at the end of your test are your own. There are no scores in this article. The credit costs and model limits come from the AI Content Drop catalog; everything else is procedure.

An earlier version of this page presented the same material as a case study with quality scores attached. Those scores were not measured results and have been removed. What survived is the part that was useful: the structures, and a way to test them on your own account.

## What This Playbook Is, and Is Not

It is a worked plan. You will get a five-part prompt structure, a worksheet you fill in before you touch any model, per-model request bodies that show where each part of the worksheet lands, a table of where negative constraints go (and where they cannot go), and a scoring protocol that turns "this looks better" into a number you can defend.

It is not a benchmark. Nothing here says one keyword adds a point or one model beats another. Those claims need controlled generations you have run yourself, and the last third of this guide is about running them. If you want head-to-head comparisons, the [Kling 3.0 review](https://aicontentdrop.com/blog/kling-3-0-review) and the [Meta video ads model comparison](https://aicontentdrop.com/blog/best-ai-models-for-meta-video-ads-2026) are the places to look.

## Why Structure Beats Length

A video model has to make a handful of decisions from your text before it renders a single frame: what is in the frame, what moves, where the camera is and whether it moves, where the light comes from, and what the overall finish looks like. A prompt that names each of those once hands the model five decisions already made. A prompt that stacks twelve adjectives about quality hands it none of them and asks it to guess the rest.

That is the whole argument for structure. Length is a side effect: a structured prompt is usually longer than a lazy one because it contains more decisions, and shorter than a bloated one because it contains no repeats. Write for decisions, not for word count.

## The Five-Part Prompt Structure

Every prompt in this guide follows the same order: **Subject, Action, Camera, Lighting, Style**. The order matters because models weight what comes first, and because it forces you to have a subject before you have a look. Each part answers one question.

### 1. Subject: What Is in the Frame

Give the model anchor details. Age range, clothing, material, colour, setting. A bare noun leaves the model to invent all of it, and it will invent something different on every generation, which makes your test impossible to read.

- Weak:
  
  "A car driving"
- Better:
  
  "A matte black Porsche 911 GT3 on a wet coastal highway, ocean visible in the background"
- Best:
  
  "A matte black Porsche 911 GT3 with rain droplets on the hood, driving along a winding cliffside coastal road at dusk"

### 2. Action: What Is Happening

One primary action per clip. Compound actions ("walks in, sits down, opens the laptop, smiles") ask a five-second clip to contain a scene, and the model either rushes them or drops most of them. As a rule of thumb, not a measured law, plan one primary action for roughly every three seconds of output, and give it a pace word.

- "Slowly pouring espresso into a ceramic cup, steam rising"
- "Walking confidently toward the camera through a rain-slicked alley"
- "Unboxing a skincare product, lifting the bottle out of tissue paper"

### 3. Camera: How We See It

Use filmmaking vocabulary, because that is what the training data was labelled with. "Move the camera left" is ambiguous; "slow dolly left" is a specific motion with a specific speed. Name the shot size, the movement, and if it matters, the lens.

- "Slow dolly push-in from medium shot to close-up"
- "Low-angle tracking shot following the subject's feet"
- "Static wide establishing shot, 35mm lens equivalent"
- "360-degree orbit around the product"
- "Rack focus from the bottle in the foreground to the window behind it"

### 4. Lighting: Where the Light Comes From

Lighting is the part most people leave out, and it is the part that most changes the finish. Say the source, the quality, and the direction.

- "Golden hour backlight with lens flare"
- "Dramatic side lighting with deep shadows, Rembrandt style"
- "Soft diffused studio lighting, white cyclorama background"
- "Overcast window light from the left, no hard shadows"

### 5. Style: The Finish

One or two style cues, plus at most one camera or film-stock reference. This is the part that varies most between models, and the part where stacking terms does the most damage: "8K cinematic photorealistic masterpiece ARRI film anamorphic" is six aesthetic signals that partially contradict each other.

- "Cinematic, 2.39:1 anamorphic, shallow depth of field"
- "Photorealistic commercial advertisement, clean and polished"
- "Film noir, high contrast black and white, grain"
- "Casual lifestyle, shot on a phone, warm and unpolished"

A mood phrase at the end ("luxurious and premium", "tense and mysterious") is optional. It is a cheap way to bias palette and pace without adding another technical term.

## Before and After, as Text

These are the same three ideas written twice: once the way most people type them, once with the five parts filled in. No scores are attached. The second version of each pair is not guaranteed to look better; it is guaranteed to make five decisions the first version leaves to chance, which is what makes it testable.

**Before:** "A woman applying moisturizer to her face in a bathroom"

**After:** "A woman in her late 20s gently applying a pearl-white moisturizer to her cheek, slow push-in from medium shot to close-up, soft diffused bathroom light with warm tones, commercial beauty advertisement style, shallow depth of field"

**Before:** "A drone shot of a city at sunset"

**After:** "Aerial flyover of a coastal city skyline at golden hour, slow forward tracking movement revealing a lighthouse on the point, volumetric haze catching orange light between the buildings, cinematic, 4K"

**Before:** "Sneakers on a table"

**After:** "White low-top sneakers rotating slowly on a matte black pedestal, 360-degree orbit, studio lighting with a soft gradient backdrop from charcoal to white, product advertisement style, clean and minimal"

## The Prompt Worksheet as a JSON Block

Before you write for any specific model, fill in a model-agnostic block. No video API accepts this block as-is; it is your worksheet. Its value is that every field is separate, so when you run a test you can change exactly one of them and know what you changed.

```
{
  "subject": "A rose-gold wristwatch on a black marble pedestal",
  "action": "rotating slowly clockwise",
  "camera": {
    "shot": "close-up",
    "movement": "slow 360-degree orbit with a slight upward crane",
    "lens": "85mm equivalent, shallow depth of field"
  },
  "lighting": "Rembrandt key light with warm amber fill, dark background",
  "style": "cinematic product advertisement",
  "mood": "luxurious and premium",
  "negative": ["watermark", "text overlay", "duplicate watch", "warped dial"],
  "format": {
    "aspect_ratio": "1:1",
    "duration_seconds": 5,
    "resolution": "1080p"
  }
}
```

Flattening it into a prompt string is mechanical: subject, then action, then camera, then lighting, then style, then mood, joined with commas. The `negative` list goes to the model's negative field where one exists, and into the main prompt as positive phrasing where one does not. The `format` object maps to the model's own keys, which is where the per-model blocks below come in.

## Per-Model Prompt Blocks

Each block below uses the request shape documented in that model's own JSON guide on this site, with the worksheet above poured into it. Credits are the flat per-video costs on AI Content Drop; durations and aspect ratios are from the model catalog. On the platform you never send these bodies yourself; the [generator](https://aicontentdrop.com/generate/video) exposes the same fields as controls. Knowing the shape still tells you which of your worksheet fields the model can actually honour.

| Model | Credits | Length | Aspect ratios | Negative field |
| --- | --- | --- | --- | --- |
| Kling 3.0 | 22 | 3 to 15 s | 16:9, 9:16, 1:1 | `negative_prompt` |
| Kling 2.6 Motion Control | 17 | 5 to 10 s | 16:9, 9:16, 1:1 | `negative_prompt` |
| Veo 3.1 (Fast) | 26 (14) | 8 s | 16:9, 9:16, 1:1 | `parameters.negativePrompt` |
| Seedance 2.0 (Fast) | 56 (22) | 4 to 15 s | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 | None; phrase positively |
| Wan 2.6 | 42 | 5 to 10 s | 16:9, 9:16, 1:1 | `input.negative_prompt` |
| Hailuo 2.3 | 17 | 5 to 6 s | 16:9, 9:16, 1:1 | See its guide |
| Sora 2 Pro | 56 | 5 to 15 s | 16:9, 9:16, 1:1 | None; removed Sept 24, 2026 |

### Kling 3.0: Product Shots and Image-to-Video

Kling 3.0 is 22 credits, runs 3 to 15 seconds, outputs 720p, 1080p or 4K, and does text-to-video, image-to-video and lip-sync. The request shape below is the one in the [Kling 3.0 Motion JSON prompt guide](https://aicontentdrop.com/blog/kling-3-0-motion-json-prompt-guide): a prompt, a real negative field, a `cfg_scale` from 0.0 to 1.0 that controls how strictly the model follows the text (0.5 is the default; higher is stricter but stiffer), a `mode` of `std` or `pro`, and a duration as a string.

```
{
  "model_name": "kling-v3",
  "image": "https://your-cdn.com/watch-hero-still.jpg",
  "prompt": "A rose-gold wristwatch on a black marble pedestal, rotating slowly clockwise, slow 360-degree orbit with a slight upward crane, 85mm shallow depth of field, Rembrandt key light with warm amber fill against a dark background, cinematic product advertisement, luxurious and premium",
  "negative_prompt": "watermark, text overlay, duplicate watch, warped dial, blurry edges",
  "cfg_scale": 0.5,
  "mode": "pro",
  "duration": "5",
  "aspect_ratio": "1:1"
}
```

Two notes from that guide worth carrying over. Keep the negative prompt under about 80 words and make it nouns ("watermark, duplicate bottle"), because a vague negative like "bad quality" gives the model nothing to avoid. And the `image` field is optional: drop it for text-to-video, keep it when you have a still you want animated. If you want to test an image-to-video prompt cheaply first, [Kling 2.6 Motion Control](https://aicontentdrop.com/blog/kling-2-6-motion-json-prompt-guide) takes the same body with `model_name` set to `kling-v2` at 17 credits; it needs the `image` field, since it has no text-to-video mode.

### Veo 3.1: Talking Clips With a Real Negative Field

Veo 3.1 is 26 credits for an 8-second clip (Veo 3.1 Fast is 14), with 16:9, 9:16 and 1:1 output up to 4K. Its body separates the prompt from a `parameters` object, and it is the one model here whose [JSON guide](https://aicontentdrop.com/blog/veo-3-1-json-prompt-guide) gives a specific length cap for the negative field: keep it under about 50 words. People require `personGeneration` set to `allow_adult`.

```
{
  "instances": [
    {
      "prompt": "A woman in her early 30s in an oversized cream sweater holds a steaming mug and speaks warmly to camera, static medium close-up with subtle handheld drift, soft overcast window light from the left, photorealistic casual lifestyle, warm and unhurried"
    }
  ],
  "parameters": {
    "aspectRatio": "9:16",
    "durationSeconds": 8,
    "negativePrompt": "distorted face, extra fingers, watermark, on-screen text",
    "personGeneration": "allow_adult",
    "sampleCount": 1
  }
}
```

The worksheet maps cleanly: subject through mood become the prompt string, the negative list becomes `negativePrompt`, and the format object becomes `aspectRatio` and `durationSeconds`. Resolution is not a field in this body; it follows your plan tier on the platform.

### Seedance 2.0: Dialogue and Multi-Shot Scenes

Seedance 2.0 is the model to reach for when the clip needs to speak or cut. It is 56 credits at 1080p with native audio, lip-sync and multi-shot consistency in a single pass, up to 15 seconds; Seedance 2.0 Fast is 22 credits at 720p with the same audio and image-to-video support. The request is a `content` array (text, plus an optional image), and the [Seedance 2.0 JSON prompt guide](https://aicontentdrop.com/blog/seedance-2-0-json-prompt-guide) shows dialogue written inside the text in quotes, with `with_audio` set to `true`. There is no negative field in that body, so exclusions go into the text as positive instructions ("clean frame, no captions").

```
{
  "model": "doubao-seedance-2-0-260128",
  "content": [
    {
      "type": "text",
      "text": "A detective in a rain-soaked trench coat pushes open a neon-lit bar door and steps inside. Tracking shot following from behind, then a cut to a low reverse angle as the door swings shut. Volumetric haze catching blue and red neon, film noir, 35mm grain. He says: 'You said midnight.' Rain and muffled jazz under the dialogue. Clean frame, no captions."
    }
  ],
  "resolution": "1080p",
  "aspect_ratio": "16:9",
  "duration": 10,
  "with_audio": true
}
```

Notice that the five-part structure survives inside a paragraph. Subject and action come first, the two camera setups are stated as two sentences because this is a multi-shot request, lighting and style follow, and the dialogue and sound design come last. The guide is explicit that the model ID above is the real one and that a "-pro" ID does not exist; on the platform you simply pick Seedance 2.0, Fast or Mini from the model list.

### Wan 2.6: Seeds for Controlled Tests

Wan 2.6 is 42 credits for 5 to 10 seconds, with text-to-video, image-to-video and video-to-video. The reason it belongs in a testing playbook is the `parameters.seed` field in its [JSON guide](https://aicontentdrop.com/blog/wan-2-6-json-prompt-guide): fix the seed, change one prompt field, and the difference between two outputs is the field you changed rather than the dice. Size is written as `width*height` with an asterisk, and there is a real negative field.

```
{
  "model": "wan2.6-14b-text2video-turbo",
  "input": {
    "prompt": "Aerial flyover of a coastal city skyline at golden hour, slow forward tracking movement revealing a lighthouse on the point, volumetric haze catching orange light between the buildings, cinematic, 4K",
    "negative_prompt": "watermark, text on screen, overexposed, flat midday light, shaky",
    "size": "1280*720",
    "duration": 10
  },
  "parameters": {
    "seed": 42,
    "num_inference_steps": 50
  }
}
```

### Sora 2 Pro: Read the Date First

Sora 2 Pro is 56 credits (Sora 2 is 45, Sora 2 Pro Storyboard is 84) and its body is the simplest of the group: a model, a prompt, a `size` such as `1280x720` or `720x1280`, and `seconds` as a string. Its [JSON guide](https://aicontentdrop.com/blog/sora-2-pro-json-prompt-guide) notes there is no negative field, so avoidance is written into the prompt.

The more important fact is the calendar. OpenAI discontinued the Sora app and website on April 26, 2026, and has set September 24, 2026 as the day the Sora 2 models and the Videos API are removed, with no announced successor. The [Sora 2 pricing and shutdown guide](https://aicontentdrop.com/blog/sora-2-pricing-api-shutdown) covers what that means for budgets and names Veo 3.1 as the closest swap for audio-native clips and Seedance 2.0 Pro as the replacement for multi-shot storyboards. Treat any Sora block you write today as a port-in-progress to one of those two.

```
{
  "model": "sora-2-pro",
  "prompt": "A detective in a rain-soaked trench coat pushes open a neon-lit bar door and steps inside, tracking shot following from behind, volumetric fog with blue and red neon reflections, film noir, clean frame with no on-screen text, tense and mysterious",
  "size": "1280x720",
  "seconds": "8"
}
```

### Hailuo 2.3: The Cheap Draft Lane

Hailuo 2.3 is 17 credits for a 5 to 6 second clip at 720p or 1080p. With Veo 3.1 Fast at 14, it is one of the two cheapest text-to-video rows in the table, which makes it a natural place to test whether a subject and action read at all before you spend Kling or Seedance credits on the finish. The [Hailuo 02 JSON prompt guide](https://aicontentdrop.com/blog/hailuo-2-3-json-prompt-guide) has its request shape.

### Stills First: Nano Banana Pro and FLUX.2

The cheapest way to make a video prompt shorter is to move the subject and lighting into a still image and animate that. Once the frame is locked, the video prompt only has to carry action and camera, which is what image-to-video on Kling 3.0, Seedance 2.0 or Wan 2.6 does well. Two image models cover most cases.

Nano Banana Pro is 10 credits and, per its [JSON prompt guide](https://aicontentdrop.com/blog/nano-banana-pro-json-prompt-guide), takes the text inside a `contents` array with the aspect ratio in `generationConfig.imageConfig`. There is no negative field, so exclusions are written as positive instructions.

```
{
  "contents": [
    {
      "parts": [
        {
          "text": "A rose-gold wristwatch on a black marble pedestal, 85mm shallow depth of field, Rembrandt key light with warm amber fill against a dark background, commercial product photography, clean frame with no text"
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": ["IMAGE"],
    "imageConfig": {
      "aspectRatio": "1:1"
    }
  }
}
```

FLUX.2 is 3 credits. Its [JSON prompt guide](https://aicontentdrop.com/blog/flux-2-json-prompt-guide) shows a flat body with `width`, `height`, `steps`, `guidance` and a `seed`, and states that the current API does not expose a negative prompt. The seed is the reason to use it for tests: you can hold the frame constant while you vary one phrase.

```
{
  "prompt": "A rose-gold wristwatch on a black marble pedestal, Rembrandt key light with warm amber fill, dark background, commercial product photography, sharp everywhere, clean frame with no text",
  "width": 1024,
  "height": 1024,
  "steps": 28,
  "guidance": 3.5,
  "seed": 42,
  "output_format": "jpeg"
}
```

## Where Negative Constraints Go

Negative prompts are the most model-dependent part of the worksheet, so it is worth having the routing in one place.

| Model | Where exclusions go | Note from its guide |
| --- | --- | --- |
| Kling 3.0 / 2.6 Motion | `negative_prompt` | Under about 80 words, specific nouns |
| Veo 3.1 | `parameters.negativePrompt` | Under about 50 words |
| Wan 2.6 | `input.negative_prompt` | Same nouns rule |
| Seedance 2.0 | Main text, phrased positively | No negative field in the body |
| Sora 2 Pro | Main prompt, phrased positively | No negative field; model removed Sept 24, 2026 |
| Nano Banana Pro | Main text, phrased positively | No negative field |
| FLUX.2 | Main prompt, phrased positively | No negative field in the current API |

Two habits hold everywhere. First, negatives are nouns, not adjectives: "watermark, text overlay, extra fingers, duplicate bottle" give the model something concrete to steer from, while "bad quality" and "artifacts" do not name a thing. Second, when there is no negative field, do not write "no blur" in the prompt and hope; write the positive property you want instead, "sharp everywhere, clean background". That is the advice the FLUX.2 and Sora 2 Pro guides give, and it costs nothing to apply to the others.

## How to Measure It Yourself

Everything above is a hypothesis until you score it. This is the protocol that turns the worksheet into numbers you can trust. It is deliberately small so that you will actually run it.

### The Rubric

Score every clip on four axes, 1 to 5 each: motion coherence (does anything morph, teleport or stutter), visual fidelity (is the subject rendered cleanly at the intended resolution), prompt adherence (did the subject, action, camera and light you asked for show up), and fitness for the job (would you put it in the ad, the reel, the pitch). Decide in advance what "usable" means. A workable rule is that no axis scores below 3; set your own threshold, but set it before you look at outputs.

### The Protocol

1. One variable per pair.
  
  Take a worksheet, produce prompt A and prompt B that differ in exactly one field (add a camera line, swap a lighting phrase, remove the style stack). If two fields change, you cannot attribute the result.
2. Hold the seed where you can.
  
  Wan 2.6 and FLUX.2 expose a seed. Use it. Where a model has no seed, you are sampling a distribution, so you need more generations per variant.
3. Generate in batches.
  
  As a rule of thumb, five generations per variant is the minimum before a difference means anything; ten is better. This is a starting point, not a statistical guarantee.
4. Score blind.
  
  Rename the files so the scorer does not know which prompt produced which clip. If you are scoring your own outputs, this is the step you will be tempted to skip and the step that matters most.
5. Log credits.
  
  Every generation has a flat cost. Write it next to the score.

### The Three Numbers to Keep

- First-take usable rate:
  
  usable clips divided by generations.
- Generations per usable clip:
  
  the inverse of the rate, which is the number you feel in your credit balance.
- Credits per usable clip:
  
  the model's flat cost multiplied by generations per usable clip. This is the only number that lets you compare a 17-credit model with a 56-credit one honestly.

### What a Test Costs

Run the structure test on a cheap lane and confirm on the production lane. Two variants times five generations is ten clips. On Veo 3.1 Fast that is 10 times 14, or 140 credits, which fits inside the Starter plan's 150 monthly credits. On Kling 3.0 it is 220 credits; the Professional plan's 450 covers that twice. On Seedance 2.0 Pro it is 560 credits, which needs the Ultra plan's 1,000. The [cost calculator](https://aicontentdrop.com/blog/video-ad-cost-calculator-ai-models) has the arithmetic for every model, and the [pricing page](https://aicontentdrop.com/pricing) has the plans. The free tier's 10 credits cover one Seedance 1.0 Pro Fast image-to-video generation at 9 credits or one MiniMax H3 draft at 10, and nothing else on the video list, so a real test starts on a paid plan.

## Five Anti-Patterns

### 1. The Kitchen Sink Prompt

"8K cinematic photorealistic hyper-detailed ultra HD masterpiece professional studio lighting ARRI Alexa 35mm film anamorphic bokeh" stacks a dozen quality modifiers, several of which contradict each other (film grain and 8K, anamorphic and clean studio). The model averages them into something that is none of them. Pick one or two style terms and at most one camera reference.

### 2. Compound Actions in Short Clips

Five distinct actions in a five-second clip produce either a rushed blur of transitions or a clip that silently drops most of the list. One primary action, one subtle secondary motion at most, and if the story needs more, a multi-shot model like Seedance 2.0 with the shots written as separate sentences.

### 3. Ignoring the Aspect Ratio

A "sweeping panoramic vista" loses its point in 9:16, and a "full-body fashion walk" gets cropped at the knees in 16:9. Decide the frame first, then write the subject and camera to fit it. The `format` object in the worksheet exists so this decision is made before the prose.

### 4. A Vague Subject With a Specific Style

"A beautiful scene, cinematic, golden hour, shallow depth of field" is all finish and no subject. The model produces a polished render of nothing in particular. Style amplifies a strong subject; it cannot replace one, which is why Subject is the first field.

### 5. Copy-Pasting a Prompt Between Models

The tables above show why this fails mechanically: your negative list has a home on Kling, Veo and Wan and no home on Seedance, Sora or FLUX; Seedance wants dialogue in quotes and shots as sentences; Veo needs a person flag; Wan wants the size with an asterisk. Re-pour the worksheet for each model rather than pasting the string, and re-score, because a phrase that reads on one model is not evidence about another.

## Templates by Job

The template is the five parts in order, plus an optional mood:

*[Specific subject with details], [single action with pacing], [shot size + camera movement + optional lens], [lighting source, quality and direction], [one or two style keywords + optional camera reference]. [Mood].*

**Product ad, Kling 3.0 image-to-video, 1:1:**

"A rose-gold luxury watch rotating on a black marble pedestal, slow 360-degree orbit with a slight upward crane, Rembrandt lighting with warm amber accents, cinematic product advertisement, shallow depth of field. Luxurious and premium." Kling is chosen here for image-to-video from a locked still and its 4K output tier.

**UGC-style talking clip, Veo 3.1, 9:16:**

"A young woman in a cozy oversized sweater holding a steaming mug, looking directly at camera and smiling warmly, static medium close-up with subtle handheld movement, soft overcast natural window light, photorealistic casual lifestyle, shot on a phone. Warm and authentic." Veo is chosen for the real negative field and the 8-second length that suits a single beat. For hook lines to put in her mouth, the [UGC hooks list](https://aicontentdrop.com/blog/winning-ai-ugc-hooks-for-video-ads) is a ready bank.

**Narrative scene with dialogue, Seedance 2.0 Pro, 16:9:**

"A detective in a rain-soaked trench coat pushes open a neon-lit bar door and steps inside, tracking shot following from behind, then a low reverse angle as the door swings shut, volumetric fog with blue and red neon reflections, film noir. He says: 'You said midnight.' Tense and mysterious." Seedance is chosen for native audio, lip-sync and multi-shot consistency in one pass, and because it is the model the Sora shutdown guide names for storyboard-length work.

When a model takes a structured request rather than prose, the same intent becomes fields; the [Qwen Image 2.0 JSON prompt guide](https://aicontentdrop.com/blog/qwen-image-2-0-json-prompt-guide) is a worked example of translating a written brief into a request body, and the [Meta creative testing framework](https://aicontentdrop.com/blog/ai-meta-ads-creative-testing-framework) shows how to put prompt variants into ad test cells that answer one question each.

## Frequently Asked Questions

### Does a longer prompt always produce a better video?

No. A prompt improves when it adds a decision the model would otherwise have to guess: a subject detail, one action, a camera move, a light source, a finish. It gets worse when it adds repeats or contradictions. Count decisions, not words, and confirm with the rubric above.

### Which model should I test the structure on first?

The cheapest lane that supports the job. Hailuo 2.3 at 17 credits for text-to-video, Kling 2.6 Motion Control at 17 for image-to-video, Veo 3.1 Fast at 14 for a clip with a negative field, Seedance 2.0 Fast at 22 for anything that needs audio. Confirm the winner on the model you will actually ship with.

### Can I still write prompts for Sora 2?

You can, at 45, 56 or 84 credits per video, but OpenAI removes the Sora 2 models and the Videos API on September 24, 2026 with no announced successor. Write for Veo 3.1 or Seedance 2.0 instead and keep any Sora prompt only as something to port.

### Where do the numbers in this article come from?

Credit costs, durations, aspect ratios and field names come from the AI Content Drop model catalog and the per-model JSON guides linked above. The Sora dates come from the Sora 2 pricing and shutdown guide. There are no quality scores or before-and-after percentages here because the point of the playbook is that you produce those yourself.

To run the plan, open the [video generator](https://aicontentdrop.com/generate/video), pick the cheap lane for your job, fill in the worksheet, and generate the first pair. The [Chat-to-Ads Studio](https://aicontentdrop.com/) will draft the prompt string from a brief if you would rather start from a sentence than from a form.