Claude Opus 5 is now live on CometAPI →
Q

Wan2.6

Per Sekund:$0.08
Udgivet:May 31, 2026

Wan2.6 er en videogenereringsmodel, der er designet til stabil og effektiv videosyntese. Den leverer pålidelig billedkvalitet og jævn bevægelsesgenerering til generelle videoproduktionsopgaver.

Ny
Kommersiel brug

Tekniske specifikationer for Wan 2.6

PunktWan 2.6 Video Suite
UdbyderAlibaba / Tongyi Lab
ModelfamilieWan 2.6
Udgivelsesperiodedecember 2025‑generation
InputtyperTekst, billeder, referencevideoer, lydinput
OutputtypeVideo med valgfri synkroniseret lyd
KernetilstandeTekst‑til‑video (T2V), billede‑til‑video (I2V), reference‑til‑video (R2V)
Flash‑varianterI2V Flash, R2V Flash
Understøttet opløsning720P og 1080P
Understøttet varighed2–15 sekunder (afhængigt af arbejdsgang)
LydfunktionerIndbygget lydgenerering, stemmereferencer, læbesynkronisering
Understøttelse af multi‑shot2–8 scenesegmenter i en enkelt arbejdsgang
Understøttelse af referencerOp til 5 referencer (blandede billeder/video afhængigt af arbejdsgang)
API‑arbejdsgangAsynkron opgaveoprettelse + polling

Hvad er Wan 2.6?

Wan 2.6 er Alibabas multimodale videogenereringssystem med fokus på kontrollerbar kortformat‑produktion. I stedet for udelukkende at være prompt‑drevet kombinerer modellen tekstprompter, billedreferencer, referencevideoer, lydkonditionering og sammenkædning af scener til workflows for indholdsskabere. Den væsentligste opgradering i forhold til tidligere Wan‑udgaver var introduktionen af stærkere reference‑drevet konsistens og længere narrativ generering.

Hovedfunktioner i Wan 2.6

  • Reference‑til‑video‑arbejdsgange: Brugere kan tilføje billed‑ eller videoreferencer for at bevare karakteridentitet, stil og stemmekontinuitet på tværs af genereringer.
  • Multi‑shot narrativ generering: Understøtter sammenkædning af flere prompter for sceneskift og historiens fremdrift i én genererings‑arbejdsgang.
  • Indbygget lydsynkronisering: Indbygget understøttelse af genereret lyd, brugerdefinerede lyduploads og arbejdsgange til læbesynkronisering.
  • Fleksible inputtilstande: Understøtter udelukkende prompt‑baseret generering, førsteramme‑animation og reference‑drevne arbejdsgange.
  • Flash‑varianter til iteration: Hurtigere versioner muliggør hurtig afprøvning før endelige renderinger i høj kvalitet.
  • Længere klip: Udvidet klipvarighed sammenlignet med tidligere generationer, som understøtter skabelse af narrativt indhold.

Benchmark‑ydelse for Wan 2.6

Formel benchmark‑gennemsigtighed for Wan 2.6 er fortsat begrænset; Alibaba har offentliggjort færre standardiserede benchmarktal end tekst‑LLM‑udbydere. De fleste evalueringer stammer fra arbejdsgangstest og økosystem‑sammenligninger snarere end offentlige ranglister. Community‑tests fremhæver konsekvent:

  • Forbedret karakterkonsistens i forhold til ældre Wan‑udgaver.
  • Bedre lyd‑video‑synkronisering.
  • Stærkere kontinuitet i multi‑shot.
  • Mere pålidelig referencekonditionering.

Da benchmark‑offentliggørelse er sparsom, forbliver produktionstest vigtig inden implementering.

Wan 2.6 vs andre videomodeller

FunktionWan 2.6Wan 2.7Veo‑familien
Indbygget lydgenereringStærkStærkereStærk
Multi‑shot‑arbejdsgangJaForbedretMiddel
Reference‑til‑videoStærkt fokusStærkere styringMiddel
KlipvarighedOp til 15sLignende / afhængig af arbejdsgangVarierer
Understøttelse af flere referencerOp til 5 referencerUdvidede arbejdsgangeMiddel
RedigeringsarbejdsgangeMiddelBedre redigeringsunderstøttelseStærk

Begrænsninger ved Wan 2.6

  • Kort klipvarighed begrænser stadig produktion i langt format.
  • Scener med meget bevægelse kan stadig vise tidslig ustabilitet.
  • Reference‑tunge arbejdsgange øger opsætningskompleksiteten.
  • Offentlig benchmark‑rapportering er fortsat begrænset.
  • Asynkrone genererings‑pipelines øger integrationskompleksiteten.

Repræsentative anvendelsesområder

  1. Karakter‑konsistente marketingvideoer.
  2. Multi‑scene klip til sociale medier.
  3. Skaber‑avatar‑animation.
  4. Reference‑drevne produktvideoer.
  5. AI‑historiefortælling med synkroniseret lyd.
  6. Brandindhold, der kræver bevarelse af identitet.

FAQ

Priser for Wan2.6

Udforsk konkurrencedygtige priser for Wan2.6, designet til at passe til forskellige budgetter og brugsbehov. Vores fleksible planer sikrer, at du kun betaler for det, du bruger, hvilket gør det nemt at skalere, efterhånden som dine krav vokser. Opdag hvordan Wan2.6 kan forbedre dine projekter, mens omkostningerne 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 til Wan2.6

Få adgang til omfattende eksempelkode og API-ressourcer for Wan2.6 for at strømline din integrationsproces. Vores detaljerede dokumentation giver trin-for-trin vejledning, der hjælper dig med at udnytte det fulde potentiale af Wan2.6 i dine projekter.

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

Versioner af Wan2.6

Årsagen til, at Wan2.6 har flere øjebliksbilleder kan omfatte potentielle faktorer såsom variationer i output efter opdateringer, der kræver ældre øjebliksbilleder for konsistens, at give udviklere en overgangsperiode til tilpasning og migration, og at forskellige øjebliksbilleder svarer til globale eller regionale slutpunkter for at optimere brugeroplevelsen. For detaljerede forskelle mellem versioner, henvises der til den officielle dokumentation.

Version
wan2.6