Claude Opus 5 is now live on CometAPI →
Q

Wan2.7

Por Segundo:$0.08
Publicado:May 31, 2026

Wan2.7 es un modelo de generación de video diseñado para la síntesis visual de alta calidad y una consistencia del movimiento mejorada. Es adecuado para la creación de contenido cinematográfico y flujos de trabajo profesionales de producción de video.

Nuevo
Uso comercial

Especificaciones técnicas de Wan 2.7

ElementoWan 2.7 (Video Suite)
ProveedorAlibaba Tongyi Lab
Familia de modelosWan 2.7 Video Suite
ArquitecturaMezcla de expertos (MoE) con 27B parámetros
Tipos de entradaTexto, imágenes, videos, referencias de audio
Tipos de salidaClips de video generados/editados con audio opcional
Modos compatiblesTexto a video (T2V), Imagen a video (I2V), Referencia a video (R2V), Edición de video
ResoluciónSalidas 720P y 1080P
Duración del video2–15 segundos
Compatibilidad de audioGeneración de audio nativa, referencias de voz, flujos de trabajo de sincronización labial
Capacidad de referenciaImágenes/videos de múltiples referencias, consistencia de identidad
Consistencia de personajesAdmite múltiples sujetos de referencia según el flujo de trabajo
Generación de lanzamientoSucesor mayor de Wan 2.6

¿Qué es Wan 2.7?

Wan 2.7 es la suite insignia de Alibaba para generación de video multimodal, diseñada para flujos de trabajo de realización cinematográfica con IA controlable en lugar de una simple creación de video a partir de prompts. La familia de modelos combina generación, edición, continuación y consistencia basada en referencias en un solo sistema, lo que permite a los creadores producir clips cinematográficos cortos con mejor preservación del sujeto y control de la escena.

A diferencia de generadores de video anteriores que se centraban principalmente en la calidad del prompt, Wan 2.7 enfatiza la capacidad de control mediante anclaje de fotogramas, entradas de referencia, sincronización de audio y flujos de trabajo estructurados de múltiples tomas.

Principales características de Wan 2.7

  • Canalización de planificación Thinking Mode: El modelo planifica la composición de la escena y el movimiento antes del renderizado, mejorando la adherencia al prompt y reduciendo fallos de coherencia.
  • Control del primer y último fotograma: Los usuarios pueden definir fotogramas de apertura y cierre para que el sistema interpole el movimiento entre ellos.
  • Consistencia de identidad basada en referencias: Mantiene la apariencia del personaje, la vestimenta, los objetos y el estilo a lo largo de múltiples tomas.
  • Flujos de trabajo multimodales nativos: Admite referencias de texto, imagen, audio y video dentro del mismo flujo de trabajo.
  • Generación de audio integrada: Se pueden generar música de fondo, sonidos ambientales y sincronización de voz junto con los elementos visuales.
  • Compatibilidad con edición y continuación: Los videos existentes se pueden ampliar, transformar o restilizar sin reconstruir desde cero.

Rendimiento en benchmarks de Wan 2.7

La divulgación pública de benchmarks para Wan 2.7 sigue siendo limitada en comparación con los LLM de texto, pero evaluaciones de terceros y pruebas de la comunidad indican mejoras notables en estabilidad del movimiento, adherencia al prompt y capacidad de control con respecto a Wan 2.6.

Las observaciones reportadas en el ecosistema incluyen:

  • Mayor continuidad del movimiento frente a versiones anteriores de Wan.
  • Mejor posicionamiento en rankings de evaluaciones de texto a video de terceros.
  • Mejora de la consistencia con múltiples sujetos y de la preservación de referencias.
  • Mejor integración de audio que muchos modelos de video abiertos anteriores.

La transparencia formal de los benchmarks sigue siendo limitada, por lo que las afirmaciones de rendimiento deben interpretarse con cautela.

Wan 2.7 frente a otros modelos de video

CaracterísticaWan 2.7Veo 3.1Seedance 2.0
Flujos de trabajo de audio nativosFuerteFuerteModerado
Consistencia basada en referenciasFuerteModeradoModerado
Control de primer y último fotogramaParcialLimitado
Flujos de trabajo de edición de videoLimitado
Resolución máxima común1080PSalida cinematográfica de gama más alta1080P
Compatibilidad con múltiples referenciasÉnfasis fuerteModeradoModerado

Limitaciones de Wan 2.7

  • Duración de clip corta en comparación con herramientas de producción de formato largo.
  • La salida máxima de 1080P limita los flujos de trabajo de ultra alta resolución.
  • Las escenas con movimiento rápido aún pueden producir artefactos de inestabilidad.
  • Los flujos de trabajo con múltiples referencias aumentan la complejidad y los requisitos de ingeniería de prompts.
  • Los informes públicos de benchmarks siguen siendo relativamente escasos.

Casos de uso representativos

  1. Cortometrajes y guiones gráficos con consistencia de personajes.
  2. Clips de marketing con sincronización de audio.
  3. Generación de video para redes sociales.
  4. Visualización de producto y tráilers conceptuales.
  5. Flujos de trabajo de continuación de video e interpolación de escenas.
  6. Animación de avatares y personajes basada en referencias.

Cómo usar la API de video WAN 2.7 en CometAPI

Paso 1: Prueba la API de video WAN 2.7 en el Kie Al Playground

Primero, prueba la funcionalidad de WAN 2.7 usando la API de video WAN 2.7 en el CometAPI Playground. Sube imágenes, añade prompts o usa referencias para previsualizar el video de WAN generado antes de integrar el video de IA de WAN 2.7 en tu flujo de producción.

Paso 2: Obtén la clave de la API de WAN 2.7 y revisa la documentación de la API

Obtén la clave de la API de WAN 2.7 desde la consola de CometAPI y revisa la documentación. Comprende los endpoints, la autenticación y los parámetros de la API de video WAN 2.7 para admitir flujos de trabajo de texto a video, imagen a video y video de WAN.

Paso 3: Genera videos de IA con WAN 2.7 e intégralos en tu flujo de trabajo

Usa la API de video WAN 2.7 para generar videos de IA de WAN 2.7 con prompts, imágenes o referencias. Integra las salidas de WAN 2.7 en flujos de trabajo de producto, canalizaciones de contenido o herramientas de video con IA para habilitar la creación de video a escala.

Preguntas frecuentes

Precios para Wan2.7

Explora precios competitivos para Wan2.7, diseñado para adaptarse a diversos presupuestos y necesidades de uso. Nuestros planes flexibles garantizan que solo pagues por lo que uses, facilitando el escalado a medida que crecen tus requisitos. Descubre cómo Wan2.7 puede mejorar tus proyectos mientras mantienes los costos manejables.

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

Código de ejemplo y API para Wan2.7

Accede a código de muestra completo y recursos de API para Wan2.7 para agilizar tu proceso de integración. Nuestra documentación detallada proporciona orientación paso a paso, ayudándote a aprovechar todo el potencial de Wan2.7 en tus proyectos.

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

Versiones de Wan2.7

La razón por la cual Wan2.7 tiene múltiples instantáneas puede incluir factores potenciales como variaciones en la salida tras actualizaciones que requieren instantáneas anteriores para mantener la coherencia, ofrecer a los desarrolladores un período de transición para adaptación y migración, y diferentes instantáneas que corresponden a endpoints globales o regionales para optimizar la experiencia del usuario. Para conocer las diferencias detalladas entre versiones, consulte la documentación oficial.

Version
wan2.7