Claude Opus 5 is now live on CometAPI →
Q

Wan2.6

Per sekund:$0.08
Utgitt:May 31, 2026

Wan2.6 er en videogenereringsmodell utviklet for stabil og effektiv generering av video. Den tilbyr pålitelig visuell kvalitet og jevn bevegelsesgenerering for generelle videoproduksjonsoppgaver.

Ny
Kommersiell bruk

Tekniske spesifikasjoner for Wan 2.6

ElementWan 2.6 Video Suite
LeverandørAlibaba / Tongyi Lab
ModellfamilieWan 2.6
Lanseringstidspunktdesember 2025-generasjon
InndatatyperTekst, bilder, referansevideoer, lydinndata
UtdatatypeVideo med valgfritt synkronisert lyd
KjernemoduserTekst-til-video (T2V), bilde-til-video (I2V), referanse-til-video (R2V)
Flash-varianterI2V Flash, R2V Flash
Støttet oppløsning720P og 1080P
Støttet varighet2–15 sekunder (avhengig av arbeidsflyt)
LydmuligheterEgen lydgenerering, stemmereferanser, leppesynk
Støtte for flere opptak2–8 scenesegmenter i en enkelt arbeidsflyt
ReferansestøtteOpptil 5 referanser (blandet bilde/video avhengig av arbeidsflyt)
API-arbeidsflytAsynkron oppgaveopprettelse + polling

Hva er Wan 2.6?

Wan 2.6 er Alibabas multimodale videogenereringssystem med fokus på kontrollerbar kortformproduksjon. I stedet for å være rent promptdrevet kombinerer modellen tekstprompter, bildereferanser, referansevideoer, lydkondisjonering og scenekjeding for skapernes arbeidsflyter. Den største oppgraderingen sammenlignet med tidligere Wan-utgivelser var innføringen av sterkere referansedrevet konsistens og lengre narrativ generering.

Hovedfunksjoner i Wan 2.6

  • Referanse-til-video-arbeidsflyter: Brukere kan legge inn bilde- eller videoreferanser for å opprettholde karakteridentitet, stil og stemmekontinuitet på tvers av genereringer.
  • Multi-shot narrativ generering: Støtter kjeding av flere prompter for sceneskift og historiefremdrift i én enkelt genereringsarbeidsflyt.
  • Innebygd lydsynkronisering: Innebygd støtte for generert lyd, opplasting av egendefinert lyd og arbeidsflyter for leppesynkronisering.
  • Fleksible inndatamoduser: Støtter kun-prompt-generering, animasjon fra første ramme og referansedrevne arbeidsflyter.
  • Flash-varianter for iterasjon: Raskere versjoner muliggjør hurtig testing før endelige renderinger i høy kvalitet.
  • Lengre klipp: Utvidet klipplengde sammenlignet med tidligere generasjoner, som støtter skapelse av narrativt innhold.

Benchmark-ytelse for Wan 2.6

Formell benchmark-åpenhet for Wan 2.6 er fortsatt begrenset; Alibaba har publisert færre standardiserte benchmark-tall enn leverandører av tekstbaserte LLM-er. De fleste evalueringer stammer fra testing av arbeidsflyter og økosystemsammenligninger snarere enn offentlige topplister. Testing i fellesskapet fremhever konsekvent:

  • Bedre karakterkonsistens sammenlignet med eldre Wan-utgivelser.
  • Bedre lyd- og videosynkronisering.
  • Sterkere kontinuitet i multi-shot.
  • Mer pålitelig referansekondisjonering.

Fordi publisering av benchmarks er sparsom, er testing i produksjonsmiljøer fortsatt viktig før utrulling.

Wan 2.6 vs Other Video Models

FunksjonWan 2.6Wan 2.7Modeller i Veo-familien
Innebygd lydgenereringSterkSterkereSterk
Multi-shot-arbeidsflytJaForbedretModerat
Referanse-til-videoSterkt fokusSterkere kontrollmuligheterModerat
KlippvarighetOpptil 15sLik / avhengig av arbeidsflytVarierer
Støtte for flere referanserOpptil 5 referanserUtvidede arbeidsflyterModerat
RedigeringsarbeidsflyterModeratBedre redigeringsstøtteSterk

Begrensninger i Wan 2.6

  • Kort klipplengde begrenser fortsatt produksjon i langformat.
  • Scener med mye bevegelse kan fortsatt vise temporal ustabilitet.
  • Referansetunge arbeidsflyter øker oppsettskompleksiteten.
  • Offentlig benchmark-rapportering forblir begrenset.
  • Asynkrone genereringspipeliner øker integrasjonskompleksiteten.

Representative bruksområder

  1. Markedsvideoer med konsistent karakter.
  2. Klipp med flere scener for sosiale medier.
  3. Animasjon av skaperavatar.
  4. Referansedrevne produktvideoer.
  5. AI-historiefortelling med synkronisert lyd.
  6. Merkevareinnhold som krever bevaring av identitet.

FAQ

Priser for Wan2.6

Utforsk konkurransedyktige priser for Wan2.6, designet for å passe ulike budsjetter og bruksbehov. Våre fleksible planer sikrer at du bare betaler for det du bruker, noe som gjør det enkelt å skalere etter hvert som kravene dine vokser. Oppdag hvordan Wan2.6 kan forbedre prosjektene dine samtidig som kostnadene holdes håndterbare.

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

Eksempelkode og API for Wan2.6

Få tilgang til omfattende eksempelkode og API-ressurser for Wan2.6 for å effektivisere integreringsprosessen din. Vår detaljerte dokumentasjon gir trinn-for-trinn-veiledning som hjelper deg med å utnytte det fulle potensialet til Wan2.6 i prosjektene dine.

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

Versjoner av Wan2.6

Grunnen til at Wan2.6 har flere øyeblikksbilder kan inkludere potensielle faktorer som variasjoner i utdata etter oppdateringer som krever eldre øyeblikksbilder for konsistens, å gi utviklere en overgangsperiode for tilpasning og migrering, og ulike øyeblikksbilder som tilsvarer globale eller regionale endepunkter for å optimalisere brukeropplevelsen. For detaljerte forskjeller mellom versjoner, vennligst se den offisielle dokumentasjonen.

Version
wan2.6