Wan 3 Guide: Features, Examples and What Developers Should Know
Wan 3 merges text, image, reference and video editing into one endpoint, with 30 second clips and native audio. Full parameters, real costs and code.
Alibaba's Wan 3 takes what used to be four separate models and serves them from a single endpoint: text to video, image to video, reference to video, and video editing, all selected automatically from whatever media you attach to the request. If you have ever written a router that picks between wan2.7-t2v and wan2.7-i2v depending on whether the user uploaded a still, that router is now dead code.
I went through the Segmind integration parameter by parameter, then fired the model myself and read the billing headers rather than trusting the launch announcement. This guide covers what Wan 3 does, what changed from Wan 2.7, what every parameter is for, what it actually costs per second. It also covers the number nobody puts in a launch post, which is how long you will be waiting.
What Wan 3 actually is
Wan 3.0 is Alibaba's all-in-one video generation model, served on Segmind as a single slug, wan3.0-video. Two headline capabilities define it.
The first is length. Wan 3 generates up to 30 seconds in a single pass, double what Wan 2.7 managed. That number sounds incremental until you think about what it buys. At 15 seconds you are producing fragments that an editor has to assemble. At 30 seconds you can hold a continuous shot through a full beat: a character enters, does something, and reacts, without a cut. To put that in context, I checked it against the rest of Segmind's video catalogue: Wan 3 shares the 30 second ceiling with exactly one other model, Seedance 2.5. The next tier down, LTX 2.5 Fast and the FLUX 3 video family, stops at 20, and Wan's own 2.6 and 2.7 releases stop at 15. Wan 3 is at the top of the field rather than out in front of it.
The second is native audio. Wan 3 generates a synchronised soundtrack in the same pass as the picture rather than dubbing it on afterwards, with multilingual voice output and voice consistency carried over from a reference audio clip. On Segmind the audio flag defaults to true, and Alibaba's own API reference is explicit that enabling or disabling it does not affect pricing. Audio is free, which matters more than it sounds: it removes a whole second model from most pipelines.
Everything runs at 30fps, and the model accepts a genuinely unusual range of inputs: a prompt, a first frame, a last frame, up to ten reference images, up to five reference video clips, and up to five reference audio clips.
What changed from Wan 2.7
The cleanest way to see the change is to look at what Segmind's own catalogue held before this release. Wan 2.7 arrived as four separate models, each with its own slug, its own parameter quirks and its own 15 second ceiling.
| Capability | Wan 2.7 | Wan 3.0 |
|---|---|---|
| Text to video | wan2.7-t2v | wan3.0-videoone slug, mode inferred from your inputs |
| Image to video | wan2.7-i2v | |
| Reference to video | wan2.7-r2v | |
| Video editing | wan2.7-videoedit | |
| Max duration | 15 seconds | 30 seconds |
| Resolutions | Fixed per slug | 480P, 720P, 1080P on one call |
| Document input | No | Upstream only, not in the Segmind release |
Wan 2.7 shipped as four slugs. Wan 3.0 is one.
Beyond the consolidation, Alibaba calls out better facial diversity and realism, and stronger consistency of characters, props and spaces across a shot. They are also honest about where it is weak, which is rarer than it should be in a launch post: their own write-up says audio texture and on-screen text rendering are "improving but not yet where we want them". Treat Wan 3 as a picture model with competent sound, not as a replacement for a dedicated audio pass.
The parameter space
Here is the full request surface, taken from the model record rather than from a blog post. I have flagged the two places where the Segmind default differs from Alibaba's documented default, because both will bite you.
| Parameter | Type | Default | Notes |
|---|---|---|---|
prompt | string | required* | *Required unless you supply an image, video or audio input |
image | URI | null | First frame. Supplying it switches the model to image to video |
last_frame | URI | null | End frame. Use with image to pin both ends of the shot |
reference_images | URI array | null | Up to 10. Carries subject, character or style identity |
reference_videos | URI array | null | Up to 5 clips, 15 seconds total. This is the video editing path |
audio_url | URI | null | Drives the video, including lip sync. Up to 5 clips, 15 seconds total |
resolution | enum | 720P | 480P, 720P, 1080P. Alibaba documents 1080P as the default; Segmind ships 720P. Affects price |
duration | int | 5 | 2 to 30 seconds. -1 matches the source when editing. Affects price |
aspect_ratio | enum | 16:9 | 16:9, 4:3, 1:1, 3:4, 9:16, adaptive. Alibaba defaults to adaptive; Segmind ships 16:9. Ignored when a frame or reference sets the shape |
audio | bool | true | Native soundtrack. Does not change the price |
prompt_extend | bool | true | Rewrites a short prompt into a richer one before generating |
negative_prompt | string | null | What to keep out |
seed | int | null | Reproducibility |
watermark | bool | false | Burns in an "AI Generated" mark |
enable_thinking | bool | false | Extra planning pass before generation |
The full Wan 3 request surface on Segmind.
The mode selection is the part worth internalising. You do not tell Wan 3 which mode you want. It infers it. Send only a prompt and you get text to video. Add image and you get image to video. Add reference_images and it carries identity across the shot. Add reference_videos and you are editing. That is elegant when it works and confusing when it does not, because a stray parameter silently changes what the model thinks you asked for.
Three ways teams will actually use this
The four modes map onto three shapes of work I see repeatedly. What follows is the payload for each, plus a real generation where I have one.
Marketing agencies: draft at 480P, finish at 1080P
The expensive mistake agencies make with video models is generating at final quality while the concept is still moving. Wan 3's 480P tier exists for exactly this. It is a quarter of the price of 1080P per second, and for the question you are actually asking at concept stage, which is "does this idea read at all", the resolution is irrelevant.
A team producing thirty concepts a week can run every one through 480P for the price of a handful of finals, get the client to point at three, and only then spend real money. The prompt and the parameters stay identical between passes: you change one string.
Parameters resolution: 480P | duration: 5 | aspect_ratio: 16:9 | audio: true | prompt_extend: true
Text to video on wan3.0-video. 832x480, 30fps, 150 frames, stereo audio generated in the same pass. Billed $0.3125, returned in 893 seconds.
That is the draft tier doing its job. The clip is 832x480, 30fps, 150 frames, with a stereo soundtrack generated in the same pass, and it billed 31 cents. The same prompt at 1080P would have cost $1.25. At concept stage there is no reason to spend the difference.
CONCEPTS = [...] # thirty prompts from the creative team
def render(prompt, final=False):
return requests.post(
"https://api.segmind.com/v1/wan3.0-video",
headers={"x-api-key": KEY},
json={
"prompt": prompt,
"resolution": "1080P" if final else "480P",
"duration": 5,
"prompt_extend": False,
},
timeout=2400,
)
drafts = [render(c) for c in CONCEPTS] # 30 x 5s @ 480P = $9.38
finals = [render(c, final=True) for c in picks] # only what the client chose
Production houses and MCNs: the continuous take
This is where Wan 3 does something its predecessors could not. Thirty seconds, one shot, no cut, with sound generated alongside the picture in the same pass.
For a channel shipping short form daily, the difference between a five second fragment and a thirty second take is the difference between raw material and a finished asset. A fragment needs an editor, a soundtrack and a second clip to cut to. A thirty second take with room tone already on it needs a title card. That is why the duration ceiling matters more than any quality claim in the launch post.
Two practical notes if you go long. Keep the audio description diegetic, naming sources that exist in the scene rather than asking for a score. That is a habit worth carrying over from other video models with native audio, where an explicit music request is a reliable way to have a finished render refused on a copyright check, and it costs you nothing here. And set prompt_extend to false once your prompt is precise, or the rewrite will quietly redirect a shot you had already blocked out.
{
"prompt": (
"A single continuous handheld take inside a small neighbourhood "
"bakery before dawn. A baker slides a tray of loaves from the oven, "
"sets it on the steel bench, and turns to open the shutter as the "
"first grey light comes through the window. The camera drifts with "
"her, never cutting. Ambient room tone only: the scrape of the tray, "
"the click of the oven door, the rattle of the shutter. No music."
),
"resolution": "720P",
"duration": 30,
"aspect_ratio": "9:16",
"audio": true,
"prompt_extend": false
}
Film studios: a photograph becomes a shot
Previsualisation is where the mode inference pays off immediately. You have a still: a location scout photo, a concept frame, a storyboard panel. You want to know how it moves before anyone books a crew. Pass it as image and Wan 3 treats it as the first frame, keeping your composition and inventing only the motion.
Note what is missing from the payload. There is no mode flag. The presence of image is the entire instruction. Add last_frame as well and you have pinned both ends of the shot, which is how you get a specific move rather than whatever drift the model prefers.
Parameters image: first frame URL | resolution: 720P | duration: 5 | audio: true | prompt_extend: false
Input
image (first frame)
Output
wan3.0-video, 720P
One still in, 5.039s of 1280x720 video out. No mode flag anywhere in the payload: the presence of image is what selected image to video. Billed $0.625.
One behaviour worth noting from that run: I never passed aspect_ratio, and the output came back 1280x720. The first frame set the shape, exactly as the spec says it will. That is convenient here and a trap elsewhere, because an aspect_ratio you did pass gets silently discarded the moment any framing input is present. If you need a specific ratio, crop the input rather than expecting the parameter to win.
For character work across several shots, swap the frames for reference_images. Up to ten images carry identity rather than composition, which is what you want when the same person has to appear in six different setups. Name the character in capitals in every prompt and re-describe the wardrobe each time: it costs nothing and it is the cheapest defence against the model drifting between shots.
Calling Wan 3 from Python
The API is a single synchronous POST. There is no job id to poll and no webhook to wire up: the request stays open and the response body is the MP4 itself. That is the simplest possible integration and also the thing most likely to break your service, because these are not fast calls. Set your client timeout in minutes, not seconds.
import requests
resp = requests.post(
"https://api.segmind.com/v1/wan3.0-video",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"prompt": (
"A potter's hands centre a ball of grey clay on a spinning wheel "
"in a sunlit studio, water glistening as the walls rise between "
"their fingers. Slow push in. Natural realistic motion. "
"Ambient room tone: the low hum of the wheel and water dripping "
"into a bucket. No music."
),
"resolution": "720P",
"duration": 5,
"aspect_ratio": "16:9",
"audio": True,
"prompt_extend": True,
"watermark": False,
},
timeout=2400, # a 5s 480P clip measured 893s; do not use a short timeout
)
resp.raise_for_status()
with open("out.mp4", "wb") as f:
f.write(resp.content)
print("billed", resp.headers.get("x-cost"))
Two things about that snippet are worth calling out.
Read x-cost on every response. Segmind returns what the call actually billed in the response header, alongside x-remaining-credits for the balance. Log both at the point of the call. You can reconcile against request history afterwards, but that only shows finished requests, so the header is the one thing you are guaranteed to have.
prompt_extend is on by default. The model rewrites your prompt into a longer one before generating, which is helpful for a five word idea and actively unhelpful when you have written a precise shot description you want honoured. If you are art directing, set it to false and take responsibility for the detail yourself.
Switching modes means changing the payload, not the URL. Add a first frame and the same endpoint becomes image to video:
# image to video: the mode switches because `image` is present
payload = {
"prompt": "The camera pushes slowly past her as the rain intensifies.",
"image": "https://your-cdn.example.com/first-frame.jpg",
"resolution": "720P",
"duration": 10,
}
# first and last frame: pin both ends of the shot
payload = {
"prompt": "A slow dissolve between the two states, handheld.",
"image": "https://your-cdn.example.com/open.jpg",
"last_frame": "https://your-cdn.example.com/close.jpg",
"duration": 8,
}
# reference to video: carry a character across shots
payload = {
"prompt": "MAYA walks into the workshop and picks up the kettle.",
"reference_images": [
"https://your-cdn.example.com/maya-01.jpg",
"https://your-cdn.example.com/maya-02.jpg",
],
"duration": 12,
}
Every input URL has to be publicly reachable. Wan 3 is served through Alibaba's DashScope backend, which fetches your media itself, so a signed URL that expires in sixty seconds or a bucket that only your VPC can see will fail in a way that looks like a model error rather than a networking one. Put inputs on a CDN or a public S3 prefix first.
What Wan 3 costs
Pricing is a flat rate per second of output, set by the resolution you pick. Nothing else moves it. Duration multiplies, and audio, aspect ratio, seed, negative prompt and the reference inputs are all free.
I did not have to take that on trust. A five second 480P generation billed $0.3125, reported in the x-cost response header, which is exactly five seconds at $0.0625 per second. The rate card below follows from that measurement and from the rate table on the model record, and the two agree.
| Duration | 480P $0.0625/sec |
720P $0.125/sec |
1080P $0.25/sec |
|---|---|---|---|
| 5 seconds | $0.31 measured | $0.63 | $1.25 |
| 10 seconds | $0.63 | $1.25 | $2.50 |
| 15 seconds | $0.94 | $1.88 | $3.75 |
| 20 seconds | $1.25 | $2.50 | $5.00 |
| 30 seconds | $1.88 | $3.75 | $7.50 |
Wan 3 on Segmind, per second of output. The 5 second 480P figure is a real billed amount; the rest follow the same per second rate.
Two things follow from that table. The first is that resolution is the only lever that matters, and it is a 4x lever between the cheapest and the most expensive tier. Drafting at 480P and finishing at 1080P is not a micro optimisation: it is the difference between a $7.50 iteration and a $1.88 one.
The second is that free audio changes the arithmetic against a two model pipeline. If your current workflow is a video model plus a separate audio generation plus a sync step, Wan 3 removes two thirds of that cost structure and all of the synchronisation work. Whether the audio clears your quality bar is a separate question, and Alibaba's own caveat about audio texture suggests you should test it rather than assume.
Log the x-cost header on every call. Segmind does keep a request history you can reconcile against later, but the header is immediate, it is per call, and it costs you nothing to write down at the time.
Honest assessment
What Wan 3 does genuinely well. The consolidation is real engineering value, not a marketing line. Deleting three slugs and a routing layer from a production pipeline is worth more than a few points of quality on a benchmark nobody agrees on. And the 30 second ceiling changes what you can attempt: a continuous half minute with synchronised sound is a finished social asset, not raw material for an edit.
What you should keep in mind. The mode inference cuts both ways. Because the model decides what you meant from the shape of your payload, a parameter you forgot to remove can silently move you into a different mode, and that surfaces as a strange result rather than a clear error. The spec already shows the seams. aspect_ratio is documented as ignored the moment a first frame or a reference sets the shape, so the value you passed is quietly discarded. duration accepts -1 for editing, which sits outside the 2 to 30 range the same field documents. And with a reference video in play, your input and output durations have to add up to 30 seconds or less, a ceiling that is invisible until you cross it. Probe each mode's constraints before you build on them.
The other honest limitation is Alibaba's own. They say audio texture and on screen text rendering are not yet where they want them. If your use case depends on legible text inside the frame, or on audio you can ship without a rerecord, budget for a second pass in a dedicated tool.
FAQ
What is Wan 3 used for?
Wan 3 generates video up to 30 seconds long with a native synchronised soundtrack, from text, a first or last frame, reference images, or an existing clip you want edited. One endpoint covers all four modes.
How do I use the Wan 3 API?
POST to https://api.segmind.com/v1/wan3.0-video with your x-api-key header and a JSON body containing at minimum a prompt. The response body is the MP4 itself. Set the client timeout in the tens of minutes: a five second 480P clip took 893 seconds. Full parameters are on the Wan 3 model page.
How long can a Wan 3 video be?
Two to 30 seconds, set with the duration parameter. When you pass a reference video, the input and output durations together must stay within 30 seconds. Pass -1 to match the source length while editing.
Does Wan 3 generate audio?
Yes. Audio is generated in the same pass as the picture, is on by default, and does not change the price. Alibaba notes that audio texture is still improving, so check it against your quality bar.
What resolutions does Wan 3 support?
480P, 720P and 1080P. Segmind defaults to 720P while Alibaba's own documentation defaults to 1080P, so set the value explicitly rather than relying on the default.
Is Wan 3 better than Wan 2.7?
For most workflows, yes: it doubles the maximum duration, merges four slugs into one, and improves face realism and subject consistency. Wan 2.7's separate endpoints remain available if you depend on their exact behaviour.
Wrapping up
Wan 3 is the first model in this family where the API design is the headline feature. Thirty seconds, native audio and 1080P all matter, but the thing that will actually change your code is that four models became one and the mode is inferred from your payload. Fewer slugs, fewer branches, one integration to maintain.
Point a request at the Wan 3 model page on Segmind and start with a five second 720P clip before you spend anything on the long end. Set the timeout generously, log x-cost, and turn prompt_extend off the moment you start art directing.