Wan2.2-Animate unified character animation & replacement model replicating movement and expression; generates 720p videos up to 120s. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Idle
$0.2per run·~50 / $10
Wan2.2-Animate is an Wan 2.2–based motion-transfer model that turns a single character image into a full performance. It copies body movement and facial expressions from a driving video while keeping the output stable, realistic, and identity-consistent.
Wan2.2-Animate supports two behaviors:
animate The person or object in the input image is animated to follow the motion in the driving video. Use this when you want to bring a still portrait, illustration, or character design to life.
replace The model replaces the main performer in the video with the person or object from the image, keeping the original motion, scene, and camera. Use this when you want to swap a new character into an existing shot (presenter, actor, mascot, etc.).
Pricing depends on output length and resolution.
| Resolution | Price per 5 s | Max billed length |
|---|---|---|
| 480p | 0.20 USD | 120 s |
| 720p | 0.40 USD | 120 s |
Underlying logic (no math required on your side):
Billed duration is clamped to the range 5–120 seconds
If the video is shorter than 5 s → billed as 5 s
If the video is longer than 120 s → billed as 120 s
480p
0.20 USD per 5 s → 0.04 USD per second
720p
Double 480p → 0.40 USD per 5 s → 0.08 USD per second
So, for example:
video (required) Upload the driving video whose pose, movement, and expressions you want to copy.
mode (required)
resolution Choose 480p for faster, cheaper previews or 720p for higher-quality output.
seed (optional)
Match composition and pose Try to keep the image and video similar in camera angle, crop, and body pose. This reduces artifacts and identity drift, especially in replace mode.
Keep aspect ratio consistent Use the same or very similar aspect ratio for both the image and the video for more stable framing.
Use clean, well-lit faces Avoid heavy occlusion by hands, microphones, or props, and avoid strong motion blur in the driving video.
Prototype at 480p Start with 480p and short clips to find good settings, then switch to 720p and longer durations once you like the behavior.
This gives you a predictable-cost, two-mode pipeline for driving AI characters and doing high-quality character replacement in existing footage.
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/animate with your input as JSON. The endpoint returns a prediction id; poll the prediction endpoint until status flips to completed, then read the output URL from data.outputs[0]. Examples for Wan 2.2 Animate below.
# Submit the prediction
curl -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/animate" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"image": "https://example.com/your-input.jpg",
"video": "https://example.com/your-input.mp4",
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"mode": "animate",
"resolution": "480p",
"seed": -1
}'
# Response includes a prediction id. Poll for the result:
curl -X GET "https://api.wavespeed.ai/api/v3/predictions/{request_id}/result" \
-H "Authorization: Bearer $WAVESPEED_API_KEY"
# When status is "completed", read the output from data.outputs[0].// npm install wavespeed
const WaveSpeed = require('wavespeed');
const client = new WaveSpeed(); // reads WAVESPEED_API_KEY from env
const result = await client.run("wavespeed-ai/wan-2.2/animate", {
"image": "https://example.com/your-input.jpg",
"video": "https://example.com/your-input.mp4",
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"mode": "animate",
"resolution": "480p",
"seed": -1
});
console.log(result.outputs[0]); // → URL of the generated output# pip install wavespeed
import wavespeed
output = wavespeed.run(
"wavespeed-ai/wan-2.2/animate",
{
"image": "https://example.com/your-input.jpg",
"video": "https://example.com/your-input.mp4",
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"mode": "animate",
"resolution": "480p",
"seed": -1
}
)
print(output["outputs"][0]) # → URL of the generated outputWan 2.2 Animate is a WaveSpeedAI model for pose / motion driven video, exposed as a REST API on WaveSpeedAI. Wan2.2-Animate unified character animation & replacement model replicating movement and expression; generates 720p videos up to 120s. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
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 prediction endpoint until status flips to "completed", then read the output URL from the result. The playground generates a ready-to-paste code sample in Python, JavaScript, or cURL for whatever inputs you've set. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/wan-2.2-animate.
Wan 2.2 Animate starts at $0.20 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.
Key inputs: `prompt`, `image`, `video`, `resolution`, `seed`, `mode`. 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-animate.
Average end-to-end generation time on WaveSpeedAI is around 223 seconds per request — measured across recent runs. Queue time scales with global demand; live status is visible in the prediction record.
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.