Wan 2.2 T2V 480p
Playground
Try it on WaveSpeedAI!Wan 2.2 t2v-480p generates unlimited AI videos from text prompts at 480p resolution, ideal for rapid prototyping and content creation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Create videos from pure imagination with Wan 2.2 Text-to-Video. Simply describe your scene in words and watch it come to life — no source images required. This accessible 480p model supports both landscape and portrait orientations, perfect for rapid prototyping and social media content.
Looking for higher resolution? Try Wan 2.2 T2V 720p for HD output.
Why It Looks Great
- Pure text-to-video: Generate complete videos from descriptions alone — no images needed.
- Landscape & portrait: Supports both horizontal and vertical orientations for any platform.
- 480p efficiency: Ideal resolution for mobile content and rapid iteration.
- Negative prompt support: Exclude unwanted elements for precise control.
- Prompt Enhancer: Built-in tool to refine your descriptions automatically.
- Reproducible results: Use the seed parameter to recreate exact outputs.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the scene, action, and atmosphere you want. |
| negative_prompt | No | Elements to avoid in the generated video. |
| size | No | Output dimensions: 832×480 (landscape) or 480×832 (portrait). Default: 832×480. |
| duration | No | Video length: 5 or 8 seconds. Default: 5. |
| seed | No | Random seed for reproducibility. Use -1 for random. |
How to Use
- Write your prompt — describe the scene, characters, motion, and atmosphere in detail.
- Use Prompt Enhancer (optional) — click to automatically enrich your description.
- Add negative prompt (optional) — specify elements to exclude.
- Choose size — select landscape (832×480) or portrait (480×832) orientation.
- Set duration — choose 5 or 8 seconds.
- Set seed (optional) — for reproducible results.
- Run — click the button to generate.
- Download — preview and save your video.
Pricing
Per 5-second billing based on duration.
| Duration | Calculation | Cost |
|---|---|---|
| 5 seconds | 5 ÷ 5 × $0.15 | $0.15 |
| 8 seconds | 8 ÷ 5 × $0.15 | $0.24 |
Size Options
| Size | Orientation | Best For |
|---|---|---|
| 832×480 | Landscape | YouTube, presentations, desktop viewing |
| 480×832 | Portrait | TikTok, Instagram Reels, Stories, mobile |
Best Use Cases
- Social Media Content — Create platform-optimized videos for TikTok, Reels, and Stories.
- Concept Visualization — Bring ideas to life without any source material.
- Rapid Prototyping — Test video concepts quickly before committing to higher resolutions.
- Creative Exploration — Experiment with scenes and narratives affordably.
- Storyboarding — Visualize sequences and story beats in motion.
Example Prompts
- “A young woman in a soft linen dress sits on a balcony in 19th-century Paris, painting the sunset with graceful strokes. Her hair is caught in a gentle breeze, and pastel clouds reflect on her canvas. Birds flutter overhead, and the Eiffel Tower stands distant in soft focus.”
- “Timelapse of cherry blossoms blooming in a Japanese garden, petals falling gently into a koi pond”
- “Astronaut floating through a colorful nebula, stars twinkling, peaceful cosmic atmosphere”
- “Cozy coffee shop interior, steam rising from cups, rain on windows, warm ambient lighting”
- “Epic dragon soaring over mountain peaks at sunset, wings catching golden light, cinematic scale”
Pro Tips for Best Results
- Be descriptive — include setting, characters, motion, lighting, and atmosphere.
- Use cinematic language: “gentle breeze”, “soft focus”, “graceful strokes”, “distant in soft focus”.
- Match orientation to platform: portrait for TikTok/Reels, landscape for YouTube.
- Include environmental details: weather, time of day, ambient elements.
- Negative prompts like “blur”, “jitter”, “distortion” help ensure quality output.
- Start with 5-second videos to test concepts before generating 8-second versions.
Notes
- Duration options are 5 or 8 seconds only.
- 480p is sufficient for most mobile viewing and social media platforms.
- For higher quality final deliverables, consider 720p variants.
- Processing time scales with duration — 8-second videos take longer.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
set -euo pipefail
export WAVESPEED_API_KEY="your-api-key"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic ocean wave at sunrise, highly detailed",
"size": "832*480",
"duration": 5,
"seed": -1
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/t2v-480p" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}")
TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body \
"${RESULT_URL}" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}")
RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')
case "${STATUS}" in
completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| size | string | No | 832*480 | 832*480, 480*832 | The size of the generated media in pixels (width*height). |
| duration | integer | No | 5 | 5, 8 | The duration of the generated media in seconds. |
| seed | integer | No | -1 | - | The random seed to use for the generation. -1 means a random seed will be used. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Output values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string | object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |