Ana içeriğe geç
wan-video avatarı

Wan 2.2 Animate Move API

wan-video/wan-animate/move

Karakter görselleri için motion control: bir driving videodaki hareketi ve yüz ifadelerini karakterinize aktarın — metin prompt’u gerekmez, bir fotoğraf ve bir referans klip yeter.

Çözünürlüğe göre fiyatlandırılır

Model girdisi

Input

URL of the driving video. Its body motion and facial expressions are transferred onto the character image.

URL of the character image to animate. It is resized and center-cropped to the driving video's aspect ratio.

Output resolution. 480p (default) is the cheapest tier, 580p mid, 720p the highest quality.

Additional Settings

Customize your input with more control.

Min: 1 - Max: 10

Classifier-free guidance strength. Higher values follow the conditioning more strictly; the default of 1 suits most driving videos.

Min: 2 - Max: 40

Number of denoising steps. More steps can add detail at the cost of runtime.

Min: 1 - Max: 10

Flow-matching timestep shift. Leave at the default unless tuning motion fidelity.

Encoding quality of the returned mp4.

Trade-off used when writing the mp4: 'fast' writes quickest, 'small' produces the smallest file, 'balanced' sits between them.

Whether to also produce a ZIP archive of the generated frames.

Run the accelerated variant: faster generation with a slight reduction in fidelity.

Random seed. Leave unset for a random result; reuse a value to reproduce a previous run.

You need to be logged in to run this model and view results.
Log in

Model çıktısı

Output

Loading
Generated in 260.734 seconds
Logs (1 lines)

Örnek istekler

Örnekler

Example output 1Example output 2

Model fiyatlandırması

Fiyatlandırma

Fiyat, çıktı videonuzun hedef çözünürlüğüne göre değişir.

480p
$0.075
çıktı videosunun saniyesi başına
yani yaklaşık $1 ile 13 saniye
580p
$0.1125
çıktı videosunun saniyesi başına
yani yaklaşık $1 ile 9 saniye
720p
$0.15
çıktı videosunun saniyesi başına
yani yaklaşık $1 ile 7 saniye

Wan 2.2 Animate Move API

Wan 2.2 Animate Move is a video-to-video AI model by wan-video. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.15 per second of video.

POST https://queue.modelrunner.run/wan-video/wan-animate/move

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/wan-video/wan-animate/move \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "shift": 5,
    "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
    "use_turbo": false,
    "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
    "resolution": "480p",
    "video_quality": "high",
    "guidance_scale": 1,
    "video_write_mode": "balanced",
    "return_frames_zip": false,
    "num_inference_steps": 20,
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/wan-video/wan-animate/move/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/wan-video/wan-animate/move/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("wan-video/wan-animate/move", {
  input: {
    "shift": 5,
    "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
    "use_turbo": false,
    "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
    "resolution": "480p",
    "video_quality": "high",
    "guidance_scale": 1,
    "video_write_mode": "balanced",
    "return_frames_zip": false,
    "num_inference_steps": 20
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/wan-video/wan-animate/move",
    headers=headers,
    json={
      "shift": 5,
      "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
      "use_turbo": false,
      "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
      "resolution": "480p",
      "video_quality": "high",
      "guidance_scale": 1,
      "video_write_mode": "balanced",
      "return_frames_zip": false,
      "num_inference_steps": 20
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Wan 2.2 Animate Move
NameTypeRequiredDescription
video_urlstring (uri)yesURL of the driving video. Its body motion and facial expressions are transferred onto the character image.
image_urlstring (uri)yesURL of the character image to animate. It is resized and center-cropped to the driving video's aspect ratio.
resolutionenumnoOutput resolution. 480p (default) is the cheapest tier, 580p mid, 720p the highest quality. One of: 480p, 580p, 720p. Default: "480p".
guidance_scalenumbernoClassifier-free guidance strength. Higher values follow the conditioning more strictly; the default of 1 suits most driving videos. Default: 1.
num_inference_stepsintegernoNumber of denoising steps. More steps can add detail at the cost of runtime. Default: 20.
shiftnumbernoFlow-matching timestep shift. Leave at the default unless tuning motion fidelity. Default: 5.
video_qualityenumnoEncoding quality of the returned mp4. One of: low, medium, high, maximum. Default: "high".
video_write_modeenumnoTrade-off used when writing the mp4: 'fast' writes quickest, 'small' produces the smallest file, 'balanced' sits between them. One of: fast, balanced, small. Default: "balanced".
return_frames_zipbooleannoWhether to also produce a ZIP archive of the generated frames. Default: false.
use_turbobooleannoRun the accelerated variant: faster generation with a slight reduction in fidelity. Default: false.
seedintegernoRandom seed. Leave unset for a random result; reuse a value to reproduce a previous run.

Machine-readable: OpenAPI schema · llms.txt

Use Wan 2.2 Animate Move from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Wan 2.2 Animate Move becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint wan-video/wan-animate/move.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run wan-video/wan-animate/move on ModelRunner to generate video”. MCP setup guide.

Model Detayları

Model Detayları

Wan 2.2 Animate Move, bir driving videodaki performansı aktararak durağan bir karakter görselini videoya dönüştürür. Bir karakter görseli ve bir driving klip verin: karakter, oyuncunun vücut hareketini ve yüz ifadesini, driving videonun en-boy oranına göre çerçevelenmiş olarak, o klip sürdüğü sürece yeniden üretir. Metin prompt’u yoktur — performansın tamamı verdiğiniz görüntüden gelir. Bu, Wan Animate’in "Move" modudur: karakter, driving görüntünün içine kompozitlenmek yerine kendi sahnesinde canlandırılır.

## En uygun olduğu işler - Bir referans performanstan karakter illüstrasyonu, portre ya da marka maskotu canlandırmak - Motion transfer — çekilmiş tek bir performansı birden fazla farklı karakterde yeniden kullanmak - Senaryo yerine videoyla yönlendirilen talking-head klipleri için mimik ve dudak hareketi aktarımı - Koreografiyi, jestleri ya da sunum anlatımını vekil bir karakterle ön görselleştirmek - Yazılı bir prompt’un hareketi yönlendirmek için fazla belirsiz kalacağı toplu karakter animasyonu

## Şu durumlarda başka bir model seçin - Driving videonuz yoksa ve hareketin bir tarife göre üretilmesini istiyorsanız — bir text-to-video ya da image-to-video modeli kullanın - Bir klibi yeniden tarzlamak ya da arka planını yazılı bir talimatla değiştirmek istiyorsanız — prompt güdümlü bir video düzenleme modeli kullanın - Ağız hareketinin videoyla değil bir ses kaydıyla yönlendirilmesi gerekiyorsa — bir lip-sync modeli kullanın - Hareket değil durağan bir görsel gerekiyorsa — bir görsel düzenleme ya da text-to-image modeli kullanın

## İpuçları - Net ve engelsiz bir karakter görseli kullanın; görsel ortadan kırpılır, bu yüzden öznenin çevresinde boşluk bırakın - Driving klibi kısa tutun — maliyet çıktı süresiyle birlikte artar - `resolution` hem kaliteyi hem fiyatı belirler: en ucuzu `480p` (varsayılan), sonra `580p`, sonra `720p` - `use_turbo` hızlandırılmış bir varyantı çalıştırır — daha hızlı, küçük bir sadakat ödünüyle; en iyi kalite için kapalı bırakın - Zayıf sonuçların başlıca nedeni, görsel ile driving oyuncu arasındaki çerçeveleme uyumsuzluğudur

## Gelişmiş Yapılandırma - `video_quality` (`low`, `medium`, `high`, `maximum`; varsayılan `high`) ve `video_write_mode` (`fast`, `balanced`, `small`; varsayılan `balanced`), mp4’ün nasıl kodlandığını belirler — daha hafif bir dosya için `small`, sonrasında yeniden kodlama yapacaksanız `maximum` kullanın.

## Sınırlamalar - Karakter görseli ile driving oyuncu arasındaki vücut oranı, kamera mesafesi ya da çerçeveleme farklarının büyük olması bozulmaya yol açabilir - Hızlı hareket, yoğun örtüşme ve eller en zayıf durumlardır - Süre ve kare hızı driving klibi izler, doğrudan ayarlanamaz

ModelRunner JavaScript client ile çalıştırmak için: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("wan-video/wan-animate/move", { input: { image_url: "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg", video_url: "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4", resolution: "480p", }, }); ```