Wan 2.2 T2V 480p

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

ParameterRequiredDescription
promptYesText description of the scene, action, and atmosphere you want.
negative_promptNoElements to avoid in the generated video.
sizeNoOutput dimensions: 832×480 (landscape) or 480×832 (portrait). Default: 832×480.
durationNoVideo length: 5 or 8 seconds. Default: 5.
seedNoRandom seed for reproducibility. Use -1 for random.

How to Use

  1. Write your prompt — describe the scene, characters, motion, and atmosphere in detail.
  2. Use Prompt Enhancer (optional) — click to automatically enrich your description.
  3. Add negative prompt (optional) — specify elements to exclude.
  4. Choose size — select landscape (832×480) or portrait (480×832) orientation.
  5. Set duration — choose 5 or 8 seconds.
  6. Set seed (optional) — for reproducible results.
  7. Run — click the button to generate.
  8. Download — preview and save your video.

Pricing

Per 5-second billing based on duration.

DurationCalculationCost
5 seconds5 ÷ 5 × $0.15$0.15
8 seconds8 ÷ 5 × $0.15$0.24

Size Options

SizeOrientationBest For
832×480LandscapeYouTube, presentations, desktop viewing
480×832PortraitTikTok, 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
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-The positive prompt for the generation.
negative_promptstringNo-The negative prompt for the generation.
sizestringNo832*480832*480, 480*832The size of the generated media in pixels (width*height).
durationintegerNo55, 8The duration of the generated media in seconds.
seedintegerNo-1-The random seed to use for the generation. -1 means a random seed will be used.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<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.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.