NezhaGate
POST https://nezhagate.com/v1/videos/generations

Generación de vídeo con Wan 3.0 Prime (Tongyi Wanxiang, asíncrona): un solo endpoint y los parámetros eligen el modo; sin material es texto a vídeo, una imagen de referencia es primer fotograma, dos son primer y último fotograma, más son referencia multiimagen, y un vídeo de referencia lo convierte en edición de vídeo. La duración es cualquier entero de 2 a 30 segundos, resolución 480P / 720P / 1080P (por defecto 720P, cada nivel con su tarifa), size 16:9 / 9:16 / 1:1 / 4:3 / 3:4, y con un primer fotograma puedes pasar size=adaptive para que la salida siga a la imagen de referencia. Hasta 10 imágenes de referencia, 5 vídeos de referencia y 5 pistas de audio de referencia (estas dos últimas limitadas a 15s en total cada una). Devuelve un id de trabajo (HTTP 202); consulta GET /v1/videos/jobs/{id} hasta status=succeeded y lee el resultado en data[0].url (un mp4 rehospedado). Se factura por segundo sobre la duración de salida MÁS la duración de cada vídeo de referencia; las imágenes y el audio de referencia son gratis. Reembolso íntegro si falla.

Probar en el Playground →

Autenticación

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Crea una clave API en la consola para empezar.

Cuerpo de la petición

ParámetroTipoObligatorioDescripción
model string ID del modelo; aquí wan3.0-video-prime.
prompt string Prompt de texto que describe el vídeo, la cámara y el movimiento. Máximo 5000 bytes (UTF-8; un carácter chino cuenta como 3). Puedes referirte al material de referencia en orden como @Image1 / @Video1 / @Audio1; por ejemplo: «el personaje de @Image1 con el movimiento de cámara de @Video1». Sin esas marcas, el modelo decide por su cuenta.
duration integer No Duración en segundos, cualquier entero de 2 a 30 (por defecto 2); alias seconds. Se factura por segundo.
resolution string No Resolución: 480P / 720P / 1080P (por defecto 720P). Tarifa por segundo: 480P $0.12 / 720P $0.16 / 1080P $0.2.
size string No Relación de aspecto: 16:9 / 9:16 / 1:1 / 4:3 / 3:4 (por defecto 16:9); alias aspect_ratio. Con un primer fotograma puedes pasar adaptive para que la salida siga la proporción de la imagen de referencia. No admite 21:9.
image string No Imagen a vídeo: una sola imagen de referencia se usa por defecto como primer fotograma (URL pública, data: URI o base64); omítela para texto a vídeo.
images array No Varias imágenes de referencia. Hasta 10 y son gratis. A partir de dos se tratan por defecto como referencia de sujeto o escena. Si superas el límite se rechaza en lugar de recortar; alias reference_images. Ojo: cualquier persona visible en cualquiera de las referencias pasa a ser sujeto candidato, así que conviene que las referencias de escena no lleven a otras personas.
image_role string No Cómo se usan las imágenes de referencia: first_frame (una segunda imagen pasa a ser el último fotograma) o reference (guías de sujeto o escena). Si se omite: una imagen usa first_frame por defecto y dos o más usan reference. Junto a un vídeo de referencia, reference es obligatorio.
video_references array No Vídeos de referencia. Hasta 5, con un total de 15 segundos. Cada elemento se escribe como {"url": "...", "duration": 5} y duration (en segundos) es obligatorio, porque los segundos del vídeo de referencia también se facturan junto con la salida. Solo se aceptan enlaces http(s) públicos. Al incluir vídeos de referencia, la suma de referencia y salida no debe superar los 30 segundos. Se pueden combinar con imágenes de referencia.
audio_reference string / array No Enlaces http(s) públicos de audio de referencia. Hasta 5, con un total de 15 segundos, y son gratis. Deben acompañar a una imagen o un vídeo de referencia.
prompt_extend boolean No Reescritura oficial del prompt. Si se omite, se aplica el valor por defecto del proveedor (activado); pasa false para conservar exactamente el prompt tal y como lo escribiste.

Ejemplo de petición

cURL
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "wan3.0-video-prime", "prompt": "a paper crane unfolding over a misty lake", "duration": 5, "resolution": "720P", "size": "16:9"}'
# image-to-video: also pass  "image": "https://example.com/first-frame.png"
# 2) poll every ~15s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'

Respuesta

200 · JSON
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "wan3.0-video-prime"
}

Trabajo de vídeo asíncrono (enviar → consultar)

Un solo modelo; los parámetros eligen el tipo: tier=lite/fast/quality, resolution=720p/1080p/4k (1080p y 4k requieren quality), size=16:9/9:16, duration=4s/6s/8s; añade el parámetro image para imagen a vídeo (primer fotograma). Devuelve HTTP 202 y un id de trabajo; consúltalo hasta status=succeeded y lee el resultado en data[0].url (un mp4 rehospedado, 1-2 min).

curl · enviar (texto a vídeo)
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "wan3.0-video-prime", "prompt": "un gato surfeando al atardecer", "tier": "quality", "resolution": "1080p", "size": "16:9", "duration": "8s"}'
Imagen a vídeo: pasa además el parámetro image (referencia del primer fotograma: una URL pública, un data: URI o base64).
Ejemplo de respuesta
{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "wan3.0-video-prime" }
curl · consultar
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
Ejemplo de respuesta
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "succeeded",
  "model": "wan3.0-video-prime",
  "data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}

Facturado por segundo ($0.16/s x duración); la retención coincide exactamente con el cargo, y un render fallido o caducado se reembolsa íntegramente de forma automática.

Códigos de error

CodeDescripción
401Falta la clave API o no es válida
402Saldo insuficiente o clave por encima de su cuota
400Modelo o parámetro no soportado
429Límite de tasa del proveedor
502Fallaron todas las rutas de proveedor