alibaba/wan-2.2/animate-mix

The Wan video character swap model replaces the main character in a video with a character from an image. This model preserves the scene, lighting, and tone of the original video to ensure a seamless result.

IMAGE-TO-VIDEONEW
Wan-2.2 Video Character Swap
image-to-video

The Wan video character swap model replaces the main character in a video with a character from an image. This model preserves the scene, lighting, and tone of the original video to ensure a seamless result.

INPUT

Loading parameter configuration...

OUTPUT

Idle
Your generated videos will appear here
Configure your settings and click Run to get started

Your request will cost 0.126 per run. For $10 you can run this model approximately 79 times.

Here's what you can do next:

Parameters

Code Example

import requests
import time

# Step 1: Start video generation
generate_url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
    "model": "alibaba/wan-2.2/animate-mix",
    "prompt": "A beautiful sunset over the ocean with gentle waves",
    "width": 512,
    "height": 512,
    "duration": 3,
    "fps": 24,
}

generate_response = requests.post(generate_url, headers=headers, json=data)
generate_result = generate_response.json()
prediction_id = generate_result["data"]["id"]

# Step 2: Poll for result
poll_url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"

def check_status():
    while True:
        response = requests.get(poll_url, headers={"Authorization": "Bearer $ATLASCLOUD_API_KEY"})
        result = response.json()

        if result["data"]["status"] in ["completed", "succeeded"]:
            print("Generated video:", result["data"]["outputs"][0])
            return result["data"]["outputs"][0]
        elif result["data"]["status"] == "failed":
            raise Exception(result["data"]["error"] or "Generation failed")
        else:
            # Still processing, wait 2 seconds
            time.sleep(2)

video_url = check_status()

Install

Install the required package for your language.

bash
pip install requests

Authentication

All API requests require authentication via an API key. You can get your API key from the Atlas Cloud dashboard.

bash
export ATLASCLOUD_API_KEY="your-api-key-here"

HTTP Headers

python
import os

API_KEY = os.environ.get("ATLASCLOUD_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}
Keep your API key secure

Never expose your API key in client-side code or public repositories. Use environment variables or a backend proxy instead.

Submit a request

import requests

url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
    "model": "your-model",
    "prompt": "A beautiful landscape"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

Submit a Request

Submit an asynchronous generation request. The API returns a prediction ID that you can use to check the status and retrieve the result.

POST/api/v1/model/generateVideo

Request Body

import requests

url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer $ATLASCLOUD_API_KEY"
}

data = {
    "model": "alibaba/wan-2.2/animate-mix",
    "input": {
        "prompt": "A beautiful sunset over the ocean with gentle waves"
    }
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

print(f"Prediction ID: {result['id']}")
print(f"Status: {result['status']}")

Response

{
  "id": "pred_abc123",
  "status": "processing",
  "model": "model-name",
  "created_at": "2025-01-01T00:00:00Z"
}

Check Status

Poll the prediction endpoint to check the current status of your request.

GET/api/v1/model/prediction/{prediction_id}

Polling Example

import requests
import time

prediction_id = "pred_abc123"
url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }

while True:
    response = requests.get(url, headers=headers)
    result = response.json()
    status = result["data"]["status"]
    print(f"Status: {status}")

    if status in ["completed", "succeeded"]:
        output_url = result["data"]["outputs"][0]
        print(f"Output URL: {output_url}")
        break
    elif status == "failed":
        print(f"Error: {result['data'].get('error', 'Unknown')}")
        break

    time.sleep(3)

Status Values

processingThe request is still being processed.
completedGeneration is complete. Outputs are available.
succeededGeneration succeeded. Outputs are available.
failedGeneration failed. Check the error field.

Completed Response

{
  "data": {
    "id": "pred_abc123",
    "status": "completed",
    "outputs": [
      "https://storage.atlascloud.ai/outputs/result.mp4"
    ],
    "metrics": {
      "predict_time": 45.2
    },
    "created_at": "2025-01-01T00:00:00Z",
    "completed_at": "2025-01-01T00:00:10Z"
  }
}

Upload Files

Upload files to Atlas Cloud storage and get a URL you can use in your API requests. Use multipart/form-data to upload.

POST/api/v1/model/uploadMedia

Upload Example

import requests

url = "https://api.atlascloud.ai/api/v1/model/uploadMedia"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }

with open("image.png", "rb") as f:
    files = {"file": ("image.png", f, "image/png")}
    response = requests.post(url, headers=headers, files=files)

result = response.json()
download_url = result["data"]["download_url"]
print(f"File URL: {download_url}")

Response

{
  "data": {
    "download_url": "https://storage.atlascloud.ai/uploads/abc123/image.png",
    "file_name": "image.png",
    "content_type": "image/png",
    "size": 1024000
  }
}

Input Schema

The following parameters are accepted in the request body.

Total: 0Required: 0Optional: 0

No parameters available.

Example Request Body

json
{
  "model": "alibaba/wan-2.2/animate-mix"
}

Output Schema

The API returns a prediction response with the generated output URLs.

idstringrequired
Unique identifier for the prediction.
statusstringrequired
Current status of the prediction.
processingcompletedsucceededfailed
modelstringrequired
The model used for generation.
outputsarray[string]
Array of output URLs. Available when status is "completed".
errorstring
Error message if status is "failed".
metricsobject
Performance metrics.
predict_timenumber
Time taken for video generation in seconds.
created_atstringrequired
ISO 8601 timestamp when the prediction was created.
Format: date-time
completed_atstring
ISO 8601 timestamp when the prediction was completed.
Format: date-time

Example Response

json
{
  "id": "pred_abc123",
  "status": "completed",
  "model": "model-name",
  "outputs": [
    "https://storage.atlascloud.ai/outputs/result.mp4"
  ],
  "metrics": {
    "predict_time": 45.2
  },
  "created_at": "2025-01-01T00:00:00Z",
  "completed_at": "2025-01-01T00:00:10Z"
}

Atlas Cloud Skills

Atlas Cloud Skills integrates 300+ AI models directly into your AI coding assistant. One command to install, then use natural language to generate images, videos, and chat with LLMs.

Supported Clients

Claude Code
OpenAI Codex
Gemini CLI
Cursor
Windsurf
VS Code
Trae
GitHub Copilot
Cline
Roo Code
Amp
Goose
Replit
40+ supported clients

Install

bash
npx skills add AtlasCloudAI/atlas-cloud-skills

Setup API Key

Get your API key from the Atlas Cloud dashboard and set it as an environment variable.

bash
export ATLASCLOUD_API_KEY="your-api-key-here"

Capabilities

Once installed, you can use natural language in your AI assistant to access all Atlas Cloud models.

Image GenerationGenerate images with models like Nano Banana 2, Z-Image, and more.
Video CreationCreate videos from text or images with Kling, Vidu, Veo, etc.
LLM ChatChat with Qwen, DeepSeek, and other large language models.
Media UploadUpload local files for image editing and image-to-video workflows.

MCP Server

Atlas Cloud MCP Server connects your IDE with 300+ AI models via the Model Context Protocol. Works with any MCP-compatible client.

Supported Clients

Cursor
VS Code
Windsurf
Claude Code
OpenAI Codex
Gemini CLI
Cline
Roo Code
100+ supported clients

Install

bash
npx -y atlascloud-mcp

Configuration

Add the following configuration to your IDE's MCP settings file.

json
{
  "mcpServers": {
    "atlascloud": {
      "command": "npx",
      "args": [
        "-y",
        "atlascloud-mcp"
      ],
      "env": {
        "ATLASCLOUD_API_KEY": "your-api-key-here"
      }
    }
  }
}

Available Tools

atlas_generate_imageGenerate images from text prompts.
atlas_generate_videoCreate videos from text or images.
atlas_chatChat with large language models.
atlas_list_modelsBrowse 300+ available AI models.
atlas_quick_generateOne-step content creation with auto model selection.
atlas_upload_mediaUpload local files for API workflows.

API Schema

Schema not available

Please log in to view request history

You need to be logged in to access your model request history.

Log In

Alibaba Wan 2.2 Animate Mix

An advanced, unified character animation and replacement model that transfers motion, expressions, and timing from a source clip while preserving the identity of a target character from a single reference image. Animate Mix is part of the Wan 2.2 Animate family and focuses on blending the target identity with source motion for coherent, high-quality video generation.

Overview

  • Purpose: Motion transfer and identity preservation from one image to a full video
  • Core capability: Mix mode fuses target appearance with source motion dynamics
  • Foundation: Built atop Wan2.2 innovations (e.g., MoE-driven diffusion, improved data, high-compression video)
  • Typical output: Smooth 24 fps video at up to 720p with holistic movement and expression replication
  • Use cases: Character animation, avatar replacement, lip-sync, dynamic explainer clips, social content

Key Features

  • One-image-to-video: Animate a character from a single, high-quality portrait or full-body image
  • Motion mix-in: Transfer pose, body motion, facial expressions, and timing from a source video
  • Identity retention: Preserve clothing, face, and hair of the target character while adopting motion
  • Holistic dynamics: Handles subtle micro-expressions, head motion, and body kinematics
  • Robustness: Works across varied camera motions and moderate occlusions with careful input selection
  • Motion + Identity Transfer: Applies actions and facial expressions from a reference video while preserving the target character’s face, hair, and clothing.
  • Dual Modes:
    • Standard Mode (wan-std): Optimized for speed and cost; ideal for previews and basic outputs.
    • Professional Mode (wan-pro): Smoother motion and higher fidelity for production use (higher time/cost).
  • Flexible Input Support: Handles wide image/video resolutions and aspect ratios for diverse pipelines.
  • Long Duration: Supports reference videos from 2 to 30 seconds.
  • Holistic Dynamics: Captures pose, micro‑expressions, head motion, and timing for coherent results.

Designed For

  • Content Creators: Identity-preserving avatar animation for social content.
  • Game Developers: Rapid prototyping of character motion with reference clips.
  • Marketing & Advertising: Transform static assets into dynamic character videos.
  • Animation Enthusiasts: Experiment with motion transfer and identity mixing.

Input Requirements

To achieve the best results, follow these guidelines:

Character Image

  • Content: One person, facing the camera, face fully visible and unobstructed; the subject should occupy a moderate portion of the frame.
  • Format: JPG, JPEG, PNG, BMP, WEBP.
  • Dimensions: Width and height between 200 and 4096 pixels.
  • Aspect Ratio: Between 1:3 and 3:1.
  • File Size: Max 5 MB.

Reference Video (Motion Source)

  • Content: One person with clearly visible face; stable framing improves motion transfer.
  • Format: MP4, AVI, MOV.
  • Duration: 2 to 30 seconds.
  • Dimensions: Width and height between 200 and 2048 pixels.
  • Aspect Ratio: Between 1:3 and 3:1.
  • File Size: Max 200 MB.
  • Recommendation: Higher resolution and frame rate yield better identity preservation and smoother motion.

Pricing

Billing is based on generated video duration and selected mode.

  • Billing Logic: Cost scales with video duration.
  • Mode Multiplier:
    • Standard Mode: 1.0x base rate.
    • Professional Mode: 1.5x base rate.
  • Service transitions to paid billing once the free quota is used; set up a payment method early to avoid interruptions.

How to Use

  1. Upload Character Image: Provide a clear identity reference for the target character.
  2. Upload Reference Video: Select a clip containing the desired motion and expressions.
  3. Select Mode: Choose "Standard" (wan‑std) for speed or "Professional" (wan‑pro) for quality.
  4. Generate: Submit to produce the identity‑preserving animated video.

Best Practices

  • Use high‑resolution, well‑lit images; avoid occlusions and heavy motion blur.
  • Choose a motion source with matching vibe (tempo, style, emotion) to your target.
  • Keep backgrounds simple to reduce artifacts and improve identity retention.
  • Prefer moderate motion complexity; extreme spins or strong occlusions may degrade quality.

Limitations

  • Identity drift may occur with occlusions, extreme camera motion, or low‑quality inputs.
  • Fast‑moving props or complex interactions can introduce artifacts and temporal instability.
  • Lip‑sync quality depends on clarity of the source clip and face visibility in the reference image.

Safety and Content

  • Respect privacy and consent when using identity transfer.
  • Follow platform policies and local regulations.
  • Avoid generating harmful or restricted content.

Version

  • Model: Alibaba Wan 2.2 Animate Mix
  • Family: Wan2.2 Animate (Move/Mix)
  • Technical context: Wan 2.2 with MoE‑driven video diffusion and improved training data

Start From 300+ Models,

Explore all models