# Wan | v2.2 14B | Animate | Move wan-v2.2-14b-animate-move is a powerful image-to-animation AI model designed to turn static images into smooth, natural motion. Built on a 14B-parameter architecture, it understands scene context and generates realistic character, object, and camera movements while preserving visual consistency. ## API Information - **Model Slug:** wan-v2-2-14b-animate-move - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-v2-2/wan-v2-2-14b-animate-move - **Provider:** Alibaba - **Category:** Video to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 580p pricing: $0.1125/second - **Estimated Processing Time:** 190 seconds - **Last Updated:** 2026-06-29 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/wan-v2-2-14b-animate-move ## Pricing - **Charge Type:** dynamic - **Pricing Details:** 580p pricing: $0.1125/second ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution eq_i "720p" | 720p pricing: $0.15/second | | resolution eq_i "580p" | 580p pricing: $0.1125/second | | Rule 3 | 480p pricing (fallback): $0.075/second | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | video_url | string | Yes | - | - | URL of the input video. | | image_url | string | Yes | - | - | URL of the input image. If the input image does not match the chosen aspect ratio, it is resized and center cropped. | | resolution | string | No | 480p | 480p,580p,720p | Resolution of the generated video (480p, 580p, or 720p). | | seed | integer | No | - | - | Random seed for reproducibility. If None, a random seed is chosen. | | num_inference_steps | integer | No | 20 | 2–40 | Number of inference steps for sampling. Higher values give better quality but take longer. | | enable_safety_checker | boolean | No | false | - | If set to true, input data will be checked for safety before processing. | | shift | number | No | 5 | 1–10 | Shift value for the video. Must be between 1.0 and 10.0. | | video_quality | string | No | high | low,medium,high,maximum | The quality of the output video. Higher quality means better visual quality but larger file size. | | video_write_mode | string | No | balanced | fast,balanced,small | The write mode of the output video. Faster write mode means faster results but larger file size, balanced write mode is a good compromise between speed and quality, and small write mode is the slowest but produces the smallest file size. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-v2-2-14b-animate-move", "input": { "video_url": "https://storage.googleapis.com/magicpoint/inputs/wan-v2.2-14b-animate-move-input-video.mp4", "image_url": "https://storage.googleapis.com/magicpoint/inputs/wan-v2.2-14b-animate-move-input-image.jpeg" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **wan-v2.2-14b-animate-move — Image-to-Video AI Model** wan-v2.2-14b-animate-move, developed by Alibaba as part of the wan-v2.2 family, is a powerful image-to-animation model that transforms static images into smooth, natural motion sequences. Rather than generating videos from scratch, this model takes your existing images—product photos, portraits, landscapes, or artwork—and intelligently animates them while preserving visual consistency and understanding real-world physics. For creators, marketers, and developers building AI video generation tools, wan-v2.2-14b-animate-move solves a critical problem: producing photorealistic motion from a single frame without the computational overhead of text-to-video generation or the manual labor of traditional animation. Built on a 14-billion-parameter Diffusion Transformer architecture, the model excels at understanding scene context and generating realistic character, object, and camera movements. Unlike earlier video generation models that often produce liquid-like distortions or physically impossible motion, wan-v2.2-14b-animate-move maintains coherent movement patterns grounded in real-world physics, making it ideal for professional-grade video content creation and automated animation workflows. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.