Claude Opus 5 is now live on CometAPI →
Q

Wan2.6

Per Seconde:$0.08
Uitgebracht:May 31, 2026

Wan2.6 is een model voor videogeneratie dat is ontworpen voor stabiele en efficiënte videosynthese. Het biedt betrouwbare visuele kwaliteit en genereert vloeiende bewegingen voor algemene videoproductietaken.

Nieuw
Commercieel gebruik

Technische specificaties van Wan 2.6

OnderdeelWan 2.6 Video Suite
AanbiederAlibaba / Tongyi Lab
ModelfamilieWan 2.6
UitgaveperiodeGeneratie van december 2025
InvoertypenTekst, afbeeldingen, referentievideo's, audio-invoer
UitvoertypeVideo met optioneel gesynchroniseerde audio
KernmodiTekst-naar-video (T2V), Afbeelding-naar-video (I2V), Referentie-naar-video (R2V)
Flash-variantenI2V Flash, R2V Flash
Ondersteunde resoluties720P en 1080P
Ondersteunde duur2–15 seconden (afhankelijk van de workflow)
AudiomogelijkhedenIngebouwde audiogeneratie, stemreferenties, lip-synchronisatie
Ondersteuning voor meerdere shots2–8 scènesegmenten in één workflow
Ondersteuning voor referentiesTot 5 referenties (gemengd beeld/video afhankelijk van de workflow)
API-workflowAsynchrone taakaanmaak + polling

Wat is Wan 2.6?

Wan 2.6 is het multimodale videogeneratiesysteem van Alibaba, gericht op controleerbare productie van korte formats. In plaats van uitsluitend promptgestuurd te zijn, combineert het model tekstprompts, afbeeldingsreferenties, referentievideo's, audioconditionering en het aaneenschakelen van scènes voor workflows voor makers. De belangrijkste verbetering ten opzichte van eerdere Wan-versies was de introductie van sterkere referentiegestuurde consistentie en langere verhalende generatie.

Belangrijkste functies van Wan 2.6

  • Referentie-naar-video-workflows: Gebruikers kunnen beeld- of videoreferenties aanleveren om karakteridentiteit, stijl en stemcontinuïteit over generaties heen te behouden.
  • Verhalende generatie met meerdere shots: Ondersteunt het aaneenschakelen van meerdere prompts voor scèneovergangen en verhaalvoortgang binnen één generatieworkflow.
  • Ingebouwde audiosynchronisatie: Ingebouwde ondersteuning voor gegenereerde audio, aangepaste audiouploads en workflows voor lip-synchronisatie.
  • Flexibele invoermodi: Ondersteunt uitsluitend promptgestuurde generatie, first-frame-animatie en referentiegestuurde workflows.
  • Flash-varianten voor iteratie: Snellere varianten maken snel testen mogelijk vóór de uiteindelijke hoogwaardige renderingen.
  • Langere clips: Verlengde clipduur vergeleken met eerdere generaties, ter ondersteuning van verhalende contentcreatie.

Benchmarkprestaties van Wan 2.6

Formele benchmarktransparantie voor Wan 2.6 blijft beperkt; Alibaba heeft minder gestandaardiseerde benchmarkcijfers gepubliceerd dan aanbieders van tekst-LLM's. De meeste evaluatie komt voort uit workflowtests en ecosysteemvergelijkingen in plaats van openbare ranglijsten. Communitytests benadrukken consequent:

  • Verbeterde karakterconsistentie ten opzichte van oudere Wan-versies.
  • Betere audio-videosynchronisatie.
  • Sterkere continuïteit over meerdere shots.
  • Betrouwbaardere referentieconditionering.

Omdat benchmarkpublicatie schaars is, blijft testen in productieomgevingen belangrijk vóór uitrol.

Wan 2.6 versus andere videomodellen

KenmerkWan 2.6Wan 2.7Modellen uit de Veo-familie
Native audiogeneratieSterkSterkerSterk
Multi-shot-workflowJaVerbeterdGemiddeld
Referentie-naar-videoSterke nadrukSterkere controlemogelijkhedenGemiddeld
ClipduurTot 15sVergelijkbaar / workflowafhankelijkVerschilt
Ondersteuning voor meerdere referentiesTot 5 referentiesUitgebreide workflowsGemiddeld
BewerkingsworkflowsGemiddeldBetere bewerkingsondersteuningSterk

Beperkingen van Wan 2.6

  • Korte clipduur beperkt nog steeds de productie van lange formats.
  • Scènes met veel beweging kunnen nog steeds temporele instabiliteit vertonen.
  • Referentie-intensieve workflows vergroten de complexiteit van de configuratie.
  • Openbare benchmarkrapportage blijft beperkt.
  • Asynchrone generatiepijplijnen verhogen de integratiecomplexiteit.

Representatieve gebruiksscenario's

  1. Marketingvideo's met consistente personages.
  2. Socialmediaclips met meerdere scènes.
  3. Avataranimatie voor makers.
  4. Referentiegestuurde productvideo's.
  5. AI-verhaalvertelling met gesynchroniseerde audio.
  6. Merkcontent die identiteitsbehoud vereist.

FAQ

Prijzen voor Wan2.6

Ontdek concurrerende prijzen voor Wan2.6, ontworpen om te passen bij verschillende budgetten en gebruiksbehoeften. Onze flexibele abonnementen zorgen ervoor dat u alleen betaalt voor wat u gebruikt, waardoor het gemakkelijk is om op te schalen naarmate uw vereisten groeien. Ontdek hoe Wan2.6 uw projecten kan verbeteren terwijl de kosten beheersbaar blijven.

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

Voorbeeldcode en API voor Wan2.6

Krijg toegang tot uitgebreide voorbeeldcode en API-bronnen voor Wan2.6 om uw integratieproces te stroomlijnen. Onze gedetailleerde documentatie biedt stapsgewijze begeleiding en helpt u het volledige potentieel van Wan2.6 in uw projecten te benutten.

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

Versies van Wan2.6

De reden waarom Wan2.6 meerdere snapshots heeft, kan mogelijke factoren omvatten zoals variaties in de uitvoer na updates die oudere snapshots vereisen voor consistentie, het bieden van een overgangsperiode voor ontwikkelaars om zich aan te passen en te migreren, en verschillende snapshots die overeenkomen met wereldwijde of regionale eindpunten om de gebruikerservaring te optimaliseren. Voor gedetailleerde verschillen tussen versies, raadpleeg de officiële documentatie.

Version
wan2.6