NezhaGateNezhaGate
gemini-omni-flash

Gemini Omni Flash · API

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

Generación de vídeo con Gemini Omni Flash (asíncrona): el modelo de vídeo de nueva generación de Google. Un solo endpoint y los parámetros eligen el modo: sin imagen es texto a vídeo, una imagen (image) es el primer fotograma, dos imágenes (images) son primer y último fotograma, e image_role=reference convierte de 1 a 3 imágenes en referencias de sujeto o estilo. duration=6 / 8 / 10 segundos, resolution=720P / 1080P, size=16:9 / 9:16, con audio nativo, y destaca siguiendo un guion a lo largo de varios planos. 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 realojado que se guarda 60 días). Se factura por segundo a $0.05/s ($0.30 / $0.40 / $0.50), igual en ambas resoluciones; 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 Sí ID del modelo; aquí gemini-omni-flash.
prompt string Sí Prompt de texto que describe el vídeo, la cámara y el movimiento, hasta 20000 caracteres (el chino y el inglés cuentan igual). Con imágenes de referencia puedes señalarlas en el prompt como @Image1 / @Image2.
duration integer No Duración: 6 / 8 / 10 segundos (por defecto 6); alias seconds. Se factura por segundo a $0.05/s, es decir $0.30 / $0.40 / $0.50.
resolution string No Resolución: 720P / 1080P (por defecto 720P), ambas con la misma tarifa.
size string No Relación de aspecto: 16:9 (por defecto) / 9:16; alias aspect_ratio. Otras proporciones se rechazan.
audio boolean No Este modelo siempre genera audio nativo; el parámetro se puede omitir (false se rechaza).
image string No Una imagen de referencia (URL pública, data: URI o base64): vídeo a partir de imagen, con ella como primer fotograma. Sin imágenes es texto a vídeo.
images array No Hasta 3 imágenes (cada una hasta 16 MB, jpg / png / webp / gif). image_role=first_frame (por defecto con 1-2 imágenes): la imagen 1 es el primer fotograma y la 2 el último. image_role=reference: de 1 a 3 referencias de sujeto o estilo que no se usan como fotogramas; con 3 imágenes es reference por defecto. Alias reference_images (equivale a reference). Si superas el límite se rechaza en lugar de recortar.
image_role string No Cómo se usan las imágenes: first_frame (primer fotograma; con dos imágenes, la segunda es el último) o reference (referencias de sujeto o estilo). Si se omite: 1-2 imágenes son first_frame y 3 son reference.

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": "gemini-omni-flash", "prompt": "a paper crane unfolding over a misty lake", "duration": 8, "resolution": "720P", "size": "16:9"}'
# first frame: also pass  "image": "https://example.com/first-frame.png"
# first + last frame: "images": ["https://example.com/first.png", "https://example.com/last.png"]
# 1-3 references: "images": [...], "image_role": "reference"
# 2) poll every ~5s 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": "gemini-omni-flash"
}

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

Al enviar recibes al instante HTTP 202 y un id de trabajo; consulta hasta que status=succeeded y lee data[0].url (un enlace mp4). Los valores admitidos de duración, resolución y tamaño están en la tabla de parámetros de arriba; añade un parámetro image para imagen a vídeo.

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": "gemini-omni-flash", "prompt": "un gato surfeando al atardecer", "size": "16:9"}'
Imagen a vídeo: pasa además el parámetro image (referencia del primer fotograma: una URL pública, un data: URI o base64).
Primer y último fotograma: pasa dos imágenes en images (primero y último). Referencias: pasa de 1 a 3 imágenes con "image_role": "reference"; las personas o el estilo aparecen en el vídeo sin usarse como fotograma.
Ejemplo de respuesta
{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "gemini-omni-flash" }
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": "gemini-omni-flash",
  "data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}

🕑 data[0].url es un enlace de nuestro alojamiento de imágenes que se conserva 60 días y después se elimina automáticamente; si necesitas seguir usándolo, descárgalo y guárdalo en tu propio almacenamiento o CDN.

Facturado por segundo ($0.05/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

Todo cuerpo de error incluye error.message / error.type / error.code / error.param: ramifica según code. La lista completa está en la guía de integración.

HTTPcodeDescripción
401invalid_api_keyFalta la clave API o no es válida
402insufficient_quotaSaldo insuficiente o clave por encima de su cuota
400invalid_requestModelo o parámetro no soportado
429rate_limit_exceededLímite de tasa del proveedor
502upstream_errorFallaron todas las rutas de proveedor