Vidu: Q2 Text-to-Video
Vidu Q2 erstellt Video aus einer textlichen Szenenbeschreibung, mit einer Dauer von 1–10 Sekunden, einer Ausgabe in 540p, 720p oder 1080p und fünf Seitenverhältnissen. Dieses konkrete Profil viduq2 verwendet den Prompt für Stil und Bewegung und liefert sein Ergebnis über eine asynchrone Aufgabe.
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
Vidu Q2 erstellt Video aus einer schriftlich beschriebenen Szene über das mit viduq2 ausgewählte Text-zu-Video-Profil. Erforderliche Eingaben sind die genaue Modellkennung und ein Prompt, der die Szene beschreibt. Nutzen Sie es für ein kurzes Produktkonzept, eine Übersichtsaufnahme oder eine Figurenaktion, deren Erscheinungsbild und Bewegung sich in Worten festlegen lassen. Diese konfigurierte Methode ist Text-zu-Video; ihre Beschreibung ordnet dem Selektor keinen separaten Bildreferenz- oder Videobearbeitungsmodus zu.
Bauen Sie den Auftrag um eine sichtbare Abfolge auf. Benennen Sie Motiv, Ort, Aktion, Einstellungsgröße, Kamerabewegung und Schlusskomposition. Beschreiben Sie bei einem Produktkonzept ein Objekt auf einer Tischplatte, Licht, das über sein Material wandert, und eine langsame Kameraannäherung, die bei einem erkennbaren Detail endet. Führen Sie bei einer Ortsszene zunächst die Umgebung ein, bevor Sie sich dem Schwerpunkt nähern. Stimmen Sie die Aktion auf die gewählte Cliplänge ab, damit die Szene Platz für das beabsichtigte Ende besitzt.
Der Prompt ist auf 2.000 Zeichen begrenzt. Nennen Sie zuerst das wesentliche Motiv und die Aktion und ergänzen Sie dann Beleuchtung, Material, Umgebung und Kameradetails, die das gewünschte Ergebnis beeinflussen. Geben Sie den visuellen Stil im Prompt an. Laut Q2-spezifischem Leitfaden haben die separaten Parameter style und movement_amplitude bei diesem Modell keine Wirkung. Die Voreinstellung general oder anime und die Optionen zur Bewegungsamplitude ersetzen daher keine klare Szenenbeschreibung.
Die modellspezifische Dauereinstellung akzeptiert ganze Sekunden von eins bis zehn. Die Q2-spezifischen Auflösungsoptionen sind 540p, 720p und 1080p, wobei 720p als dokumentierter Standard gilt. Wählen Sie Dauer und Auflösung gemeinsam nach Aktion und Verwendungszweck. Eine kurze Enthüllung und eine längere Bewegung benötigen unterschiedliches Timing. Eine längere angeforderte Dauer sollte der sichtbaren Abfolge dienen, statt lediglich einen unveränderten Auftrag zu strecken. Prüfen Sie bei der Vorbereitung der abschließenden Platzierung die tatsächlichen Abmessungen und die Länge des zurückgegebenen Clips.
Die dokumentierten Optionen für aspect_ratio sind 16:9, 9:16, 3:4, 4:3 und 1:1, standardmäßig 16:9. Der Leitfaden schließt 3:4 und 4:3 ausdrücklich für die Q2-Familie ein. Wählen Sie das Format vor der Generierung und beschreiben Sie eine dazu passende Komposition: Halten Sie das Hauptmotiv im Hochformat gut erkennbar oder nutzen Sie die Breite eines Querformats für die umgebende Szenerie. Lassen Sie die Schlussansicht klar genug für die vorgesehene Seite, Präsentation oder spätere Ergänzung von Beschriftungen.
Das Feld seed steuert Variationen. Wird es weggelassen oder 0 übergeben, wird ein zufälliger Wert gewählt; ein Wert ungleich null wählt die dokumentierte Option mit festem seed für eine wiederholbare Generierung. Bewahren Sie den zurückgegebenen seed beim Versionsvergleich zusammen mit Prompt und Einstellungen. Der gemeinsame Bedienungsablauf dokumentiert außerdem die Steuerungen audio und off_peak ausdrücklich für Q3-Modelle. Diese Q3-Optionen sind diesem Q2-Profil nicht als Fähigkeiten zugeordnet. Planen Sie diese Anfrage anhand ihrer dokumentierten Texteingabe und Videoausgabe.
Die Generierung erfolgt asynchron. Das Absenden liefert task_id und einen Anfangszustand, wobei created für eine neu erstellte Aufgabe verwendet wird. Bewahren Sie diese Aufgabenkennung, während Sie die Verarbeitung verfolgen. Die dokumentierte Ergebnisabfrage verwendet state=success für ein erfolgreiches Ergebnis und gibt ein Array creations zurück. Jeder Eintrag enthält seine Video-URL in creations[].url. Speichern Sie jedes zurückgegebene Video, statt anzunehmen, dass eine Aufgabe immer genau ein einzelnes Ergebnis enthält.
Die Ergebnisdokumentation meldet außerdem die tatsächliche Videodauer, fps sowie die Auflösung als Breite und Höhe. Bewahren Sie diese gemeldeten Werte zusammen mit dem fertigen Clip, statt die Bildrate oder Abmessungen eines Beispiels als feste Q2-Spezifikation zu behandeln. Die Antwort auf die Aufgabenerstellung enthält neben der Anfragekonfiguration einen Wert credits. Bewahren Sie diese gemeldeten Aufgabenmetadaten und die Kennung der abgeschlossenen Aufgabe zusammen mit dem Ergebnis, damit jedes Video mit seinen Generierungseinstellungen verknüpft bleibt.
Prüfen Sie die gesamte Sequenz anhand des ursprünglichen Auftrags: Erscheinungsbild des Motivs, Objektform, Bewegungsrichtung, Kamerakontinuität und beabsichtigte Schlussansicht. Benennen Sie für eine Überarbeitung das konkrete Detail, das den Auftrag verfehlt hat, und bewahren Sie die erfolgreichen Teile der Szene. Halten Sie Prompt, genauen Selektor, Einstellungen, Aufgabenkennung und fertige Videos zusammen, damit ein späterer Vergleich auf den tatsächlichen Ergebnissen beruht.
Ailoot Ultra · Videos POST /v1/videos viduq2
viduq2Einstieg
Vidu Q2 erstellt Video aus einer textlichen Szenenbeschreibung, mit einer Dauer von 1–10 Sekunden, einer Ausgabe in 540p, 720p oder 1080p und fünf Seitenverhältnissen. Dieses konkrete Profil viduq2 verwendet den Prompt für Stil und Bewegung und liefert sein Ergebnis über eine asynchrone Aufgabe.
- Zulässige Eingaben
- Text
- Ergebnisse
- Video
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Videos POST /v1/videos
- Eingabe
text- Ausgabe
video
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits viduq2 | Standard— |
Feldprompt | Typstring | AnforderungErforderlich | Werte und Limits Bedingungen: Beschreiben Sie die zu generierende Szene. Die dokumentierte Grenze beträgt 2000 Zeichen; Ailoot prüft auf eine nicht leere Zeichenfolge und behält den Text bei. | Standard— |
Feldduration | Typinteger | AnforderungOptional | Werte und Limits Minimum: 1 Maximum: 10 Bedingungen: Die modellspezifische viduq2-Beschreibung nennt 1–10 ganze Sekunden. Eine modellspezifische Standarddauer ist nicht dokumentiert. Einheit: Sekunden | Standard— |
Feldseed | Typstring | AnforderungOptional | Werte und Limits Bedingungen: Lassen Sie das Feld weg oder senden Sie die Zeichenfolge "0" für Zufälligkeit. Ein angegebener seed ungleich null wählt das dokumentierte Verhalten mit festem seed; ein Zahlenbereich ist nicht angegeben. | Standard— |
Feldaspect_ratio | Typstring | AnforderungOptional | Werte und Limits 16:9, 9:16, 3:4, 4:3, 1:1 | Standard16:9 |
Feldresolution | Typstring | AnforderungOptional | Werte und Limits 540p, 720p, 1080p Bedingungen: Die modellspezifische viduq2-Liste dokumentiert diese Stufen für 1–10 Sekunden. Eine gemeinsame Aufzählung und Tabelle nennen auch 360p; dessen Anwendbarkeit widerspricht dieser Liste und wird hier nicht zugesichert. | Standard720p |
Feldstyle | Typstring | AnforderungOptional | Werte und Limits general, anime Bedingungen: Die gemeinsame Anfrage akzeptiert dieses Feld, laut Dokumentation hat es bei viduq2 jedoch ausdrücklich keine Wirkung. | Standardgeneral |
Feldmovement_amplitude | Typstring | AnforderungOptional | Werte und Limits auto, small, medium, large Bedingungen: Die gemeinsame Anfrage akzeptiert dieses Feld, laut Dokumentation hat es bei q2-Modellen jedoch ausdrücklich keine Wirkung. | Standardauto |
Kombinationen von Eingabematerialien
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragmodel, prompt |
Parameteroptional | Vertragduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Parametermaterial_types | Vertragtext |
Parameteradditional_properties | Vertragtrue |
Parametervalidation_scope | VertragAiloot validiert die nicht leeren model/prompt-Zeichenfolgen. Die nachstehenden optionalen Typen und Limits bilden den dokumentierten Anfragevertrag; andere Anfragefelder bleiben für das ausgewählte Modell erhalten. |
Methodenaliasnamen: /v1/videos/generations
Lebenszyklus: 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
Erstellen Sie den Vorgang einmal und bewahren Sie die zurückgegebene öffentliche id und polling_url auf.
Fragen Sie den ursprünglichen Vorgang regelmäßig ab und lesen Sie state; erst success zusammen mit einem Ihnen zugeordneten creations[].url-Ergebnis kennzeichnet den Abschluss.
Laden Sie jede zurückgegebene URL eines Ihnen zugeordneten Videos herunter; leiten Sie aus dem Beispiel keine feste Ausgabeanzahl, Dauer oder Bildrate ab.
Tarife
So wird die endgültige Gebühr berechnet
Die angezeigten Tarife dienen zur Kostenschätzung vor der Generierung. Der endgültige Betrag wird aus den für die ursprüngliche Generierung erfassten Kosten berechnet. Die gemessene Ausgabedauer und prognostizierte Mengen sind nicht die endgültige abrechenbare Menge.
Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.
- Schnellmodus
- Nicht angegeben Wenn der Schnellmodus ausgewählt ist
- Flex-Modus
- Nicht angegeben Wenn der Modus flex ausgewählt ist
- Maximaler Denkaufwand
- Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird
Geschätzte Tarife zum Vergleich
Preise nach Konfiguration
Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.
| Konfiguration | Tarifstaffel | Prognostizierte Menge | Gebühr |
|---|---|---|---|
| KonfigurationBasistarife für Tokens | TarifstaffelGrundtarif | Prognostizierte Menge— | Gebühr Eingabe · Eingabetoken · Schätzung nur zum Vergleich — / 1K Tokens Ausgabe · Ausgabetoken · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · Cache lesen · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · In Cache schreiben · Schätzung nur zum Vergleich — / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde · Schätzung nur zum Vergleich — / 1K Tokens |
| KonfigurationGeschätzte Generierungskosten | Tarifstaffel— | Prognostizierte MengeSchätzung für eine Generierung | Gebühr Ausgabe · Geschätzte Generierungskosten · Schätzung nur zum Vergleich $5.12 Schätzung vor der Generierung Diese Schätzung ist weder eine zusätzliche Gebühr noch ein fester Tarif für die abgeschlossene Generierung. |
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot Ultra · Videos
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
Ergebnisse abrufen und speichern
Ailoot Ultra · Videos
JSON behält den nativen state und das creations-Array bei und ergänzt die öffentliche id/provider_task_id/polling_url. Ausgewählte Video-URLs sind vor der Veröffentlichung leer und werden nach dem Abschluss zu signierten URLs im Eigentum von Ailoot.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Alle fertiggestellten Ergebnisse aufbewahren
Speichern Sie jedes fertiggestellte Video oder jede zurückgegebene Datei; rufen Sie jede tatsächlich zurückgegebene Datei-URL ab.
Laden Sie jede tatsächlich zurückgegebene URL in creations[].url herunter; ein Inhaltsindex bezeichnet eine tatsächlich zurückgegebene Ausgabe.
Wenn die ursprüngliche Antwort geprüft werden muss
Die festgelegte Deklaration führt keinen endgültigen Fehlerzustand auf. Bewahren Sie die ursprüngliche Antwort/Header/id auf und prüfen Sie bei jedem unbekannten Zustand oder result_pending_check-Fehler denselben Vorgang; übermitteln Sie eine Erstellung mit unbekanntem Ergebnis niemals erneut.
Antwortfelder
| Feld | Typ | Bedeutung |
|---|---|---|
Feldid | Typstring | BedeutungZurückgegebene öffentliche Ailoot-Aufgaben- oder Vorgangskennung. |
Feldprovider_task_id | Typstring | BedeutungUrsprüngliche Aufgabenkennung, getrennt von der öffentlichen id. |
Feldpolling_url | Typstring | BedeutungZurückgegebener Ailoot-Abfragepfad für die ursprüngliche Aufgabe. |
Feldtask_id | Typstring when supplied | BedeutungUrsprüngliche Kennung aus der Erstellungsantwort. |
Feldstate | Typstring when supplied | BedeutungNativer Aufgabenstatus: created für den festgelegten ausstehenden Zustand und success für den Abschluss. |
Felderr_code | Typstring when supplied | BedeutungAufgabendiagnose; die gespeicherte Spezifikation enthält keine aufgezählte Liste von Fehlercodes. |
Feldcreations[].url | Typstring|string[] | BedeutungJede ausgewählte URL eines fertiggestellten Videos wird durch eine signierte URL im Eigentum von Ailoot ersetzt. |
Feldcreations[].video.duration | Typnumber when supplied | BedeutungZurückgegebene Videodauer; prüfen Sie das tatsächliche fertiggestellte Ergebnis. |
Feldcreations[].video.fps | Typinteger when supplied | BedeutungZurückgegebene Bildrate; eine feste Bildrate wird nicht zugesagt. |
Feldcreations[].video.resolution.width | Typinteger when supplied | BedeutungZurückgegebene Ausgabebreite in Pixeln. |
Feldcreations[].video.resolution.height | Typinteger when supplied | BedeutungZurückgegebene Ausgabehöhe in Pixeln. |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungUngültiges JSON/Modell, fehlende oder leere Pflichtzeichenfolgen oder ungültiger Inhaltsindex. | Nächster Schritt |
Antwort401 · authentication_error | BedingungUngültiger Ailoot API-Schlüssel. | Nächster Schritt |
Antwort403 · permission_error | BedingungDie Gruppe des API-Schlüssels ist für diese Medienroute nicht zugelassen. | Nächster Schritt |
Antwort404 · not_found_error | BedingungDie ursprüngliche Aufgabe oder die angeforderte Ausgabe fehlt oder ist nicht demselben Benutzer/API-Schlüssel/derselben Gruppe zugeordnet. | Nächster Schritt |
Antwort502 · result_pending_check | BedingungDie ursprüngliche Übermittlung oder der Status ist unvollständig oder lässt sich nicht abgleichen; bewahren Sie die ursprüngliche ID auf und übermitteln Sie die Anfrage nicht erneut. | Nächster Schritt |
Antwort503 · result_pending_check | BedingungDie ursprüngliche Zuordnung, Route oder die Ihnen zugeordneten Medien werden noch geprüft; setzen Sie die Prüfung dieses ursprünglichen Vorgangs fort. | Nächster Schritt |
Antwort503 · server_error | BedingungDer Mediendienst oder der Speicher der ursprünglichen Aufgabe ist nicht verfügbar. | Nächster Schritt |
Aliasnamen
Modellaliasnamen
Ailoot Ultra viduq2
Aliasnamen für Methodenpfade
/v1/videos/generations
Zugehörige Aufrufer-IDs
FAQ · Vidu: Q2 Text-to-Video
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/videos·viduq2:text→video- Welche Felder verwendet die Anfrage?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Welche Grenzen gelten?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10