Wan 2.7: Flat $0.10/sec Pricing and a Built-In Prompt Rewriter
Wan 2.7 charges the same $0.10 per second whether you render at 720p or 1080p, which flips the usual resolution-cost tradeoff on its head.
What Wan 2.7 is
Wan 2.7 is Alibaba's open-weight video model, running on fal.ai as two endpoints that share one parameter surface: fal-ai/wan/v2.7/text-to-video and fal-ai/wan/v2.7/image-to-video. It's a Diffusion Transformer with Flow Matching, and its most distinctive feature is an internal LLM rewriter controlled by the enable_prompt_expansion flag.
What it does well
Motion coherence on long-duration clips is the real selling point. You can ask for up to 15 seconds in a single call and the model holds scene structure across that span better than most peers. The image-to-video endpoint supports first-and-last-frame interpolation via end_image_url, which is the cleanest way to bridge two fixed compositions in one generation. It also accepts a video_url to continue from an existing 2-10 second clip, useful for extending takes.
Audio is driven, not generated: you pass a WAV or MP3 via audio_url (3-30 seconds, under 15 MB) and the model syncs motion to it. If you skip audio_url, the model writes matching background music by default.
What it can't do
No 4K. The resolution tier is 720p or 1080p, nothing higher. No arbitrary custom aspect ratio - you pick from 16:9, 9:16, 1:1, 4:3, 3:4. The video_url continuation path can't be combined with image_url, so you choose start-frame OR continuation, not both.
One gotcha that trips people up: duration is an integer, not a string. Passing "5" returns a validation error. Integer range is 2 through 15.
Parameters that matter
| Parameter | Type | Default | Range |
|---|---|---|---|
| `prompt` | string | required | up to 5000 chars |
| `duration` | integer | 5 | 2-15 |
| `resolution` | string | `1080p` | `720p`, `1080p` |
| `aspect_ratio` | string | `16:9` | 5 options |
| `enable_prompt_expansion` | boolean | `true` | true/false |
| `negative_prompt` | string | - | up to 500 chars |
| `audio_url` | string | - | WAV/MP3, 3-30s |
| `seed` | integer | - | 0-2147483647 |
When enable_prompt_expansion is on, the response includes actual_prompt - the exact string the diffusion model saw. Log it. If you like the output, hard-code that string and set enable_prompt_expansion: false for repeatable runs.

Pricing
$0.10 per second of output, flat. Same price at 720p and 1080p. A 5-second clip is $0.50. The 15-second ceiling is $1.50. There's no cost penalty for cranking resolution, which is unusual - most competitors charge more for higher tiers.

Working example
1import { fal } from "@fal-ai/client";23const result = await fal.subscribe("fal-ai/wan/v2.7/text-to-video", {4 input: {5 prompt: "A lighthouse on a rocky cliff at golden hour, waves below, cinematic wide",6 duration: 6,7 resolution: "1080p",8 aspect_ratio: "16:9",9 enable_prompt_expansion: true,10 negative_prompt: "blur, watermark, text",11 seed: 42,12 },13});1415console.log(result.data.video.url);16console.log("Actual prompt used:", result.data.actual_prompt);17console.log("Seed:", result.data.seed);
When to pick Wan 2.7
Pick it when you want 1080p and long duration without paying a resolution premium, or when you need first-and-last-frame interpolation in image-to-video. Skip it if you need 4K - that's Veo 3.1 territory. Skip it if you want the model to synthesize dialogue or SFX from a prompt; Wan drives audio from a file, it doesn't generate speech. If flat pricing matters more than top-tier fidelity, Wan 2.7 is hard to beat on cost-per-1080p-second.
