> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Generación de Video

> Genera videos con operaciones públicas explícitas, sondeo asíncrono y entradas de medios específicas del modelo.

La generación de video es asíncrona. `POST /v1/videos/generations` devuelve una identidad de tarea pública y, por lo general, un `poll_url`; el video final aparece en respuestas de estado posteriores.

Cuando el modelo Seedance seleccionado puede usar la biblioteca de materiales de TokenLab, las URLs de imagen y las data URLs inline compatibles se preparan como materiales reutilizables de TokenLab antes de generar. Si la preparación tarda más de 60 segundos, reintenta cuando los `auto_material_asset_ids` devueltos estén `ACTIVE`. Si el modelo seleccionado no puede usar la biblioteca de materiales, las entradas de imagen normales siguen el flujo de imagen habitual.

## Operações compatíveis

Utiliza `operation` explícito en producción. TokenLab puede inferir algunas operaciones a partir de las entradas, pero los valores de operación explícitos hacen que la validación, el soporte y los reintentos sean más claros.

| Operación            | Entrada requerida o típica                                                            | Caso de uso                                         |
| -------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `text-to-video`      | `prompt`                                                                              | Generar solo a partir de texto                      |
| `image-to-video`     | `image_url` o `image` compatible                                                      | Animar una imagen inicial                           |
| `reference-to-video` | `reference_images` y opcionalmente `video_urls` / `audio_urls` en modelos compatibles | Mantener identidad, estilo o referencias de activos |
| `start-end-to-video` | `start_image`, `end_image`                                                            | Controlar los primeros y últimos fotogramas         |
| `video-to-video`     | `video_url` o `task_id` específico del modelo                                         | Transformar o mejorar un clip existente             |
| `motion-control`     | `image_url` más `video_url`                                                           | Aplicar referencia de movimiento a un sujeto        |
| `audio-to-video`     | `audio_url`                                                                           | Flujos de video condicionados por audio             |
| `video-extension`    | `task_id`, `extend_at`, o campos de extensión específicos del modelo                  | Continuar un video generado                         |

## Descubrimiento de Modelos

```bash theme={null}
curl "https://api.tokenlab.sh/v1/models?recommended_for=video" \\
  -H "Authorization: Bearer sk-your-api-key"
```

Usa los IDs de modelo que muestra TokenLab en `model` y elige variantes de función con `operation` y las entradas multimedia correspondientes. Ejemplos: `wan-2.7`, `happyhorse-1.0`, `viduq3`, `viduq3-mix`, `pixverse-v6`, `kling-3.0-video`, `veo3.1` y `seedance-2.0`; no uses sufijos específicos de operación como nombres de modelo de TokenLab.

Lee los detalhes do modelo seleccionado antes de confiar en campos especializados como `reference_images`, `kling_elements`, `output_audio`, `duration`, `resolution`, o `aspect_ratio`.

## Crear Solicitud

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \\
  -H "Authorization: Bearer sk-your-api-key" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "veo3.1",
    "operation": "text-to-video",
    "prompt": "Una toma cinematográfica tranquila de un gato caminando por un jardín iluminado por el sol",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
```

Para la entrada de medios en producción, prefiere URLs públicas `https` sobre URLs `data:` en línea. Si utilizas URLs temporales, mantenlas válidas hasta que TokenLab termine de crear la tarea.

## Entradas Y Campos Específicos del Modelo

* Las solicitudes de la familia Veo 3 predeterminan el audio activado cuando se omite `output_audio`. Establece esto explícitamente cuando el modelo soporte el interruptor y tu experiencia de usuario dependa del sonido.
* `kling_elements` es para solicitudes condicionadas por imagen de `kling-3.0-video`. Referencia cada elemento en `prompt` como `@name`; no lo combines con `output_audio=true`.
* Para la familia Seedance 2.0, lee la [guía de modelos de video Seedance 2.0](/es/guides/seedance-2-video) antes de usar salida 4K, límites Fast/Mini o entradas de referencia multimodales.
* Para `grok-imagine-video`, video-to-video utiliza un `.mp4` público `video_url`; los límites específicos del modelo como `duration` y `resolution` deben provenir del detalle del modelo.

## PixVerse y HappyHorse

| Modelo                       | Operaciones                                                                   | Entradas                                                                    | Resolución              | Duración                                                                                                | Selector de audio                   |
| ---------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `pixverse-c1`, `pixverse-v6` | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | `prompt`; `image_url`; `start_image` + `end_image`; `reference_images`      | 360p, 540p, 720p, 1080p | Cualquier número entero de 1 a 15 segundos                                                              | `output_audio`, `false` por defecto |
| `pixverse-v5.6`              | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | Mismos campos que C1 y V6                                                   | 360p, 540p, 720p, 1080p | 5, 8 o 10 segundos; 1080p admite 5 u 8 segundos                                                         | `output_audio`, `false` por defecto |
| `happyhorse-1.0`             | `text-to-video`, `image-to-video`, `reference-to-video`, `video-to-video`     | `prompt`; `image_url`; `reference_images`; `video_url` + `reference_images` | 720p, 1080p             | 3 a 15 segundos para operaciones de generación; la salida de video-to-video está limitada a 15 segundos | No enviar `output_audio`            |

En TokenLab, los modelos PixVerse anteriores no aceptan `operation=video-extension`.

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse-v6",
    "operation": "image-to-video",
    "prompt": "A slow camera move through a neon-lit street",
    "image_url": "https://example.com/start.jpg",
    "resolution": "1080p",
    "duration": 5,
    "output_audio": true
  }'
```

## Resultados de Sondeo

Utiliza primero el `poll_url` devuelto. Si necesitas un punto final fijo, utiliza `GET /v1/tasks/{id}` con el mismo `id` / `task_id` de la respuesta de creación.

Las tareas de video completadas pueden devolver `video_url`, `video` o `videos` según el modelo y la cantidad de salidas. Trata `billing_transaction_id` como un identificador de facturación, no como un identificador de tarea.

## Errores Comunes

* No codifiques en duro rutas de estado de video antiguas; prefiere `poll_url`.
* No combines campos de primer fotograma con flujos de imagen de referencia dedicados a menos que el detalle del modelo lo permita.
* No asumas que `duration` describe la longitud del video de referencia de entrada; generalmente controla la longitud de salida generada.
* No reintentes solicitudes de creación después de un tiempo de espera sin verificar si ya se creó una tarea.

## Referencia de API

| Tema                       | Referencia                                                            |
| -------------------------- | --------------------------------------------------------------------- |
| Crear Video                | [Crear Video](/es/api-reference/video/create-video)                   |
| Obtener Estado del Video   | [Obtener Estado del Video](/es/api-reference/video/get-video-status)  |
| Obtener Estado de la Tarea | [Obtener Estado de la Tarea](/es/api-reference/tasks/get-task-status) |
| Cancelar Tarea             | [Cancelar Tarea](/es/api-reference/tasks/cancel-task)                 |
| Facturación y Precios      | [Facturación y Precios](/es/guides/billing)                           |

## APIs de video estilo OpenAI y compatibles con Volc

Usa `/v1/videos/generations` para la API unificada de video de TokenLab entre modelos. Si estás migrando una integración Seedance 2.0 que ya usa `content[]` o solicitudes Action estilo Volc, usa los endpoints de compatibilidad Seedance bajo `/api/v3`. Ambos estilos usan API keys Bearer de TokenLab y polling asíncrono, pero las formas de solicitud y respuesta son distintas.
