models

Vidu: Q2 Text-to-Video

Markdown · JSON

Vidu: Q2 Text-to-Video

Vidu Q2 crée une vidéo à partir d’une description textuelle de la scène, avec une durée de 1 à 10 secondes, une sortie 540p, 720p ou 1080p et cinq rapports d’aspect. Ce profil viduq2 précis utilise le prompt pour le style et le mouvement et renvoie son résultat par une tâche asynchrone.

À propos du modèle

Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.

Vidu Q2 crée une vidéo à partir d’une scène écrite au moyen du profil texte-vers-vidéo sélectionné par viduq2. Ses entrées obligatoires sont l’identifiant exact du modèle et un prompt décrivant la scène. Utilisez-le pour un court concept de produit, un plan d’ensemble ou une action de personnage dont l’apparence et le mouvement peuvent être précisés par des mots. Cette méthode configurée est texte-vers-vidéo ; sa description n’attribue pas au sélecteur un mode distinct de référence image ou de modification vidéo.

Construisez la consigne autour d’une séquence visible. Identifiez le sujet, le lieu, l’action, l’échelle de plan, le mouvement de caméra et la composition finale. Pour un concept de produit, décrivez un objet sur une table, la lumière se déplaçant sur sa matière et une lente approche de caméra qui se termine sur un détail reconnaissable. Pour une scène de lieu, présentez l’environnement avant de vous rapprocher du point d’intérêt. Adaptez l’action à la durée de clip choisie afin que la scène ait le temps d’atteindre la fin voulue.

La limite du prompt est de 2 000 caractères. Placez d’abord le sujet et l’action essentiels, puis ajoutez les détails d’éclairage, de matière, d’environnement et de caméra qui modifient le résultat voulu. Précisez le style visuel dans le prompt. Le guide propre à Q2 indique que les paramètres distincts style et movement_amplitude sont sans effet pour ce modèle : le préréglage general ou anime et les options d’amplitude de mouvement ne remplacent donc pas une description claire de la scène.

Le réglage de durée propre au modèle accepte des secondes entières de un à dix. Les choix de résolution propres à Q2 sont 540p, 720p et 1080p, avec 720p comme valeur par défaut documentée. Choisissez ensemble la durée et la résolution selon l’action et la destination. Une brève mise en valeur et un mouvement plus long demandent des rythmes différents ; augmenter la durée demandée doit servir la séquence visible plutôt que simplement étirer une consigne inchangée. Vérifiez les dimensions et la longueur réelles du clip renvoyé lors de la préparation de son intégration finale.

Les choix documentés du paramètre aspect_ratio sont 16:9, 9:16, 3:4, 4:3 et 1:1, avec 16:9 par défaut. Le guide inclut explicitement 3:4 et 4:3 pour la famille Q2. Choisissez le cadrage avant la génération et décrivez une composition adaptée : gardez un sujet principal lisible dans une vue en portrait, ou utilisez la largeur d’un cadre paysage pour le décor environnant. Gardez la vue finale assez claire pour la page, la présentation ou l’ajout ultérieur de légendes prévu.

Le champ seed contrôle la variation. L’omettre ou fournir 0 sélectionne une valeur aléatoire ; une valeur non nulle sélectionne l’option documentée de graine fixe pour une génération reproductible. Conservez la graine renvoyée avec le prompt et les réglages pour comparer les versions. L’opération commune documente aussi les réglages audio et off_peak spécifiquement pour les modèles Q3. Ces options Q3 ne sont pas des capacités attribuées à ce profil Q2 ; préparez cette requête autour de son entrée textuelle et de sa sortie vidéo documentées.

La génération est asynchrone. La soumission renvoie task_id et un état initial, avec created pour une tâche nouvellement créée. Conservez cette identité de tâche pendant le suivi du traitement. La consultation de résultat documentée utilise state=success pour un résultat réussi et renvoie un tableau creations. Chaque élément contient l’URL de sa vidéo dans creations[].url ; enregistrez chaque vidéo renvoyée plutôt que de supposer que la tâche contient toujours exactement une création.

La documentation de résultat rapporte aussi la durée et les fps de la vidéo réelle ainsi que la largeur et la hauteur de sa résolution. Gardez ces valeurs rapportées avec le clip achevé au lieu de considérer la cadence ou les dimensions d’un exemple comme une spécification fixe de Q2. La réponse de création de tâche comprend une valeur credits avec la configuration de requête. Conservez ces métadonnées de tâche rapportées et l’identité de la tâche achevée avec le résultat, afin que chaque vidéo reste liée à ses réglages de génération.

Vérifiez toute la séquence par rapport à la consigne d’origine : l’apparence du sujet, la forme des objets, la direction du mouvement, la continuité de caméra et la vue finale voulue. Pour une révision, identifiez le détail concret qui ne correspond pas à la consigne et préservez les parties réussies de la scène. Gardez ensemble le prompt, le sélecteur exact, les réglages, l’identité de tâche et les vidéos achevées afin qu’une comparaison ultérieure repose sur les résultats réels.

Ailoot Ultra · Vidéo POST /v1/videos viduq2

viduq2

Vidu /viduq2

Pour commencer

Vidu Q2 crée une vidéo à partir d’une description textuelle de la scène, avec une durée de 1 à 10 secondes, une sortie 540p, 720p ou 1080p et cinq rapports d’aspect. Ce profil viduq2 précis utilise le prompt pour le style et le mouvement et renvoie son résultat par une tâche asynchrone.

Entrées acceptées
Texte
Résultats
Vidéo

Disponible dans Ailoot · entrées et méthodes

Ailoot Ultra · Vidéo POST /v1/videos
Entrée
text
Sortie
video
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
viduq2
Par défaut—
ChamppromptTypestringExigenceObligatoireValeurs et limites
Conditions: Décrivez la scène à générer. La limite documentée est de 2000 caractères; Ailoot vérifie que la chaîne n’est pas vide et conserve le texte.
Par défaut—
ChampdurationTypeintegerExigenceFacultatifValeurs et limites
Minimum: 1
Maximum: 10
Conditions: La description propre au modèle viduq2 indique 1–10 secondes entières. Aucune durée par défaut propre au modèle n’est documentée.
Unité: secondes
Par défaut—
ChampseedTypestringExigenceFacultatifValeurs et limites
Conditions: Omettez ce champ ou envoyez la chaîne "0" pour un résultat aléatoire. Une valeur seed non nulle fournie sélectionne le comportement documenté à seed fixe; aucune plage numérique n’est précisée.
Par défaut—
Champaspect_ratioTypestringExigenceFacultatifValeurs et limites
16:9, 9:16, 3:4, 4:3, 1:1
Par défaut16:9
ChampresolutionTypestringExigenceFacultatifValeurs et limites
540p, 720p, 1080p
Conditions: La liste propre au modèle viduq2 documente ces paliers pour 1–10 secondes. Une énumération et un tableau communs mentionnent aussi 360p; son applicabilité contredit cette liste et n’est pas affirmée ici.
Par défaut720p
ChampstyleTypestringExigenceFacultatifValeurs et limites
general, anime
Conditions: La demande commune accepte ce champ, mais la documentation indique explicitement qu’il n’a aucun effet pour viduq2.
Par défautgeneral
Champmovement_amplitudeTypestringExigenceFacultatifValeurs et limites
auto, small, medium, large
Conditions: La demande commune accepte ce champ, mais la documentation indique explicitement qu’il n’a aucun effet pour les modèles q2.
Par défautauto
Combinaisons d’éléments d’entrée

Paramètres et cycle de vie de la méthode
ParamètreContrat
Paramètrecontent_typeContratapplication/json
ParamètrerequiredContratmodel, prompt
ParamètreoptionalContratduration, seed, aspect_ratio, resolution, style, movement_amplitude
Paramètrematerial_typesContrattext
Paramètreadditional_propertiesContrattrue
Paramètrevalidation_scopeContratAiloot valide les chaînes model/prompt non vides. Les types et limites facultatifs ci-dessous constituent le contrat de demande documenté; les autres champs de la demande sont conservés pour le modèle sélectionné.

Alias de méthode : /v1/videos/generations

Cycle de vie : submit_once_poll_original

GET /v1/videos/{request_id}

GET /v1/videos/generations/{request_id}

GET /v1/videos/{request_id}/content

GET /v1/videos/generations/{request_id}/content

Créez une seule fois et conservez l’id public et le polling_url retournés.

Interrogez l’opération d’origine et consultez state; success et un résultat creations[].url appartenant à votre compte constituent les critères de fin.

Téléchargez chaque URL vidéo retournée dont le contenu appartient à votre compte; ne déduisez pas de l’exemple un nombre de sorties, une durée ou une fréquence d’images fixes.

Tarifs

Calcul du coût final

Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.

Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.

Mode rapide
Non précisé Lorsque le mode rapide est sélectionné
Mode Flex
Non précisé Lorsque le mode flex est sélectionné
Effort de raisonnement maximal
Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)

Tarifs estimés à des fins de comparaison

Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

ConfigurationBarème tarifaireQuantité prévisionnelleCoût
ConfigurationTarifs de base des jetonsBarème tarifaireTarif de baseQuantité prévisionnelle—Coût
Entrée · Jetons en entrée · Estimation à des fins de comparaison uniquement — / 1K jetons
Sortie · Jetons en sortie · Estimation à des fins de comparaison uniquement — / 1K jetons
Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K jetons
Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K jetons
Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K jetons
ConfigurationCoût de génération estiméBarème tarifaire—Quantité prévisionnelleestimation pour une générationCoût
Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $5.12 estimation avant génération

Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée.

Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →

Exemples de requêtes

Ailoot Ultra · Vidéo

curl · créez une vidéocurl · consultez la tâche d’originecurl · téléchargez chaque vidéo qui vous appartient
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
    value=item.get("url") if isinstance(item,dict) else None
    values=[value] if isinstance(value,str) else value
    if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
    for u in values:
        if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
        p=urlsplit(u)
        if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
        urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
  index=$((index + 1))
done < asset-urls.txt

Recevoir et enregistrer les résultats

Ailoot Ultra · Vidéo

Le JSON conserve l’état natif et le tableau creations, avec l’ajout des valeurs publiques id/provider_task_id/polling_url. Les URL vidéo sélectionnées sont vides avant la publication et deviennent des URL signées appartenant à Ailoot après la fin.

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Conserver tous les résultats terminés

Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.

Téléchargez chaque URL réellement retournée dans creations[].url; un indice de contenu désigne une sortie réelle retournée.

Si la réponse d’origine doit être vérifiée

La déclaration fixée n’énumère aucun état d’échec terminal. Conservez la réponse, les en-têtes et l’id d’origine, puis vérifiez cette même opération pour tout état non reconnu ou toute erreur result_pending_check; ne soumettez jamais de nouveau une création dont l’état est inconnu.

Champs de la réponse
ChampTypeSignification
ChampidTypestringSignificationIdentifiant public de tâche ou d’opération Ailoot retourné.
Champprovider_task_idTypestringSignificationIdentifiant de la tâche d’origine, distinct de l’id public.
Champpolling_urlTypestringSignificationChemin de consultation Ailoot retourné pour la tâche d’origine.
Champtask_idTypestring when suppliedSignificationIdentifiant d’origine présent dans la réponse de création.
ChampstateTypestring when suppliedSignificationÉtat natif de la tâche : created pour l’état en attente fixé et success pour la fin.
Champerr_codeTypestring when suppliedSignificationDiagnostic de tâche; la spécification enregistrée ne déclare aucune liste énumérée de codes d’erreur.
Champcreations[].urlTypestring|string[]SignificationChaque URL vidéo terminée sélectionnée est remplacée par une URL signée appartenant à Ailoot.
Champcreations[].video.durationTypenumber when suppliedSignificationDurée vidéo retournée; vérifiez le résultat terminé réel.
Champcreations[].video.fpsTypeinteger when suppliedSignificationFréquence d’images retournée; aucune fréquence fixe n’est promise.
Champcreations[].video.resolution.widthTypeinteger when suppliedSignificationLargeur de sortie retournée en pixels.
Champcreations[].video.resolution.heightTypeinteger when suppliedSignificationHauteur de sortie retournée en pixels.
Erreurs et étapes suivantes
RéponseConditionÉtape suivante
Réponse400 · invalid_request_errorConditionJSON ou modèle invalide, chaînes requises manquantes ou vides, ou indice de contenu invalide.Étape suivante
Réponse401 · authentication_errorConditionClé API Ailoot invalide.Étape suivante
Réponse403 · permission_errorConditionLe groupe de la clé API n’est pas autorisé à utiliser cette route média.Étape suivante
Réponse404 · not_found_errorConditionLa tâche d’origine ou la sortie demandée est absente ou n’appartient pas au même utilisateur, à la même clé API ou au même groupe.Étape suivante
Réponse502 · result_pending_checkConditionL’envoi initial ou son état est incomplet ou ne peut pas être rapproché des données disponibles; conservez l’identifiant d’origine et ne soumettez pas la demande de nouveau.Étape suivante
Réponse503 · result_pending_checkConditionLa liaison d’origine, la route ou le média appartenant à votre compte est encore en cours de vérification; poursuivez la vérification de cette opération d’origine.Étape suivante
Réponse503 · server_errorConditionLe service média ou le stockage de la tâche d’origine n’est pas disponible.Étape suivante

Alias

Alias du modèle

Ailoot Ultra viduq2

Alias des chemins de méthode

/v1/videos/generations

ID d’appel associés

viduq2

FAQ · Vidu: Q2 Text-to-Video
Quelles entrées et quels résultats sont disponibles ?

POST /v1/videos · viduq2: text → video

Quels champs la requête utilise-t-elle ?

POST /v1/videos · viduq2: model, prompt, duration, seed, aspect_ratio, resolution, style, movement_amplitude

Quelles limites s’appliquent ?

POST /v1/videos · viduq2: duration.minimum: 1; duration.maximum: 10

Plus de détails

Connectez Ailoot à Claude Code, OpenCode, Hermes ou à votre application.

L’entreprise et son portefeuille de projets

L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.

Achetez des tokens à prix réduit.

Une remise d’abonnement pour le travail régulier. Des codes promo jusqu’à 50% sur l’achat de tokens.

Abonnement
Choisissez une offre à tarif réduit pour vos requêtes régulières.
Code promo jusqu’à 50%
Saisissez le code à l’achat. Le prix est recalculé selon la promotion en cours.
Dépenses dans l’historique
Modèle, tokens et montant sont enregistrés pour chaque requête.

Choisir un abonnement · Voir les prix des modèles

Connectez l’API au produit que vous vendez.

SaaS, applications et bots selon l’offre officielle et le contrat de licence Ailoot. Pour la revente, demandez une licence revendeur.

Application commerciale
Intégrez la génération de texte, d’images, de vidéo et de son aux fonctions payantes de votre service.
Licence revendeur
Envoyez la description du projet et le mode d’accès. Demandez des conditions écrites d’utilisation et de revente.
Documents sur le site
L’offre officielle, le contrat de licence et la politique de traitement des données sont accessibles avant connexion.

Demander une licence revendeur · Offre officielle et contrat de licence