Wan 3.0
Generate videos from text, frames, or multimodal references.
/api/v1/generationsExample request
Set your FLUX_API_KEY before running. See the parameters below for supported settings.
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "wan3",
"input": {
"mode": "text-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "16:9"
}
}'Parameters
Set model to wan3. These fields belong inside input.
| Parameter | Description |
|---|---|
resolutionstring · Optional | Output resolution tier. Values are case-sensitive.480p720p1080pDefault: 720p |
aspect_ratiostring · Optional | Output proportions; see mode constraints below.auto16:94:31:13:49:16Default: auto |
soundboolean · Optional | Generate sound with the video. This is not a reference audio input. Default: true |
watermarkboolean · Optional | Whether to request a watermark. Default: false |
modestring · Required | Choose a supported generation mode.text-to-videoimage-to-videoreference-to-video |
promptstring · Optional | Describe the desired output. Maximum 5,000 characters. Default: |
image_urlsstring[] · Optional | Public HTTPS reference images. Video image order and count depend on mode. Up to 10 items. |
video_urlsstring[] · Optional | Public HTTPS MP4 or MOV references. Flux measures duration before charging. Maximum file size 200 MiB. Up to 5 items. |
audio_urlsstring[] · Optional | Public HTTPS MP3, WAV or M4A references. Flux measures duration before charging. Maximum file size 15 MiB. Audio is not billed separately. Up to 5 items. |
reference_intentstring · Optional | Generate new content or edit a reference video. See model constraints for duration behavior.generateeditDefault: generate |
durationinteger · Optional | Output duration in seconds. See model constraints for editing and automatic duration. Range: 2–30. Default: 5 |
seedinteger · Optional | Optional random seed; repeatability is not guaranteed. Range: 0–2147483647. |
Reference media
Use your own publicly accessible HTTPS media URLs. Links must remain valid throughout queueing and generation. Base64 and file upload bodies are not supported by this endpoint.
image-to-video
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "wan3",
"input": {
"mode": "image-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg",
"https://example.com/back.jpg"
]
}
}'reference-to-video
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "wan3",
"input": {
"mode": "reference-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg",
"https://example.com/back.jpg"
]
}
}'Video and audio references
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "wan3",
"input": {
"mode": "reference-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/reference.mp3"
]
}
}'Edit a video
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "wan3",
"input": {
"mode": "reference-to-video",
"prompt": "Edit the video to use a warm sunset background",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/reference.mp3"
],
"reference_intent": "edit"
}
}'Credits
| Resolution | Credits / second |
|---|---|
| 480p | 10 |
| 720p | 18 |
| 1080p | 36 |
Video reference seconds are included in the billable duration. See the model-specific rounding and editing rules below. Sound does not change the price. Confirmed failed requests are refunded.
Credits = ceil((fixed output seconds + measured input video seconds, rounded to 3 decimals) × rate). Reference audio is not billed separately. Editing derives a fixed output duration before charging.
Constraints
A prompt is required for text-to-video and optional with media. Image-to-video accepts 1–2 frames. Reference mode supports up to 10 images, 5 videos and 5 audio files.
Each video/audio must be 1–15 seconds; video total and audio total must each be at most 15 seconds. Output plus input video duration must not exceed 30 seconds.
With reference_intent edit, a prompt is required and aspect_ratio is set to auto. Flux derives a fixed output duration: min(max(2, ceil(input video seconds + 1)), floor(30 - input video seconds)); the supplied duration is replaced. Automatic duration -1, file_urls and link_urls are not supported.
Use returned dimensions when available. Unverified video dimensions are null. Videos are delivered as MP4. Reference and editing rules depend on the model.
Response
A successful submission returns HTTP 202 and a request ID. Response excerpt:
{
"id": "REQUEST_ID",
"model": "wan3",
"status": "processing"
}