Seedream 5.0 Pro è LIVE | Prova nel Generatore di immagini →

Wan 2.2 I2V 480P

wavespeed-ai /

Wan 2.2 A14B converts images into 480p videos, enabling unlimited AI video generation from single images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-video
Input

Inattivo

$0.15per esecuzione·~66 / $10

Successivo:

EsempiVedi tutto

A sci-fi spaceship launches from a futuristic spaceport at night, engines roaring with intense thrust, glowing exhaust lighting up the runway. Strong camera shake and motion blur emphasize speed and vibration, cinematic dynamic pacing.

A man wearing glasses stands by a window, subtly adjusting his jacket collar and looking outside with thoughtful expression, natural motion, not in slow motion, cinematic lighting.

A close-up of a steaming bowl of ramen on a wooden table, lit by warm, moody light. Camera slowly pulls back to reveal a cozy izakaya. A man in his 30s, wearing a dark jacket, sits alone, gently blowing on the noodles. Raindrops patter softly outside the window. Steam rises and curls into the dim ambient light, evoking a quiet, comforting atmosphere.

A young woman in a red dress looks out from a rainy café window, a single tear rolling down her cheek. Subtle, natural movements of her head and eyes, rain softly flowing outside, fluid motion, cinematic lighting, not in slow motion.

A woman in business attire waits at a crosswalk as cars pass by. Her hair moves naturally with the wind, subtle head and body movements, smooth motion, cinematic lighting, not in slow motion.

Modelli correlati

README

Wan 2.2 Image-to-Video 480p

Generate dynamic videos from images with Wan 2.2 at an accessible 480p resolution. This versatile model supports both single-image animation and start-to-end frame interpolation — perfect for rapid prototyping, social media content, and budget-conscious video production.

Looking for higher resolution? Try Wan 2.2 I2V 720p for HD output.

Why It Looks Great

  • Smooth motion synthesis: Creates fluid, natural movement from static images.
  • Start-to-end interpolation: Optionally provide a last frame for controlled transitions.
  • 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 motion descriptions automatically.
  • Safety Checker: Optional content filtering for appropriate output.
  • Reproducible results: Use the seed parameter to recreate exact outputs.

Parameters

ParameterRequiredDescription
imageYesSource/starting image to animate (upload or public URL).
promptYesText description of the motion and action you want.
negative_promptNoElements to avoid in the generated video.
last_imageNoOptional ending frame for start-to-end interpolation (upload or URL).
durationNoVideo length: 5 or 8 seconds. Default: 5.
seedNoRandom seed for reproducibility. Use -1 for random.
Enable Safety CheckerNoToggle content safety filtering.

How to Use

  1. Upload your starting image — drag and drop or paste a public URL.
  2. Write your prompt — describe the motion, camera work, and action in detail.
  3. Use Prompt Enhancer (optional) — click to enrich your motion description.
  4. Add negative prompt (optional) — specify elements to exclude.
  5. Upload last image (optional) — add an ending frame for interpolation effects.
  6. Set duration — choose 5 or 8 seconds.
  7. Set seed (optional) — for reproducible results.
  8. Run — click the button to generate.
  9. 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

Volume Examples

VideosDurationTotal Cost
105s$1.50
108s$2.40
505s$7.50
508s$12.00

Best Use Cases

  • Action & Sci-Fi Content — Animate spaceships, vehicles, and dynamic action scenes.
  • Rapid Prototyping — Test concepts quickly before committing to higher resolutions.
  • Social Media Content — 480p works great for mobile-first platforms and stories.
  • Motion Transitions — Use start and end frames for smooth morphing effects.
  • High-Volume Production — Generate large batches affordably for content libraries.

Example Prompts

  • "A sci-fi spaceship launches from a futuristic spaceport at night, engines roaring with intense thrust, glowing exhaust lighting up the runway. Strong camera shake and motion blur emphasize speed and vibration, cinematic dynamic pacing."
  • "Slow zoom in on subject's face, subtle expression change, atmospheric lighting shift"
  • "Camera orbits around the product, smooth rotation, studio lighting reflections"
  • "Clouds rolling across the sky in timelapse, dramatic weather movement"
  • "Character turns head slowly, wind moving through hair, soft ambient motion"

Start-to-End Interpolation

When you provide both an image and a last_image, the model creates a smooth video transition between the two frames:

Use CaseHow to Use
Scene transitionsStart with day scene, end with night scene
Morphing effectsStart with one expression, end with another
Movement sequencesStart position to end position
Zoom effectsWide shot to close-up (or vice versa)

Resolution Comparison

ModelResolutionCost (5s)Best For
I2V 480p480p$0.15Mobile content, prototyping, high-volume
I2V 720p720pHigherFinal delivery, quality content
I2V 720p Ultra Fast720p$0.10Speed-optimized HD generation

Pro Tips for Best Results

  • Use 480p for testing and iteration, then upgrade to 720p for final deliverables.
  • For action scenes, use words like "intense", "dynamic", "camera shake", "motion blur".
  • Negative prompts like "static", "frozen", "jitter" help ensure smooth motion.
  • The last_image feature enables creative transitions not possible with single-image input.
  • 480p is ideal for vertical content on mobile platforms where resolution matters less.
  • Keep the same seed when comparing prompt variations.

Notes

  • If using URLs for images, ensure they are publicly accessible. Preview thumbnails confirm successful loading.
  • Enable Safety Checker for content that will be publicly shared.
  • Processing time scales with duration — 8-second videos take longer.
  • 480p is sufficient for most social media and mobile viewing contexts.
Nota:Questo sito web utilizza modelli di intelligenza artificiale forniti da terze parti.

Wan 2.2 I2v 480p API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/i2v-480p with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Wan 2.2 I2v 480p below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "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/i2v-480p" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; 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 has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  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
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/i2v-480p";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "duration": 5,
        "seed": -1
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "duration": 5,
    "seed": -1
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/i2v-480p", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Wan 2.2 I2v 480p API — Frequently asked questions

What is the Wan 2.2 I2v 480p API?

Wan 2.2 I2v 480p is a WaveSpeedAI model for video generation from images, exposed as a REST API on WaveSpeedAI. Wan 2.2 A14B converts images into 480p videos, enabling unlimited AI video generation from single images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Wan 2.2 I2v 480p API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/wan-2.2-i2v-480p.

How much does Wan 2.2 I2v 480p cost per run?

Wan 2.2 I2v 480p starts at $0.15 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Wan 2.2 I2v 480p accept?

Key inputs: `prompt`, `image`, `duration`, `seed`, `negative_prompt`, `last_image`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/wan-2.2-i2v-480p.

How long does Wan 2.2 I2v 480p take to generate?

Median end-to-end generation time on WaveSpeedAI is around 71 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Wan 2.2 I2v 480p outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Wan 2.2 I2V 480P | Fast Image-to-Video API | WaveSpeedAI