What Wan 2.2 Character Swap is good at
Video models are billed per second or per clip: turn a description or a picture into a clip a few seconds long.
Upload one person photo and one reference video, and the AI replaces the person in the video with the one in the photo. No prompt needed; standard and pro modes.
Good for
- Short video ads and product showcases
- Bringing a still image to life
- Short clips for social media
Less suited for
- Videos several minutes long: generate in parts and edit together
- Articles or code: use a chat model
Code sample
Replace sk-... with the API key from your console.
curl https://api.macloudai.com/v1/media/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "wan2.2-animate-mix", "prompt": "A cat watching the rain on a windowsill, cinematic shot", "params": {"duration": "5", "resolution": "720p", "aspect_ratio": "16:9"}}'
# → {"data": {"task_id": "mt_…"}}
curl "https://api.macloudai.com/v1/media/status?task_id=mt_…" \
-H "Authorization: Bearer $API_KEY"
import time, requests
BASE = "https://api.macloudai.com/v1"
H = {"Authorization": "Bearer sk-..."}
r = requests.post(f"{BASE}/media/generate", headers=H, json={
"model": "wan2.2-animate-mix",
"prompt": "A cat watching the rain on a windowsill, cinematic shot",
"params": {"duration": "5", "resolution": "720p", "aspect_ratio": "16:9"},
}).json()
task = r["data"]["task_id"]
# Poll every 5–10 seconds; when is_final is true the result is in result_url
while True:
s = requests.get(f"{BASE}/media/status", headers=H, params={"task_id": task}).json()["data"]
if s["is_final"]:
print(s["state"], s.get("result_url"), s.get("error"))
break
time.sleep(8)
# An estimate is held when you submit; the final charge follows actual usage, and failed tasks are fully refunded
Model name: wan2.2-animate-mixFull docs →
What it costs, roughly
Estimated from the unit price above; you are charged per generation.
| One 5-second clip5 × US$0.08 | US$0.41 |
| One 10-second clip10 × US$0.08 | US$0.81 |
| A 30-second ad (generated in parts)30 × US$0.08 | US$2.43 |
| A minimum US$3 top-up coversbilled per second | ≈ 37 s |
Model status
Calls over the last 24 hours.
24h success93.5%
Fastest response184 s
Lines online1
Related models
One API key calls them all; to switch, just change the model name.
Other Alibaba models
Wan 3.0 Omni ReferenceUS$0.12 per second
Wan 3.0US$0.06 per second
HappyHorse ReferenceUS$0.20 per second
Wan 3.0 Text-to-VideoUS$0.12 per second
Wan 3.0 ReferenceUS$0.12 per second
HappyHorse Video EditUS$0.20 per second
Alternatives at a similar price
Seedance 2.5 Full Per SecondUS$0.13 per second
GK Video 3.5US$0.03 per second
Kling V4 VideoUS$0.34 per second
Vidu Q4 PreviewUS$0.05 per second
FAQ
Q1How is Wan 2.2 Character Swap billed?
US$0.08 per second, deducted from your balance. Pay for what you use, no monthly fee.
Q2How do I use Wan 2.2 Character Swap in Indonesia?
Sign up, top up in Rupiah by QRIS or bank transfer, create an API key, set the base URL to https://api.macloudai.com/v1 and model to wan2.2-animate-mix.
Q3What if a call fails?
401: the API key is wrong or deleted; copy it again from the console. Insufficient balance: top up and it works right away. 429: too many requests; wait a few seconds. 500, 502, 503: the upstream is briefly unstable; retry, or switch to another model in the same price range.
Q4Do I need a credit card?
No. You pay in Rupiah by QRIS or bank transfer. That is the whole point of this service.