Unlock exclusive introductory pricing for the newly launched Gemini 3.5 Flash.
Q

Wan2.6

Секундына:$0.08
Шыққан күні:May 31, 2026

Wan2.6 is a video generation model designed for stable and efficient video synthesis. It provides reliable visual quality and smooth motion generation for general video creation tasks.

Жаңа
Коммерциялық пайдалану

Technical Specifications of Wan 2.6

ItemWan 2.6 Video Suite
ProviderAlibaba / Tongyi Lab
Model familyWan 2.6
Release timeframeDecember 2025 generation
Input typesText, images, reference videos, audio inputs
Output typeVideo with optional synchronized audio
Core modesText-to-Video (T2V), Image-to-Video (I2V), Reference-to-Video (R2V)
Flash variantsI2V Flash, R2V Flash
Resolution support720P and 1080P
Duration support2–15 seconds (workflow dependent)
Audio capabilitiesNative audio generation, voice references, lip sync
Multi-shot support2–8 scene segments in a single workflow
Reference supportUp to 5 references (mixed image/video depending on workflow)
API workflowAsync task creation + polling

What is Wan 2.6?

Wan 2.6 is Alibaba’s multimodal video generation system focused on controllable short-form production. Rather than being purely prompt-driven, the model combines text prompts, image references, reference videos, audio conditioning, and scene chaining for creator workflows. The major upgrade over prior Wan releases was the introduction of stronger reference-driven consistency and longer narrative generation.

Main Features of Wan 2.6

  • Reference-to-video workflows: Users can feed image or video references to maintain character identity, style, and voice continuity across generations.
  • Multi-shot narrative generation: Supports chaining multiple prompts together for scene transitions and story progression in a single generation workflow.
  • Native audio synchronization: Built-in support for generated audio, custom audio uploads, and lip synchronization workflows.
  • Flexible input modes: Supports prompt-only generation, first-frame animation, and reference-driven workflows.
  • Flash variants for iteration: Faster versions enable rapid testing before final high-quality renders.
  • Longer clips: Extended clip duration compared with earlier generations, supporting narrative content creation.

Benchmark Performance of Wan 2.6

Formal benchmark transparency for Wan 2.6 remains limited; Alibaba has published fewer standardized benchmark numbers than text LLM providers. Most evaluation comes from workflow testing and ecosystem comparisons rather than public leaderboards. Community testing consistently highlights:

  • Improved character consistency versus older Wan releases.
  • Better audio-video synchronization.
  • Stronger multi-shot continuity.
  • More reliable reference conditioning.

Because benchmark publication is sparse, production testing remains important before deployment.

Wan 2.6 vs Other Video Models

FeatureWan 2.6Wan 2.7Veo-family models
Native audio generationStrongStrongerStrong
Multi-shot workflowYesImprovedModerate
Reference-to-videoStrong emphasisStronger controlsModerate
Clip durationUp to 15sSimilar / workflow dependentVaries
Multi-reference supportUp to 5 refsExpanded workflowsModerate
Editing workflowsModerateBetter editing supportStrong

Limitations of Wan 2.6

  • Short clip duration still limits long-form production.
  • High-motion scenes may still show temporal instability.
  • Reference-heavy workflows increase setup complexity.
  • Public benchmark reporting remains limited.
  • Async generation pipelines increase integration complexity.

Representative Use Cases

  1. Character-consistent marketing videos.
  2. Multi-scene social media clips.
  3. Creator avatar animation.
  4. Reference-driven product videos.
  5. AI storytelling with synchronized audio.
  6. Brand content requiring identity preservation.

ЖҚС

Wan2.6 үшін баға белгілеу

[Модель атауы] үшін әртүрлі бюджеттер мен пайдалану қажеттіліктеріне сәйкес келетін бәсекеге қабілетті баға белгілеуді зерттеңіз. Біздің икемді жоспарларымыз сіз тек пайдаланған нәрсеңіз үшін ғана төлеуіңізді қамтамасыз етеді, бұл сіздің талаптарыңыз өскен сайын масштабтауды жеңілдетеді. [Модель атауы] шығындарды басқарылатын деңгейде ұстай отырып, сіздің жобаларыңызды қалай жақсарта алатынын біліңіз.

Wan Video Generation Pricing

Pricing (Per Second)

Model720p1080p
wan2.6$0.08$0.12
wan2.7$0.08$0.12

💡 Billed per second. Total cost = price per second × video duration (seconds).

Wan2.6 үшін үлгі код және API

[Модель атауы] үшін кешенді үлгі кодтары мен API ресурстарына қол жеткізіп, интеграция процесіңізді жеңілдетіңіз. Біздің толық құжаттама қадам-қадаммен нұсқаулық береді, жобаларыңызда [Модель атауы] мүмкіндіктерін толық пайдалануға көмектеседі.

# Create a video with wan2.6
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=wan2.6" \
  -F "prompt=Create a cinematic multi-shot chase across a moonlit desert market. Shot 1 [0-2s]: a wide establishing view of lanterns and dust in the air. Shot 2 [2-4s]: a small brass robot darts between fabric stalls. Shot 3 [4-5s]: close-up on the robot finding a glowing compass." \
  -F "seconds=5" \
  -F "size=1280x720")

echo "Response: $response"

# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '
' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"

# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
  status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
    -H "Authorization: Bearer $COMETAPI_KEY")

  progress=$(echo "$status_response" | grep -o '"progress"[[:space:]]*:[[:space:]]*"\?[^",}]*"\?' | head -1 | sed 's/.*:[[:space:]]*"\?//;s/"$//')
  status=$(echo "$status_response" | grep -o '"status"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"status"[[:space:]]*:[[:space:]]*"//;s/"$//')

  echo "Progress: $progress, Status: $status"

  if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ] || [ "$status" = "error" ]; then
    echo "Video generation failed!"
    exit 1
  fi

  if [ "$progress" = "100%" ] || [ "$progress" = "100" ] || [ "$status" = "completed" ] || [ "$status" = "success" ]; then
    echo "Video generation completed!"
    break
  fi

  sleep 10
done

# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -o "./output/$video_id.mp4"

if [ -f "./output/$video_id.mp4" ]; then
  echo "Video saved to ./output/$video_id.mp4"
  ls -la "./output/$video_id.mp4"
else
  echo "Failed to download video"
  exit 1
fi

cURL Code Example

# Create a video with wan2.6
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=wan2.6" \
  -F "prompt=Create a cinematic multi-shot chase across a moonlit desert market. Shot 1 [0-2s]: a wide establishing view of lanterns and dust in the air. Shot 2 [2-4s]: a small brass robot darts between fabric stalls. Shot 3 [4-5s]: close-up on the robot finding a glowing compass." \
  -F "seconds=5" \
  -F "size=1280x720")

echo "Response: $response"

# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '\n' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"

# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
  status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
    -H "Authorization: Bearer $COMETAPI_KEY")
  
  progress=$(echo "$status_response" | grep -o '"progress"[[:space:]]*:[[:space:]]*"\?[^",}]*"\?' | head -1 | sed 's/.*:[[:space:]]*"\?//;s/"$//')
  status=$(echo "$status_response" | grep -o '"status"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"status"[[:space:]]*:[[:space:]]*"//;s/"$//')
  
  echo "Progress: $progress, Status: $status"
  
  if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ] || [ "$status" = "error" ]; then
    echo "Video generation failed!"
    exit 1
  fi
  
  if [ "$progress" = "100%" ] || [ "$progress" = "100" ] || [ "$status" = "completed" ] || [ "$status" = "success" ]; then
    echo "Video generation completed!"
    break
  fi
  
  sleep 10
done

# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -o "./output/$video_id.mp4"

if [ -f "./output/$video_id.mp4" ]; then
  echo "Video saved to ./output/$video_id.mp4"
  ls -la "./output/$video_id.mp4"
else
  echo "Failed to download video"
  exit 1
fi

Python Code Example

# Create a video with wan2.6 using raw HTTP requests
import os
import time
import requests

api_key = os.environ.get("COMETAPI_KEY")
base_url = "https://api.cometapi.com/v1"
headers = {"Authorization": f"Bearer {api_key}"}

# Step 1: Submit the video generation request
print("Submitting video generation request...")
response = requests.post(
    f"{base_url}/videos",
    headers=headers,
    files={
        "model": (None, "wan2.6"),
        "prompt": (None, "Create a cinematic multi-shot chase across a moonlit desert market. Shot 1 [0-2s]: a wide establishing view of lanterns and dust in the air. Shot 2 [2-4s]: a small brass robot darts between fabric stalls. Shot 3 [4-5s]: close-up on the robot finding a glowing compass."),
        "seconds": (None, "5"),
        "size": (None, "1280x720"),
    },
)

result = response.json()
print(f"Response: {result}")

video_id = result.get("id") or result.get("task_id")
print(f"Video ID: {video_id}")

# Step 2: Poll for progress until 100%
print("\nChecking video generation progress...")
while True:
    try:
        status_response = requests.get(f"{base_url}/videos/{video_id}", headers=headers)
        status_result = status_response.json()

        data = status_result.get("data") or status_result
        progress = data.get("progress", "0%")
        status = data.get("status", "unknown")

        print(f"Progress: {progress}, Status: {status}")

        if status in ["FAILURE", "failed", "error"]:
            print("Video generation failed!")
            print(status_result)
            exit(1)

        if progress == "100%" or progress == 100 or status in ["completed", "success"]:
            print("Video generation completed!")
            break
    except Exception as e:
        print(f"Temporary error: {e}, retrying...")

    time.sleep(10)

# Step 3: Download the video to output directory
print(f"\nDownloading video to ./output/{video_id}.mp4...")
os.makedirs("./output", exist_ok=True)

video_response = requests.get(f"{base_url}/videos/{video_id}/content", headers=headers)

output_path = f"./output/{video_id}.mp4"
with open(output_path, "wb") as f:
    f.write(video_response.content)

if os.path.exists(output_path):
    file_size = os.path.getsize(output_path)
    print(f"Video saved to {output_path}")
    print(f"File size: {file_size} bytes")
else:
    print("Failed to download video")
    exit(1)

JavaScript Code Example

// Create a video with wan2.6 using raw HTTP requests
import fs from "fs";
import path from "path";

const apiKey = process.env.COMETAPI_KEY;
const baseUrl = "https://api.cometapi.com/v1";
const headers = { Authorization: `Bearer ${apiKey}` };

function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// Step 1: Submit the video generation request
console.log("Submitting video generation request...");
const formData = new FormData();
formData.append("model", "wan2.6");
formData.append("prompt", "Create a cinematic multi-shot chase across a moonlit desert market. Shot 1 [0-2s]: a wide establishing view of lanterns and dust in the air. Shot 2 [2-4s]: a small brass robot darts between fabric stalls. Shot 3 [4-5s]: close-up on the robot finding a glowing compass.");
formData.append("seconds", "5");
formData.append("size", "1280x720");

const submitResponse = await fetch(`${baseUrl}/videos`, {
  method: "POST",
  headers,
  body: formData,
});

const result = await submitResponse.json();
console.log("Response:", JSON.stringify(result, null, 2));

const videoId = result.id || result.task_id;
console.log("Video ID:", videoId);

// Step 2: Poll for progress until 100%
console.log("\nChecking video generation progress...");
while (true) {
  try {
    const statusResponse = await fetch(`${baseUrl}/videos/${videoId}`, { headers });
    const statusResult = await statusResponse.json();
    const data = statusResult.data || statusResult;
    const progress = data.progress || "0%";
    const status = data.status || "unknown";

    console.log(`Progress: ${progress}, Status: ${status}`);

    if (status === "FAILURE" || status === "failed" || status === "error") {
      console.log("Video generation failed!");
      console.log(JSON.stringify(statusResult, null, 2));
      process.exit(1);
    }

    if (progress === "100%" || progress === 100 || status === "completed" || status === "success") {
      console.log("Video generation completed!");
      break;
    }
  } catch (e) {
    console.log(`Temporary error: ${e.message}, retrying...`);
  }

  await sleep(10000);
}

// Step 3: Download the video to output directory
console.log(`\nDownloading video to ./output/${videoId}.mp4...`);
fs.mkdirSync("./output", { recursive: true });

const videoResponse = await fetch(`${baseUrl}/videos/${videoId}/content`, { headers });
const outputPath = path.join("./output", `${videoId}.mp4`);
fs.writeFileSync(outputPath, Buffer.from(await videoResponse.arrayBuffer()));

if (fs.existsSync(outputPath)) {
  const stats = fs.statSync(outputPath);
  console.log(`Video saved to ${outputPath}`);
  console.log(`File size: ${stats.size} bytes`);
} else {
  console.log("Failed to download video");
  process.exit(1);
}

Wan2.6 нұсқалары

Wan2.6 бірнеше снупшоттарының болуының себептеріне мыналар жатады: жаңартулардан кейінгі шығыстардың өзгеруі, бұрынғы снупшоттарды тұрақтылықты сақтау үшін қолдану, әзірлеушілерге бейімделу және көшіру үшін өту кезеңін ұсыну, сондай-ақ әртүрлі снупшоттардың жаһалдық немесе аймақтық эндпоинттерге сәйкес келуі арқылы пайдаланушы тәжірибесін оңтайландыру. Нұсқалар арасындағы егжей-тегжейлі айырмашылықтар үшін ресми құжаттамаға жүгініңіз.

Version
wan2.6