Claude Opus 5 is now live on CometAPI →
Q

Wan2.6

Pro Sekunde:$0.08
Veröffentlicht:May 31, 2026

Wan2.6 ist ein Modell zur Videogenerierung, das für stabile und effiziente Videosynthese entwickelt wurde. Es bietet zuverlässige visuelle Qualität und die Generierung flüssiger Bewegungen für allgemeine Aufgaben der Videoerstellung.

Neu
Kommerzielle Nutzung

Technische Spezifikationen von Wan 2.6

ElementWan 2.6 Video Suite
AnbieterAlibaba / Tongyi Lab
ModellfamilieWan 2.6
VeröffentlichungszeitraumGeneration Dezember 2025
EingabetypenText, Bilder, Referenzvideos, Audioeingaben
AusgabetypVideo mit optional synchronisiertem Audio
KernmodiText-zu-Video (T2V), Bild-zu-Video (I2V), Referenz-zu-Video (R2V)
Flash-VariantenI2V Flash, R2V Flash
Auflösungsunterstützung720P und 1080P
Unterstützte Dauer2–15 Sekunden (workflowabhängig)
AudiofunktionenNative Audiogenerierung, Stimmreferenzen, Lippensynchronisation
Multi-Shot-Unterstützung2–8 Szenensegmente in einem einzelnen Workflow
ReferenzunterstützungBis zu 5 Referenzen (gemischte Bild/Video je nach Workflow)
API-WorkflowAsynchrone Aufgabenerstellung + Polling

Was ist Wan 2.6?

Wan 2.6 ist Alibabas multimodales Videogenerierungssystem mit Fokus auf kontrollierbare Kurzformatproduktion. Anstatt rein promptgesteuert zu sein, kombiniert das Modell Textprompts, Bildreferenzen, Referenzvideos, Audio-Conditioning und Szenenverkettung für Creator-Workflows. Das große Upgrade gegenüber früheren Wan-Versionen war die Einführung einer stärkeren referenzgetriebenen Konsistenz und längerer narrativer Generierung.

Hauptfunktionen von Wan 2.6

  • Referenz-zu-Video-Workflows: Nutzer können Bild- oder Videoreferenzen einspeisen, um Charakteridentität, Stil und Stimmkontinuität über Generationen hinweg beizubehalten.
  • Multi-Shot-Erzählgenerierung: Unterstützt das Verketten mehrerer Prompts für Szenenübergänge und Story-Fortschritt in einem einzigen Generierungs-Workflow.
  • Native Audiosynchronisation: Integrierte Unterstützung für generiertes Audio, benutzerdefinierte Audio-Uploads und Lippensynchronisations-Workflows.
  • Flexible Eingabemodi: Unterstützt rein promptbasierte Generierung, First-Frame-Animation und referenzgetriebene Workflows.
  • Flash-Varianten für Iteration: Schnellere Versionen ermöglichen rasches Testen vor finalen High-Quality-Renderings.
  • Längere Clips: Erweiterte Clip-Dauer im Vergleich zu früheren Generationen, unterstützt die Erstellung narrativer Inhalte.

Benchmark-Leistung von Wan 2.6

Die formale Benchmark-Transparenz für Wan 2.6 bleibt begrenzt; Alibaba hat weniger standardisierte Benchmark-Zahlen veröffentlicht als Text-LLM-Anbieter. Die meisten Bewertungen stammen aus Workflow-Tests und Ökosystemvergleichen statt aus öffentlichen Ranglisten. Community-Tests heben konsistent hervor:

  • Verbesserte Charakterkonsistenz gegenüber älteren Wan-Versionen.
  • Bessere Audio-Video-Synchronisation.
  • Stärkere Multi-Shot-Kontinuität.
  • Zuverlässigeres Referenz-Conditioning.

Da die Veröffentlichung von Benchmarks spärlich ist, bleibt Produktionstesting vor dem Einsatz wichtig.

Wan 2.6 vs. andere Videomodelle

FunktionWan 2.6Wan 2.7Modelle der Veo-Familie
Native AudiogenerierungStarkStärkerStark
Multi-Shot-WorkflowJaVerbessertMittel
Referenz-zu-VideoStarker SchwerpunktStärkere SteuerungsfunktionenMittel
Clip-DauerBis zu 15sÄhnlich / workflowabhängigVariiert
Unterstützung für mehrere ReferenzenBis zu 5 ReferenzenErweiterte WorkflowsMittel
Bearbeitungs-WorkflowsMittelBessere BearbeitungsunterstützungStark

Einschränkungen von Wan 2.6

  • Kurze Clip-Dauer begrenzt weiterhin die Produktion von Langformen.
  • Hochdynamische Szenen können weiterhin temporale Instabilität zeigen.
  • Referenzlastige Workflows erhöhen die Einrichtungs­komplexität.
  • Öffentliche Benchmark-Berichterstattung bleibt begrenzt.
  • Asynchrone Generierungspipelines erhöhen die Integrationskomplexität.

Repräsentative Anwendungsfälle

  1. Charakterkonsistente Marketingvideos.
  2. Mehrszenige Social-Media-Clips.
  3. Creator-Avatar-Animation.
  4. Referenzgetriebene Produktvideos.
  5. KI-Storytelling mit synchronisiertem Audio.
  6. Markeninhalte, die Identitätserhaltung erfordern.

FAQ

Preise für Wan2.6

Entdecken Sie wettbewerbsfähige Preise für Wan2.6, die für verschiedene Budgets und Nutzungsanforderungen konzipiert sind. Unsere flexiblen Tarife stellen sicher, dass Sie nur für das bezahlen, was Sie nutzen, und erleichtern die Skalierung entsprechend Ihren wachsenden Anforderungen. Erfahren Sie, wie Wan2.6 Ihre Projekte verbessern kann, während die Kosten überschaubar bleiben.

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).

Beispielcode und API für Wan2.6

Greifen Sie auf umfassende Beispielcodes und API-Ressourcen für Wan2.6 zu, um Ihren Integrationsprozess zu optimieren. Unsere detaillierte Dokumentation bietet schrittweise Anleitungen und hilft Ihnen dabei, das volle Potenzial von Wan2.6 in Ihren Projekten zu nutzen.

# 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);
}

Versionen von Wan2.6

Der Grund, warum Wan2.6 mehrere Snapshots hat, kann potenzielle Faktoren wie Änderungen der Ausgabe nach Updates umfassen, die ältere Snapshots für Konsistenz erfordern, Entwicklern eine Übergangszeit für Anpassung und Migration bieten und verschiedene Snapshots, die globalen oder regionalen Endpunkten entsprechen, um das Benutzererlebnis zu optimieren. Für detaillierte Unterschiede zwischen den Versionen lesen Sie bitte die offizielle Dokumentation.

Version
wan2.6