Passer au contenu

Documentation du développeur UlazAI

Google Veo 3.1 Génération vidéo API

Google Veo 3.1 Génération vidéo API

Générez des vidéos avec Veo 3.1 à l'aide des contrôles d'image et du flux de travail de statut de tâche pris en charge.

✨ NOUVEAU : Veo 3.1 Lite, Fast et Quality sont disponibles avec le contrôle de la première et de la dernière image.

✨ Caractéristiques du Veo 3.1

✅ Trois options de modèle - Léger, rapide et de qualité

✅ Contrôle du cadre - Définir les premières et dernières images d'image

✅ Texte vers vidéo et image vers vidéo

✅ Vidéos de 8 secondes avec audio natif

✅ Prise en charge des filigranes - Ajouter le texte de la marque

✅ Mode de repli optionnel pour une deuxième tentative de modèle

✅ Traduction automatique en anglais

✅ Plusieurs formats d'image (16:9, 9:16, Automatique)

💰 Tarifs

💸 Veo 3.1 Lite

40 crédits

Mode meilleur rapport qualité-prix

Texte vers vidéo + image vers vidéo

⚡ Veo 3.1 Fast

100 crédits

~ 0,92 $ par vidéo

Le temps varie selon la file d'attente

💎 Qualité Veo 3.1

220 crédits

~ 2,31 $ par vidéo

Le temps varie selon la file d'attente

🛡️ Mode de repli

+200 crédits

Module complémentaire en option

Le repli ne garantit pas le succès

POSTER /veo31/api/generate/

Générer une vidéo Veo 3.1

Créez une vidéo de 8 secondes avec Google Veo 3.1 en utilisant du texte prompt et des cadres d'image en option.

Corps de la demande

{
  "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
}

Paramètres

prompt * (chaîne)

Description textuelle de la vidéo à générer. Maximum 5 000 caractères. Soyez descriptif des actions, des mouvements de caméra et de l’atmosphère.

modèle * (chaîne)

Modèle à utiliser : veo3_lite (40 crédits), veo3_fast (100 crédits), ou veo3 (220 crédits)

rapport d'aspect (chaîne)

Rapport hauteur/largeur de la vidéo : 16:9 (paysage), 9:16 (portrait), Auto (automatique). Par défaut : 16:9

URL d'image (tableau)

Tableau facultatif de 1 à 2 URL d'image pour le contrôle des images :
• 1 image : la vidéo est centrée autour de cette image
• 2 images : transitions vidéo de la première à la dernière image
Max 10 Mo par image, JPG/PNG uniquement

graines (entier)

Semence facultative pour des résultats reproductibles. Plage : 10 000 à 99 999

filigrane (chaîne)

Texte de filigrane facultatif à superposer sur la vidéo. Maximum 50 caractères. Idéal pour l’image de marque.

activer le repli (booléen)

Activez une tentative facultative de modèle de sauvegarde. Vérifiez le coût actuel du crédit supplémentaire ; le repli ne garantit pas l’achèvement. Par défaut : false

activerTraduction (booléen)

Traduisez automatiquement prompt en anglais pour de meilleurs résultats. Prend en charge toutes les langues. Par défaut : true

Réponse réussie (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"
  }
}

Réponse d'erreur (400)

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

Exemple cURL - Texte vers vidéo

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
  }'

Exemple cURL - Image vers vidéo avec contrôle de trame

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
  }'

Exemple 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']}")
OBTENIR /veo31/api/status/<task_id>/

Vérifier l'état de la génération

Vérifiez l'état d'une tâche de génération vidéo Veo 3.1.

Réponse - Traitement

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

Réponse - Terminé

{
  "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
  }
}

Réponse - Échec

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

Exemple de cURL

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

Télécharger l'image du cadre

Téléchargez une image pour le contrôle des images (première ou dernière image). Renvoie une URL à utiliser dans le point de terminaison généré.

Requête (multipart/form-data)

Content-Type: multipart/form-data

image: (binary file data)

Paramètres

photo * (fichier)

Fichier image à télécharger. 10 Mo maximum. Formats pris en charge : JPG, PNG. Résolution recommandée : 1 920 x 1 080 ou supérieure.

Réponse réussie (200)

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

Exemple de cURL

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

Codes d'état

200 OK - Demande réussie

201 Créé - Tâche de génération créée avec succès

400 requêtes incorrectes - Paramètres invalides ou crédits insuffisants

401 Non autorisé - Clé API manquante ou invalide

404 introuvable - ID de tâche introuvable

413 Charge utile trop importante - L'image dépasse la limite de 10 Mo

429 Trop de demandes - Limite de débit dépassée

500 Erreur de serveur interne - Erreur de serveur, contactez le support

Valeurs d'état de la tâche

en attente - Tâche créée, en attente de démarrage

traitement - La vidéo est en cours de génération

terminé - Génération vidéo réussie, video_url disponible

échoué - Génération échouée, crédits automatiquement remboursés

💡 Meilleures pratiques

Utiliser des prompt descriptifs

Incluez des détails sur les actions, les mouvements de caméra, l’éclairage et l’atmosphère. Exemple : "gros plan au ralenti de gouttelettes d'eau tombant, rétro-éclairé par un coucher de soleil doré, faible profondeur de champ"

Activer la solution de secours pour le contenu important

Pour les tâches importantes, envisagez la tentative de secours facultative tout en gérant les générations ayant échoué ou rejetées dans votre flux de travail.

Utilisez des graines pour plus de cohérence

Si vous devez régénérer des vidéos similaires, utilisez la même valeur de départ (10 000-99999) pour des résultats plus cohérents.

Contrôle du cadre pour le branding

Téléchargez 1 image pour centrer votre vidéo autour d'elle, ou 2 images pour créer une transition fluide. Parfait pour des vidéos cohérentes de personnages ou de produits.

Sondage efficace du statut

Interrogez toutes les 5 secondes pour le mode Rapide, 10 secondes pour le mode Qualité. N'interrogez pas plus fréquemment pour éviter les limites de débit.

📝 Exemple Prompt

✅ Bon Prompt

"Un aigle majestueux survole les montagnes enneigées à l'aube, une lumière dorée illuminant ses ailes, un travelling au ralenti depuis le bas, une composition cinématographique"

✅ Bon Prompt

"Gros plan d'un barista versant du latte art, vapeur s'élevant de la tasse, éclairage chaleureux du café, faible profondeur de champ, perspective d'objectif macro"

❌ Pauvre Prompt

"aigle volant"

Trop vague : il manque des détails sur le réglage, le mouvement et l'angle de la caméra.

Besoin d'aide ?

Vous rencontrez des problèmes avec le Veo 3.1 API ? Nous sommes là pour vous aider !