Claude Opus 5 is now live on CometAPI →
Q

Wan2.7

Per Sekund:$0.08
Udgivet:May 31, 2026

Wan2.7 er en model til videogenerering, designet til visuel syntese i høj kvalitet og forbedret bevægelseskonsistens. Den er velegnet til filmisk indholdsproduktion og professionelle arbejdsgange i videoproduktion.

Ny
Kommersiel brug

Tekniske specifikationer for Wan 2.7

PunktWan 2.7 (Video Suite)
UdbyderAlibaba Tongyi Lab
ModelfamilieWan 2.7 Video Suite
ArkitekturMixture-of-Experts (MoE) med 27B parametre
InputtyperTekst, billeder, videoer, lydreferencer
OutputtyperGenererede/redigerede videoklip med valgfri lyd
Understøttede tilstandeTekst-til-video (T2V), Billede-til-video (I2V), Reference-til-video (R2V), Videoredigering
Opløsning720P og 1080P output
Videovarighed2–15 sekunder
LydunderstøttelseIndbygget lydgenerering, stemmereferencer, læbesynkroniserings-arbejdsgange
ReferencemulighederFlere referencebilleder/-videoer, identitetskonsistens
KarakterkonsistensUnderstøtter op til flere referenceemner afhængigt af arbejdsgang
VersionsgenerationStor efterfølger til Wan 2.6

Hvad er Wan 2.7?

Wan 2.7 er Alibaba’s flagskibs multimodale videosuite til generering, bygget til kontrollerbare AI-filmproduktionsarbejdsgange frem for simpel prompt-til-video-oprettelse. Modelfamilien kombinerer generering, redigering, fortsættelse og reference-drevet konsistens i ét system, hvilket gør det muligt for skabere at bygge korte filmiske klip med stærkere motivbevarelse og scenestyring.

I modsætning til tidligere videogeneratorer, der primært fokuserede på promptkvalitet, lægger Wan 2.7 vægt på styrbarhed via frame-ankring, referenceinput, lydsynkronisering og strukturerede multi-shot-arbejdsgange.

Hovedfunktioner i Wan 2.7

  • Thinking Mode-planlægningspipeline: Modellen planlægger scenekomposition og bevægelse før rendering, hvilket forbedrer prompt-efterlevelse og reducerer sammenhængsfejl.
  • Første- og sidste-frame-kontrol: Brugere kan definere åbnings- og slutframes, så systemet interpolerer bevægelse mellem dem.
  • Reference-drevet identitetskonsistens: Bevar karakterudseende, påklædning, objekter og stil på tværs af flere shots.
  • Indbyggede multimodale arbejdsgange: Understøtter tekst-, billede-, lyd- og videoreferencer i samme arbejdsgang.
  • Integreret lydgenerering: Baggrundsmusik, miljølyde og stemmesynkronisering kan genereres sammen med visuelle elementer.
  • Understøttelse af redigering og fortsættelse: Eksisterende videoer kan udvides, transformeres eller restyles uden at starte forfra.

Benchmark-ydelse for Wan 2.7

Offentlig benchmark-dokumentation for Wan 2.7 er mere begrænset end for tekst-LLM’er, men tredjepartsevalueringer og community-tests indikerer markante forbedringer i bevægelsesstabilitet, prompt-efterlevelse og kontrollerbarhed i forhold til Wan 2.6.

Rapporterede observationer i økosystemet omfatter:

  • Stærkere bevægelseskontinuitet sammenlignet med tidligere Wan-udgivelser.
  • Højere placering på ranglister i tredjeparts tekst-til-video-evalueringer.
  • Forbedret konsistens for flere motiver og bedre referencebevarelse.
  • Bedre lydintegration end mange tidligere åbne videomodeller.

Formel gennemsigtighed i benchmarks er stadig begrænset, så påstande om ydelse bør tolkes med forsigtighed.

Wan 2.7 vs andre videomodeller

FunktionWan 2.7Veo 3.1Seedance 2.0
Indbyggede lydarbejdsgangeStærkStærkModerat
Reference-drevet konsistensStærkModeratModerat
Første + sidste frame-kontrolJaDelvistBegrænset
VideoredigeringsarbejdsgangeJaJaBegrænset
Maks. almindelig opløsning1080PHøjere high-end filmisk output1080P
Understøttelse af flere referencerStærkt fokusModeratModerat

Begrænsninger ved Wan 2.7

  • Kort kliplængde sammenlignet med værktøjer til langform.
  • 1080P som maksimal output begrænser ultra-højopløsnings-arbejdsgange.
  • Scener med hurtige bevægelser kan stadig give ustabilitetsartefakter.
  • Arbejdsgange med flere referencer øger kompleksitet og krav til prompt-engineering.
  • Offentlig benchmarkrapportering er fortsat relativt sparsom.

Repræsentative anvendelsestilfælde

  1. Karakterkonsistente kortfilm og storyboards.
  2. Marketingklip med lydsynkronisering.
  3. Generering af videoer til sociale medier.
  4. Produktvisualisering og koncepttrailere.
  5. Video-fortsættelse og scenemæssige interpolations-arbejdsgange.
  6. Referencebaseret avatar- og karakteranimation.

Sådan bruger du WAN 2.7 Video API i CometAPI

Trin 1: Afprøv WAN 2.7 Video API i Kie Al Playground

Test først funktionaliteten i WAN 2.7 ved at bruge WAN 2.7 Video API i CometAPI Playground. Upload billeder, tilføj prompts, eller brug referencer for at forhåndsvise den genererede WAN-video, før du integrerer WAN 2.7 AI-videoen i din produktionsarbejdsgang.

Trin 2: Hent WAN 2.7 API-nøglen og gennemgå API-dokumentationen

Hent WAN 2.7 API-nøglen fra CometAPI-konsollen og gennemgå dokumentationen. Forstå WAN 2.7 Video API-endpoints, autentificering og parametre for at understøtte tekst-til-video, billede-til-video og WAN-video-arbejdsgange.

Trin 3: Generér WAN 2.7 AI-videoer og integrér dem i din arbejdsgang

Brug WAN 2.7 Video API til at generere WAN 2.7 AI-videoer med prompts, billeder eller referencer. Integrér WAN 2.7-output i produktarbejdsgange, indholdspipelines eller AI-videoværktøjer for at muliggøre skalerbar videogenerering.

FAQ

Priser for Wan2.7

Udforsk konkurrencedygtige priser for Wan2.7, 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.7 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.7

Få adgang til omfattende eksempelkode og API-ressourcer for Wan2.7 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.7 i dine projekter.

# Create a video with wan2.7
# 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.7" \
  -F "prompt=Create a cinematic detective sequence with clear timed shots. Shot 1 [0-2s]: a rainy city street at night, neon signs reflected in puddles. Shot 2 [2-4s]: a detective in a dark coat enters an old building. Shot 3 [4-5s]: close-up on a clue lit by a narrow flashlight beam." \
  -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.7
# 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.7" \
  -F "prompt=Create a cinematic detective sequence with clear timed shots. Shot 1 [0-2s]: a rainy city street at night, neon signs reflected in puddles. Shot 2 [2-4s]: a detective in a dark coat enters an old building. Shot 3 [4-5s]: close-up on a clue lit by a narrow flashlight beam." \
  -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.7 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.7"),
        "prompt": (None, "Create a cinematic detective sequence with clear timed shots. Shot 1 [0-2s]: a rainy city street at night, neon signs reflected in puddles. Shot 2 [2-4s]: a detective in a dark coat enters an old building. Shot 3 [4-5s]: close-up on a clue lit by a narrow flashlight beam."),
        "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.7 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.7");
formData.append("prompt", "Create a cinematic detective sequence with clear timed shots. Shot 1 [0-2s]: a rainy city street at night, neon signs reflected in puddles. Shot 2 [2-4s]: a detective in a dark coat enters an old building. Shot 3 [4-5s]: close-up on a clue lit by a narrow flashlight beam.");
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.7

Årsagen til, at Wan2.7 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.7