Claude Opus 5 is now live on CometAPI →
Q

Wan2.7

Par Seconde:$0.08
Publié:May 31, 2026

Wan2.7 est un modèle de génération de vidéos conçu pour une synthèse visuelle de haute qualité et une meilleure cohérence des mouvements. Il convient à la création de contenus cinématographiques et aux flux de production vidéo professionnels.

Nouveau
Usage commercial

Spécifications techniques de Wan 2.7

ÉlémentWan 2.7 (Suite vidéo)
FournisseurAlibaba Tongyi Lab
Famille de modèlesWan 2.7 Video Suite
ArchitectureMixture-of-Experts (MoE) à 27B paramètres
Types d’entréeTexte, images, vidéos, références audio
Types de sortieClips vidéo générés/modifiés avec audio facultatif
Modes pris en chargeTexte vers vidéo (T2V), Image vers vidéo (I2V), Référence vers vidéo (R2V), Montage vidéo
RésolutionSorties 720P et 1080P
Durée vidéo2–15 secondes
Prise en charge audioGénération audio native, références vocales, workflows de synchronisation labiale
Capacité de référenceRéférences multiples d’images/vidéos, cohérence d’identité
Cohérence des personnagesPrend en charge plusieurs sujets de référence selon le workflow
Version de publicationSuccesseur majeur de Wan 2.6

Qu’est-ce que Wan 2.7 ?

Wan 2.7 est la suite phare de génération vidéo multimodale d’Alibaba, conçue pour des workflows de réalisation assistée par IA contrôlables plutôt que pour une simple création d’une vidéo à partir d’une invite. La famille de modèles combine génération, édition, prolongement et cohérence pilotée par références au sein d’un système unique, permettant aux créateurs de produire de courts clips cinématiques avec une meilleure préservation du sujet et un contrôle accru des scènes.

À la différence des générateurs vidéo antérieurs qui se concentraient surtout sur la qualité des invites, Wan 2.7 met l’accent sur la contrôlabilité via l’ancrage d’images, des entrées de référence, la synchronisation audio et des workflows structurés multi‑plans.

Principales fonctionnalités de Wan 2.7

  • Pipeline de planification Thinking Mode : Le modèle planifie la composition de la scène et le mouvement avant le rendu, améliorant le respect des invites et réduisant les défaillances de cohérence.
  • Contrôle de la première et de la dernière image : Les utilisateurs peuvent définir des images d’ouverture et de fin afin que le système interpole le mouvement entre elles.
  • Cohérence d’identité pilotée par les références : Maintenez l’apparence des personnages, les vêtements, les objets et le style sur plusieurs plans.
  • Workflows multimodaux natifs : Prend en charge le texte, l’image, l’audio et les références vidéo dans un même workflow.
  • Génération audio intégrée : Musique de fond, sons d’ambiance et synchronisation de voix peuvent être générés en parallèle des visuels.
  • Prise en charge de l’édition et de l’extension : Les vidéos existantes peuvent être prolongées, transformées ou re‑stylées sans repartir de zéro.

Performances de Wan 2.7 aux benchmarks

La divulgation publique des benchmarks pour Wan 2.7 reste limitée par rapport aux LLM textuels, mais des évaluations tierces et des tests communautaires indiquent des améliorations notables en stabilité du mouvement, respect des invites et contrôlabilité par rapport à Wan 2.6.

Observations rapportées dans l’écosystème :

  • Continuité de mouvement renforcée par rapport aux versions Wan antérieures.
  • Meilleur classement dans des évaluations tierces de texte‑vers‑vidéo.
  • Amélioration de la cohérence multi‑sujets et de la préservation des références.
  • Intégration audio meilleure que celle de nombreux modèles vidéo ouverts antérieurs.

La transparence formelle des benchmarks demeure limitée ; les affirmations de performance doivent donc être interprétées avec prudence.

Wan 2.7 vs autres modèles vidéo

FonctionnalitéWan 2.7Veo 3.1Seedance 2.0
Workflows audio natifsSolideSolideModéré
Cohérence pilotée par référencesSolideModéréModéré
Contrôle première + dernière imageOuiPartielLimité
Workflows d’édition vidéoOuiOuiLimité
Résolution maximale courante1080PSortie cinématographique haut de gamme1080P
Prise en charge multi‑référenceAccent marquéModéréModéré

Limitations de Wan 2.7

  • Durée de clip courte par rapport aux outils de production long format.
  • La sortie maximale 1080P limite les workflows en ultra haute résolution.
  • Les scènes à mouvements rapides peuvent encore produire des artefacts d’instabilité.
  • Les workflows multi‑référence augmentent la complexité et les exigences en ingénierie des invites.
  • La communication publique des benchmarks reste relativement clairsemée.

Cas d’usage représentatifs

  1. Courts métrages et storyboards avec cohérence des personnages.
  2. Clips marketing avec synchronisation audio.
  3. Génération de vidéos pour les réseaux sociaux.
  4. Visualisation de produits et bandes‑annonces conceptuelles.
  5. Workflows de prolongation vidéo et d’interpolation de scènes.
  6. Animation d’avatars et de personnages basée sur des références.

Comment utiliser l’API vidéo WAN 2.7 dans CometAPI

Étape 1 : Essayez l’API vidéo WAN 2.7 dans le Kie Al Playground

Testez d’abord la fonctionnalité WAN 2.7 à l’aide de l’API vidéo WAN 2.7 dans le CometAPI Playground. Téléversez des images, ajoutez des invites ou utilisez des références pour prévisualiser la vidéo WAN générée avant d’intégrer la vidéo IA WAN 2.7 à votre workflow de production.

Étape 2 : Obtenez la clé API WAN 2.7 et consultez la documentation de l’API

Obtenez la clé API WAN 2.7 depuis la console CometAPI et consultez la documentation. Comprenez les endpoints, l’authentification et les paramètres de l’API vidéo WAN 2.7 pour prendre en charge les workflows texte‑vers‑vidéo, image‑vers‑vidéo et vidéo WAN.

Étape 3 : Générez des vidéos IA WAN 2.7 et intégrez‑les à votre workflow

Utilisez l’API vidéo WAN 2.7 pour générer des vidéos IA WAN 2.7 avec des invites, des images ou des références. Intégrez les sorties WAN 2.7 aux workflows produit, aux pipelines de contenu ou aux outils vidéo IA afin de permettre une création vidéo à l’échelle.

FAQ

Tarification pour Wan2.7

Découvrez des tarifs compétitifs pour Wan2.7, conçus pour s'adapter à différents budgets et besoins d'utilisation. Nos formules flexibles garantissent que vous ne payez que ce que vous utilisez, ce qui facilite l'adaptation à mesure que vos besoins évoluent. Découvrez comment Wan2.7 peut améliorer vos projets tout en maîtrisant les coûts.

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

Exemple de code et API pour Wan2.7

Accédez à des exemples de code complets et aux ressources API pour Wan2.7 afin de simplifier votre processus d'intégration. Notre documentation détaillée fournit des instructions étape par étape pour vous aider à exploiter tout le potentiel de Wan2.7 dans vos projets.

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

Versions de Wan2.7

La raison pour laquelle Wan2.7 dispose de plusieurs instantanés peut inclure des facteurs potentiels tels que des variations de sortie après des mises à jour nécessitant des instantanés plus anciens pour la cohérence, offrant aux développeurs une période de transition pour l'adaptation et la migration, et différents instantanés correspondant à des points de terminaison globaux ou régionaux pour optimiser l'expérience utilisateur. Pour les différences détaillées entre les versions, veuillez consulter la documentation officielle.

Version
wan2.7