Wan-2.2 Animate Move
Integrer
wan/v2.2-14b/animate/move
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/wan/v2.2-14b/animate/move?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/wan/v2.2-14b/animate/move?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/wan/v2.2-14b/animate/move", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/no/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "wan/v2.2-14b/animate/move",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
Kall Wan-2.2 Animate Move-modellen (wan/v2.2-14b/animate/move) gjennom Doitong API. Dokumentasjon for agenter: https://doitong.com/no/developers/models/wan/v2.2-14b/animate/move.md
POST https://api.doitong.com/v1/run/wan/v2.2-14b/animate/move?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
Hvis responsstatusen er "queued" eller "running", send GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20-forespørsler til den er "succeeded"; filene ligger i outputs[].url. POST https://api.doitong.com/v1/quote/wan/v2.2-14b/animate/move med samme innhold returnerer den nøyaktige prisen før kjøringen.
Filer som eksempelet: 0,75 $ 750 API-kreditter filene dine måles før kjøring Kjør den på denne siden
Din nye API-nøkkel. Den vises bare nå og er allerede satt inn i koden og i API-nøkkelfeltet nedenfor. Hold den hemmelig: Legg den aldri i kode som kjører i en nettleser.
Laget på Doitong
Offentlige verk laget med Wan-2.2 Animate av Doitong-fellesskapet. Gjenbruk en prompt med ett klikk.
Video
Create a highly realistic UGC-style smartphone video inside a modern commercial airplane during a daytime flight. Natural cabin lighting, subtle handheld camera movement, authentic airplane ambience, realistic passengers and natural acting. The video must feel like a real spontaneous phone...
Video
**SORA 2 PROMPT — 20 seconds, vertical 9:16** Create a highly realistic UGC-style smartphone video inside a modern commercial airplane during a daytime flight. Natural cabin lighting, subtle handheld camera movement, authentic airplane ambience, realistic passengers and natural acting. The video...
Video
Create a realistic cinematic 20-second video, filmed like a high-budget modern commercial with natural acting, realistic lighting and believable facial expressions. All dialogue is spoken naturally in French. **SCENE 1 — EXPENSIVE RESTAURANT, EVENING — 0–5 sec** A young man in his late 20s is...
Video
Create a realistic cinematic UGC-style commercial video, exactly 30 seconds long. The entire scene takes place inside a modern passenger airplane during a daytime flight. Natural smartphone-like cinematography, realistic airplane cabin, authentic passengers, natural lighting, realistic skin...
Video
TITLE: Santa's Secret Christmas Selfie with Dasha 🎄 VIDEO FORMAT: 15–20 seconds, vertical 9:16, cinematic Christmas short film, high-quality realistic 3D animation. REFERENCE IMAGE — DASHA_001 Use the uploaded image as the exact character reference for Dasha. Preserve her recognizable face,...
Bygg en forespørsel
Kontrollene genereres fra modellskjemaet. Koden og prisen oppdateres når du endrer dem.
/run/wan/v2.2-14b/animate/move?wait=20
pris → 0,75 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/wan/v2.2-14b/animate/move?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/wan/v2.2-14b/animate/move?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/wan/v2.2-14b/animate/move", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "wan/v2.2-14b/animate/move",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
Kjør denne forespørselen
Nøkkelen din blir i denne nettleseren: Den sendes bare til Doitong API og lagres bare i localStorage hvis du krysser av for Husk. Hent en API-nøkkel
Om Wan-2.2 Animate Move
Tar imot en kilde-`video_url` og en figur-`image_url`, og produserer en video der figuren i bildet følger videoens bevegelser og uttrykk. Utdata-`resolution` er 480p, 580p eller 720p. Bildet skaleres og beskjæres sentralt hvis det ikke samsvarer med sideforholdet. Valgfrie `use_turbo` og `return_frames_zip` gir en raskere modus og et tapsfritt arkiv bilde for bilde.
Parametere
Send enten det kanoniske navnet eller det opprinnelige navnet, ikke begge. Kanoniske navn
video_urlobligatorisk
video
image_urlobligatorisk
image
guidance_scalevalgfritt
resolutionvalgfritt
seedvalgfritt
num_inference_stepsvalgfritt
enable_safety_checkervalgfritt
enable_output_safety_checkervalgfritt
shiftvalgfritt
video_qualityvalgfritt
video_write_modevalgfritt
return_frames_zipvalgfritt
use_turbovalgfritt
Filparametere tar imot en offentlig https:// URL, en data: URI på opptil 10 MB eller file_url fra en opplasting. Filer
Utdata
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "wan/v2.2-14b/animate/move",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 750,
"usd": "0.75",
"charged": 750,
"refunded": 0
},
"input": {
"video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"frames_zip": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"prompt": "",
"seed": 42
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Utdatafelt
- video
- object {url, content_type, file_name, file_size}Videofil produsert av genereringen.
- frames_zip
- object {url, content_type, file_name, file_size} | nullZIP-fil som inneholder genererte bilder, levert når det er bedt om den.
- prompt
- stringPrompt opprettet av modellen og brukt til å generere resultatet.
- seed
- integerSeed-verdi brukt under genereringen.
Andre Wan-2.2 Animate-varianter
Flere modeller: Video til video
For AI-agenter: Denne siden som Markdown finnes på https://doitong.com/no/developers/models/wan/v2.2-14b/animate/move.md. Alle modeller og veiledninger: https://doitong.com/developers/llms.txt