Blog

Prompting4 min read

Veo 3.1 Lite: The Draft Tier That Earns Its Keep

Veo 3.1 Lite runs at $0.05/sec, one eighth the cost of full Veo 3.1. Treat it as the iteration tool it is and your prompt is locked before you ever pay $0.40/sec.


Lite is not "Veo 3.1 but worse"

It is Veo 3.1 without 4K and without the top-end render. Audio generation is still native. Negative prompts still work. Seed still stabilizes appearance. The model understands the same cinematography vocabulary. The only honest description of Lite is: the same prompt language, a cheaper render target.

That changes how you should prompt it. You are not trying to produce the final. You are trying to produce an informative preview that tells you whether your prompt is going to work when you switch the endpoint string to fal-ai/veo3.1.

Prompt in plain-English cinematography

Lite reads the same vocabulary the full model does. The trap is assuming a short prompt is enough because it is the cheap tier. Short prompts get you short prompts back, default compositions, default lighting, forgettable output. You are then iterating on vagueness, which tells you nothing useful about the locked render.

The sweet spot is 40 to 100 words. Under 20 words and the model defaults in ways that will keep defaulting when you move up. Over 150 words and the competing clauses confuse the output, also a problem that transfers.

Bad prompt, good prompt

Bad (for Lite or full):

CODE
1A laptop on a desk, product video, cinematic

The model picks a generic desk, generic angle, generic fluorescent-feeling light. Every seed is a different generic.

Good (locks cleanly when you upgrade):

CODE
1A matte-black laptop opens smoothly on a walnut desk, screen reveals a clean dashboard UI. Slow dolly in from above shoulder height, 50mm, shallow depth of field. Cool desk lamp key from frame left, warm window bounce from frame right. Audio: subtle hinge click, low HVAC hum, no music.

Everything that matters is pinned: angle, lens, lighting direction, audio intent.

Draft tier versus full tier frame comparison
Draft tier versus full tier frame comparison

Seed is how you iterate

Capture the seed from the response. If a Lite clip is 80 percent right, keep the seed and change one thing in the prompt. Fixing the seed means you are comparing prompts, not random variance. When the prompt is locked, move the same prompt and seed to fal-ai/veo3.1.

Locked seed dial flanked by toggle switches
Locked seed dial flanked by toggle switches
TYPESCRIPT
1const draft = await fal.subscribe("fal-ai/veo3.1/lite", {
2 input: {
3 prompt: SHOT_PROMPT,
4 duration: "6s",
5 resolution: "720p",
6 aspect_ratio: "16:9",
7 generate_audio: true,
8 negative_prompt: "shaky cam, blown highlights, text, watermark",
9 },
10});
11
12console.log(draft.data.seed);

Audio in the main prompt

Lite generates audio from the same prompt string. There is no separate audio prompt field. If the visual is strong but the audio is generic, it is because you never mentioned audio. The model chose for you.

  • Specific foley: footsteps on gravel, ice cracking in a glass
  • Environmental space: reverberant stairwell, soft carpeted office
  • Music direction or absence: solo piano, no strings or no music, room tone only
  • Dialogue in quotes if a character speaks

Negative prompt targets that matter

CODE
1negative_prompt: "shaky handheld wobble, overexposed highlights, plastic skin, HDR look, stock footage zoom, watermark, text on screen"

Strip out bad, low quality, ugly, and anything that is a feeling rather than a visual artifact. Lite responds to what it can recognize. It cannot recognize "low quality." It can recognize "plastic skin."

What does not transfer cleanly to full Veo 3.1

Lite is 720p and 1080p only. If your draft looks great at 1080p, the upgrade to 4K usually holds. If it looks marginal at 1080p, it will look marginal at 4K, the prompt needs work before you spend.

safety_tolerance is documented on full Veo 3.1 as strings "1" through "6" with default "4". On Lite the field is internal and not user-configurable in the same way. Do not rely on tolerance differences as part of your iteration strategy; get the prompt right instead.

auto_fix defaults to true for text-to-video and false for image-to-video. Leave both defaults alone while drafting. If your prompt gets flagged and auto-rewritten, the rewrite is what you are actually working with, and you should inspect what changed before moving up a tier.

The whole point

You are trading eight Lite generations for one full Veo 3.1 generation. Use that ratio deliberately. Iterate until the prompt, seed, and negative prompt are stable. Then flip the endpoint.