Wan 2.2 14B Animate Replace is an advanced AI video generation model designed for precise character replacement in existing videos. The model maintains the original video's scene, background, camera angles, and timing, while replacing the person in the video with a new character based on a reference photo. Replacement can be limited to the face or include the full body, preserving body poses and synchronized lip movements.
vs Stable Diffusion Video: Wan 2.2 emphasizes end-to-end character replacement in videos with holistic expression and motion transfer, surpassing Stable Diffusion extensions which mainly support short clip generation and less consistent temporal control. Wan 2.2 can handle longer videos (up to several minutes) compared to typically shorter outputs from Stable Diffusion video models.
vs Imagen Video (Google): Imagen Video focuses largely on video generation from text prompts with high visual quality but lacks specific character replacement features. Wan 2.2’s unique selling point is unifying animation and replacement modes with detailed control over expressions and motion, catering to character-centric workflows.
vs Meta Make-A-Video: Wan 2.2 specializes in character replacement with precise synchronization of pose and lips in existing videos, whereas Make-A-Video generates short video clips from text without targeted character substitution. Make-A-Video focuses on general scene creation, making Wan 2.2 more practical for post-production and video editing.
Accessible via AI/ML API. Documentation: available here.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "wan/v2.2-14b/animate/replace", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "wan/v2.2-14b/animate/replace", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"wan/v2.2-14b/animate/replace","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Wan 2.2 14B Animate Replace This page | Video generation |
Wan 2.2 14B Animate Replace takes image, video as input and returns video.
Wan 2.2 14B Animate Replace is priced at $0.052 / gen.
Wan 2.2 14B Animate Replace is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Wan 2.2 14B Animate Replace accepts image input as well as a text prompt.
Wan 2.2 14B Animate Replace was built by Alibaba Cloud.
Send a request to v2/video/generations with wan/v2.2-14b/animate/replace as the model id.
Yes. Wan 2.2 14B Animate Replace is served through AI/ML API, so the same key and endpoint format used for other models applies.