Claude Opus 5 is now live on CometAPI →
Q

Wan2.6

في الثانية:$0.08
تاريخ الإصدار:May 31, 2026

Wan2.6 هو نموذج لتوليد الفيديو صُمِّم لإنتاج فيديو مستقر وفعّال. يوفّر جودة بصرية موثوقة وتوليد حركة سلسة لمهام إنشاء الفيديو العامة.

جديد
الاستخدام التجاري

المواصفات التقنية لـ Wan 2.6

البندWan 2.6 Video Suite
المزوّدAlibaba / Tongyi Lab
عائلة النموذجWan 2.6
الإطار الزمني للإصدارجيل ديسمبر 2025
أنواع الإدخالنصوص، صور، مقاطع فيديو مرجعية، مدخلات صوتية
نوع الإخراجفيديو مع صوت متزامن اختياري
الأوضاع الأساسيةتحويل النص إلى فيديو (T2V)، تحويل الصورة إلى فيديو (I2V)، تحويل المرجع إلى فيديو (R2V)
متغيرات FlashI2V Flash، R2V Flash
دعم الدقة720P و 1080P
دعم المدة2–15 ثانية (حسب سير العمل)
قدرات الصوتتوليد صوت أصلي، مراجع صوتية، مزامنة الشفاه
دعم اللقطات المتعددة2–8 مقاطع مشهد ضمن سير عمل واحد
دعم المراجعحتى 5 مراجع (صور/فيديو مختلطة وفقاً لسير العمل)
سير عمل APIإنشاء مهام غير متزامن + استطلاع دوري

ما هو Wan 2.6؟

Wan 2.6 هو نظام توليد فيديو متعدد الوسائط من Alibaba يركّز على إنتاج قصير المدة قابل للتحكم. بدلاً من الاعتماد على الأوامر النصية فقط، يجمع النموذج بين الأوامر النصية، والمراجع الصورية، ومقاطع الفيديو المرجعية، والتكييف الصوتي، وربط المشاهد ضمن سير عمل المبدعين. وكانت أبرز ترقية مقارنة بإصدارات Wan السابقة هي إدخال اتساق أقوى مدفوعاً بالمراجع وتوليد سرد أطول.

الميزات الرئيسية في Wan 2.6

  • سير عمل من المرجع إلى الفيديو: يمكن للمستخدمين تزويد النظام بمراجع صورية أو فيديو للحفاظ على هوية الشخصية والأسلوب واستمرارية الصوت عبر عمليات التوليد.
  • توليد سرد متعدد اللقطات: يدعم ربط عدة أوامر معاً لانتقالات المشاهد وتقدم القصة ضمن سير عمل واحد.
  • مزامنة صوت أصلية: دعم مدمج للصوت المُولَّد، ورفع الصوت المخصّص، وسير عمل مزامنة الشفاه.
  • أوضاع إدخال مرنة: يدعم التوليد المعتمد على الأوامر فقط، وتحريك الإطار الأول، وسير العمل المدفوع بالمراجع.
  • نسخ Flash من أجل التكرار: إصدارات أسرع تمكّن من الاختبار السريع قبل عمليات التصيير النهائية عالية الجودة.
  • مقاطع أطول: مدة مقاطع ممتدة مقارنة بالأجيال السابقة، ما يدعم إنشاء المحتوى السردي.

أداء المعايير القياسية لـ Wan 2.6

لا تزال شفافية المعايير الرسمية لـ Wan 2.6 محدودة؛ فقد نشرت Alibaba أرقاماً معيارية موحّدة أقل مقارنة بمزوّدي نماذج اللغة النصّية. تأتي معظم عمليات التقييم من اختبارات سير العمل ومقارنات المنظومة البيئية وليس من قوائم المتصدرين العامة. وتبرز اختبارات المجتمع باستمرار:

  • تحسّن اتساق الشخصيات مقارنة بإصدارات Wan الأقدم.
  • مزامنة أفضل بين الصوت والفيديو.
  • استمرارية أقوى عبر اللقطات المتعددة.
  • تكييف مرجعي أكثر موثوقية.

ونظراً لقلّة نشر المعايير، يظل الاختبار الإنتاجي مهماً قبل النشر.

Wan 2.6 مقارنة بنماذج الفيديو الأخرى

الميزةWan 2.6Wan 2.7نماذج Veo-family
توليد صوت أصليقويأقوىقوي
سير عمل متعدد اللقطاتنعممحسَّنمتوسط
من المرجع إلى الفيديوتركيز قويضوابط أقوىمتوسط
مدة المقطعحتى 15sمشابهة / تعتمد على سير العملتتفاوت
دعم مراجع متعددةحتى 5 مراجعسير عمل موسّعةمتوسط
سير عمل التحريرمتوسطدعم تحرير أفضلقوي

قيود Wan 2.6

  • قِصَر مدة المقاطع لا يزال يقيّد إنتاج المحتوى الطويل.
  • قد تُظهر المشاهد عالية الحركة عدم استقرار زمني.
  • سير العمل المعتمد بكثافة على المراجع يزيد من تعقيد الإعداد.
  • تظل تقارير المعايير العامة محدودة.
  • خطوط توليد غير متزامنة تزيد من تعقيد التكامل.

حالات استخدام نموذجية

  1. فيديوهات تسويقية متسقة الشخصية.
  2. مقاطع شبكات اجتماعية متعددة المشاهد.
  3. تحريك الصور الرمزية للمبدّعين.
  4. فيديوهات منتجات قائمة على المراجع.
  5. سرد بالذكاء الاصطناعي مع صوت متزامن.
  6. محتوى علامات تجارية يتطلب الحفاظ على الهوية.

الأسئلة الشائعة

التسعير لـ Wan2.6

استكشف الأسعار التنافسية لـ Wan2.6، المصمم ليناسب الميزانيات المختلفة واحتياجات الاستخدام المتنوعة. تضمن خططنا المرنة أن تدفع فقط مقابل ما تستخدمه، مما يجعل من السهل التوسع مع نمو متطلباتك. اكتشف كيف يمكن لـ 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 لـ Wan2.6 لتبسيط عملية التكامل الخاصة بك. توفر وثائقنا التفصيلية إرشادات خطوة بخطوة، مما يساعدك على الاستفادة من الإمكانات الكاملة لـ Wan2.6 في مشاريعك.

# 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