Saltar al contenido

Documentos para desarrolladores UlazAI

Google Veo 3.1 Generación de vídeo API

Google Veo 3.1 Generación de vídeo API

Genere videos con Veo 3.1 utilizando los controles de fotogramas admitidos y el flujo de trabajo de estado del trabajo.

✨ NUEVO: Veo 3.1 Lite, Fast y Quality están disponibles con control del primer y último fotograma.

✨ Características de Veo 3.1

✅ Tres opciones de modelo - Lite, rápido y de calidad

✅ Control de marco - Establecer imágenes del primer y último fotograma

✅ Texto a vídeo y imagen a video

✅ vídeos de 8 segundos con audio nativo

✅ Soporte de marca de agua - Agregar texto de marca

✅ Modo alternativo opcional para un segundo intento de modelo

✅ Traducción automática al ingles

✅ Múltiples relaciones de aspecto (16:9, 9:16, automático)

💰 Precios

💸 Veo 3.1 Lite

40 créditos

Modo de mejor valor

Texto a vídeo + imagen a vídeo

⚡ Veo 3.1 Fast

100 créditos

~$0,92 por vídeo

El tiempo varía según la cola.

💎 Calidad Veo 3.1

220 créditos

~$2.31 por video

El tiempo varía según la cola.

🛡️ Modo alternativo

+200 créditos

Complemento opcional

El retroceso no garantiza el éxito

PUBLICAR /veo31/api/generate/

Generar vídeo Veo 3.1

Cree un vídeo de 8 segundos con Google Veo 3.1 utilizando texto prompt y marcos de imagen opcionales.

Cuerpo de solicitud

{
  "prompt": "A golden retriever running through a field of flowers at sunset",
  "model": "veo3_lite",           // Options: "veo3_lite", "veo3_fast", "veo3"
  "aspectRatio": "16:9",          // Options: "16:9", "9:16", "Auto"
  "imageUrls": [],                // Optional: Array of 1-2 image URLs
  "seeds": 42069,                 // Optional: 10000-99999 for reproducible results
  "watermark": "UlazAI",          // Optional: Max 50 characters
  "enableFallback": false,        // Optional fallback attempt; check current extra credits
  "enableTranslation": true       // Optional: Auto-translate to English
}

Parámetros

prompt * (cadena)

Descripción de texto del vídeo a generar. Máximo 5000 caracteres. Sea descriptivo sobre las acciones, los movimientos de la cámara y la atmósfera.

modelo * (cadena)

Modelo a utilizar: veo3_lite (40 créditos), veo3_fast (100 créditos), o veo3 (220 créditos)

relación de aspecto (cadena)

Relación de aspecto del vídeo: 16:9 (paisaje), 9:16 (retrato), Auto (automático). Por defecto: 16:9

URL de imagen (matriz)

Matriz opcional de 1 o 2 URL de imágenes para control de fotogramas:
• 1 imagen: el vídeo se centra en esta imagen.
• 2 imágenes: el vídeo pasa del primer al último fotograma
Máximo 10 MB por imagen, solo JPG/PNG

semillas (entero)

Semilla opcional para resultados reproducibles. Rango: 10000-99999

marca de agua (cadena)

Texto de marca de agua opcional para superponer en video. Máximo 50 caracteres. Genial para la marca.

habilitarFallback (booleano)

Habilite un intento de modelo de copia de seguridad opcional. Verifique el costo del crédito adicional actual; el respaldo no garantiza la finalización. Por defecto: false

habilitarTraducción (booleano)

Traduzca automáticamente prompt al inglés para obtener mejores resultados. Soporta todos los idiomas. Predeterminado: true

Respuesta exitosa (201)

{
  "success": true,
  "data": {
    "task_id": "veo31_abc123def456",
    "status": "processing",
    "model": "veo3_fast",
    "credits_charged": 100,
    "credits_remaining": 900,
    "estimated_time": "varies by queue",
    "message": "Veo 3.1 video generation started successfully"
  }
}

Respuesta de error (400)

{
  "success": false,
  "error": "Insufficient credits. Required: 100, Available: 50"
}

Ejemplo de cURL: texto a vídeo

curl -X POST https://ulazai.com/veo31/api/generate/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever running through a field of flowers at sunset, slow motion, cinematic lighting",
    "model": "veo3_fast",
    "aspectRatio": "16:9",
    "watermark": "MyBrand",
    "enableTranslation": true
  }'

Ejemplo de cURL: imagen a vídeo con control de fotogramas

curl -X POST https://ulazai.com/veo31/api/generate/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "The character slowly turns their head and smiles at the camera",
    "model": "veo3",
    "aspectRatio": "16:9",
    "imageUrls": ["https://your-domain.com/start-frame.jpg"],
    "seeds": 42069,
    "enableFallback": true
  }'

Ejemplo de Python

import requests
import time

API_KEY = "your_api_key_here"
BASE_URL = "https://ulazai.com"

# Generate video
response = requests.post(
    f"{BASE_URL}/veo31/api/generate/",
    headers={
        "Authorization": f"Token {API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "prompt": "A serene mountain lake at sunrise with mist rising from the water",
        "model": "veo3_fast",
        "aspectRatio": "16:9",
        "watermark": "MyBrand"
    }
)

data = response.json()
if data["success"]:
    task_id = data["data"]["task_id"]
    print(f"Task created: {task_id}")

    # Poll for completion
    while True:
        status_response = requests.get(
            f"{BASE_URL}/veo31/api/status/{task_id}/",
            headers={"Authorization": f"Token {API_KEY}"}
        )

        status_data = status_response.json()
        if status_data["data"]["status"] == "completed":
            video_url = status_data["data"]["video_url"]
            print(f"Video ready: {video_url}")
            break
        elif status_data["data"]["status"] == "failed":
            print(f"Generation failed: {status_data['data']['error_message']}")
            break

        time.sleep(5)  # Poll every 5 seconds
else:
    print(f"Error: {data['error']}")
OBTENER /veo31/api/status/<task_id>/

Verificar estado de generación

Verifique el estado de una tarea de generación de video Veo 3.1.

Respuesta - Procesamiento

{
  "success": true,
  "data": {
    "task_id": "veo31_abc123def456",
    "status": "processing",
    "model": "veo3_fast",
    "prompt": "A golden retriever running through flowers",
    "credits_charged": 100
  }
}

Respuesta - Completada

{
  "success": true,
  "data": {
    "task_id": "veo31_abc123def456",
    "status": "completed",
    "video_url": "https://cdn.ulazai.com/videos/veo31_abc123.mp4",
    "thumbnail_url": "https://cdn.ulazai.com/videos/veo31_abc123_thumb.jpg",
    "resolution": "1080p",
    "duration": 8,
    "aspect_ratio": "16:9",
    "fallback_used": false,
    "credits_charged": 100
  }
}

Respuesta: fallida

{
  "success": true,
  "data": {
    "task_id": "veo31_abc123def456",
    "status": "failed",
    "error_message": "Content policy violation. Enable fallback mode to retry.",
    "credits_refunded": 100
  }
}

Ejemplo de rizo

curl -X GET https://ulazai.com/veo31/api/status/veo31_abc123def456/ \
  -H "Authorization: Token YOUR_API_KEY"
PUBLICAR /veo31/api/upload-frame/

Subir imagen de marco

Cargue una imagen para el control del cuadro (primer o último cuadro). Devuelve una URL para usar en el punto final de generación.

Solicitud (multiparte/datos de formulario)

Content-Type: multipart/form-data

image: (binary file data)

Parámetros

imagen * (archivo)

Archivo de imagen para cargar. Máximo 10 MB. Formatos soportados: JPG, PNG. Resolución recomendada: 1920x1080 o superior.

Respuesta exitosa (200)

{
  "success": true,
  "url": "https://cdn.ulazai.com/uploads/frame_abc123.jpg",
  "message": "Image uploaded successfully"
}

Ejemplo de rizo

curl -X POST https://ulazai.com/veo31/api/upload-frame/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -F "image=@/path/to/your/image.jpg"

Códigos de estado

200 bien - Solicitud exitosa

201 creado - Tarea de generación creada exitosamente.

400 Solicitud incorrecta - Parámetros no válidos o créditos insuficientes

401 No autorizado - Clave API faltante o no válida

404 no encontrado - ID de tarea no encontrada

413 Carga útil demasiado grande - La imagen supera el límite de 10 MB

429 Demasiadas solicitudes - Límite de tarifa excedido

500 Error interno del servidor - Error del servidor, póngase en contacto con el soporte

Valores de estado de tarea

pendiente - Tarea creada, esperando para comenzar.

procesamiento - Se está generando vídeo.

completado - Generación de video exitosa, video_url disponible

falló - Generación fallida, créditos reembolsados automáticamente

💡 Mejores prácticas

Utilice prompt descriptivos

Incluye detalles sobre acciones, movimientos de cámara, iluminación y atmósfera. Ejemplo: "primer plano en cámara lenta de gotas de agua cayendo, retroiluminadas por una puesta de sol dorada, poca profundidad de campo"

Habilitar respaldo para contenido importante

Para trabajos importantes, considere el intento de respaldo opcional y aún así maneje las generaciones fallidas o rechazadas en su flujo de trabajo.

Use semillas para darle consistencia

Si necesita regenerar videos similares, use el mismo valor inicial (10000-99999) para obtener resultados más consistentes.

Control de marco para branding

Sube 1 imagen para centrar tu video alrededor de ella, o 2 imágenes para crear una transición suave. Perfecto para vídeos consistentes de personajes o productos.

Estado de la encuesta de manera eficiente

Encuesta cada 5 segundos para el modo Rápido, 10 segundos para el modo Calidad. No realice encuestas con más frecuencia para evitar límites de tarifas.

📝 Ejemplo Prompt

✅ Bueno Prompt

"Un águila majestuosa vuela sobre montañas cubiertas de nieve al amanecer, una luz dorada ilumina sus alas, una cámara en cámara lenta sigue una toma desde abajo, una composición cinematográfica"

✅ Bueno Prompt

"Primer plano de un barista sirviendo café con leche, vapor saliendo de la taza, iluminación cálida del café, poca profundidad de campo, perspectiva de lente macro"

❌ Pobre Prompt

"águila volando"

Demasiado vago: faltan detalles sobre la configuración, el movimiento y el ángulo de la cámara.

¿Necesita ayuda?

¿Tiene problemas con el Veo 3.1 API? ¡Estamos aquí para ayudar!