Blog

Comparison3 min read

Wan 2.6 vs Wan 2.7: Subtle API Shifts You Need to Know

Most of Wan 2.7 looks like 2.6. The differences are small but break existing pipelines if you ignore them.


The verdict up front

Migrating from Wan 2.6 to 2.7 looks like a no-op until you actually run your first batch. The endpoint path moved, a new audio_url parameter landed, the prompt expander flag is now part of the public surface, and duration has always been an integer but is easier to trip on when you are copying old code. Plan a 30-minute audit before you ship.

Wan 2.6 to 2.7 breaking changes diff
Wan 2.6 to 2.7 breaking changes diff

The four shifts that matter

Endpoint path. The 2.7 text-to-video endpoint routes through fal-ai/wan-27-t2v/text-to-video at the path layer while the public model ID is fal-ai/wan/v2.7/text-to-video. If you have hardcoded the 2.6 path or a custom proxy, update both the client string and any internal routers.

audio_url parameter. Wan 2.7 accepts an audio_url that drives the video from supplied audio. WAV or MP3, 3 to 30 seconds, under 15 MB. If you skip it, the model writes matching background music on its own. This is not a synthesizer. It does not generate dialogue. It generates a video synced to the audio file you provide.

enable_prompt_expansion. The internal LLM rewriter is now a first-class public flag, default true. When it is on, the response includes an actual_prompt field showing the rewritten string the diffusion model actually saw. Log it. For reproducibility, turn expansion off and paste the actual_prompt back in as your new prompt.

negative_prompt cap. Wan 2.7's negative_prompt is explicitly capped at 500 characters. If you were carrying a 1200-character negative list from 2.6, it will truncate or reject. Trim to the mechanical failures that actually matter.

Spec comparison

ParameterWan 2.6Wan 2.7
Endpoint pathfal-ai/wan/v2.6/text-to-videofal-ai/wan-27-t2v/text-to-video (routed via fal-ai/wan/v2.7/text-to-video)
Price$0.10 per second$0.10 per second
Resolution720p, 1080p720p, 1080p
Durationintegerinteger, 2 to 15
Aspect ratio16:9, 9:16, 1:1, 4:3, 3:416:9, 9:16, 1:1, 4:3, 3:4
audio_urlnot exposedWAV/MP3, 3-30s, <15MB
enable_prompt_expansioninternalpublic flag, default true
actual_prompt in responsenot returnedreturned when expansion is on
negative_prompt capinformalexplicit 500 char limit

Price is identical. Resolution tiers are identical. The important detail is that duration is an integer, not a string, and that was true on 2.6 too. People still get it wrong after the migration because they copy-paste from other model docs.

The port checklist

Wan 2.7 port checklist
Wan 2.7 port checklist
  1. Update the endpoint path in every client call. Grep for v2.6 and confirm every match is intentional.
  2. Decide whether to expose audio_url to your users, or to keep Wan writing its own background music. Most UGC flows keep the default; most branded work passes a file.
  3. Log actual_prompt on every response. You want this data before you need it.
  4. Audit any code that sets duration. Confirm it is an integer. Stringified values fail validation.
  5. Trim your negative_prompt to under 500 characters. Prioritize mechanical fails like extra fingers, flicker, warping, watermark, text.

Why this is a small migration, not a free one

The difference between Wan 2.6 and 2.7 looks cosmetic from a product description. In practice, four small API changes land in the middle of a working pipeline. Each one on its own is recoverable. The pattern that bites you is shipping the migration without checking, finding a broken batch at 2am, and rolling back because you do not know which of the four changes caused it.

Thirty minutes of audit saves a week of rollback-and-retry. The pricing is the same. The parameter surface is slightly larger and slightly stricter. Port deliberately.