Vidu: Q2 Text-to-Video
Vidu Q2 tworzy wideo z tekstowego opisu sceny, z długością 1–10 sekund, wyjściem 540p, 720p lub 1080p i pięcioma proporcjami obrazu. Ten dokładny profil viduq2 używa promptu do stylu i ruchu oraz zwraca wynik przez zadanie asynchroniczne.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Vidu Q2 tworzy wideo z opisu sceny przez profil tekst-do-wideo wybierany jako viduq2. Wymagane dane wejściowe to dokładny identyfikator modelu i prompt opisujący scenę. Użyj go do krótkiej koncepcji produktu, widoku przedstawiającego miejsce lub działania postaci, których wygląd i ruch można określić słowami. Ta skonfigurowana metoda generuje wideo z tekstu; jej opis nie przypisuje selektorowi osobnego trybu odniesienia obrazowego ani edycji wideo.
Zbuduj opis wokół widocznej sekwencji. Określ obiekt, miejsce, działanie, wielkość planu, ruch kamery i końcową kompozycję. Dla koncepcji produktu opisz przedmiot na blacie, światło przesuwające się po jego materiale i powolny najazd kamery kończący się na rozpoznawalnym szczególe. Dla sceny lokalizacji pokaż otoczenie przed przejściem do punktu skupienia. Dopasuj działanie do wybranej długości klipu, aby scena miała miejsce na zamierzone zakończenie.
Limit promptu wynosi 2 000 znaków. Umieść najważniejszy obiekt i działanie na początku, a następnie dodaj szczegóły oświetlenia, materiału, otoczenia i kamery, które zmieniają pożądany wynik. Określ styl wizualny w prompcie. Poradnik dotyczący Q2 podaje, że osobne parametry style i movement_amplitude nie działają dla tego modelu, więc ustawienia general lub anime i opcje amplitudy ruchu nie zastępują jasnego opisu sceny.
Ustawienie długości dla tego modelu przyjmuje pełne sekundy od jednej do dziesięciu. Opcje rozdzielczości dla Q2 to 540p, 720p i 1080p, z 720p jako udokumentowaną wartością domyślną. Wybierz długość i rozdzielczość razem, zgodnie z działaniem i miejscem docelowym. Krótkie odsłonięcie i dłuższy ruch wymagają innego rozłożenia w czasie; zwiększenie żądanej długości powinno służyć widocznej sekwencji, a nie tylko rozciągać niezmieniony opis. Sprawdź rzeczywiste wymiary i długość zwróconego klipu podczas przygotowywania końcowego umieszczenia.
Udokumentowane opcje aspect_ratio to 16:9, 9:16, 3:4, 4:3 i 1:1, z 16:9 jako wartością domyślną. Poradnik wyraźnie uwzględnia 3:4 i 4:3 dla rodziny Q2. Wybierz kadr przed generowaniem i opisz dopasowaną kompozycję: zachowaj czytelność głównego obiektu w pionowym widoku lub wykorzystaj szerokość poziomego kadru na otoczenie. Zadbaj o wystarczająco wyraźny widok końcowy dla zamierzonej strony, prezentacji lub późniejszego dodania napisów.
Pole seed kontroluje zmienność. Pominięcie go lub podanie 0 wybiera wartość losową; wartość niezerowa wybiera udokumentowaną opcję stałego ziarna do powtarzalnego generowania. Zachowaj zwrócone ziarno z promptem i ustawieniami przy porównywaniu wersji. Wspólna operacja dokumentuje również ustawienia audio i off_peak przeznaczone konkretnie dla modeli Q3. Te opcje Q3 nie są możliwościami przypisanymi temu profilowi Q2; zaplanuj żądanie wokół jego udokumentowanego wejścia tekstowego i wyjścia wideo.
Generowanie jest asynchroniczne. Wysłanie żądania zwraca task_id oraz początkowy stan, z created używanym dla nowo utworzonego zadania. Zachowaj tę tożsamość zadania podczas śledzenia przetwarzania. Udokumentowane zapytanie o wynik używa state=success dla pomyślnego wyniku i zwraca tablicę creations. Każdy element ma adres URL swojego wideo w creations[].url; zapisz każde zwrócone wideo zamiast zakładać, że zadanie zawsze zawiera dokładnie jeden wygenerowany materiał.
Dokumentacja wyniku raportuje również rzeczywistą długość wideo, fps oraz szerokość i wysokość rozdzielczości. Zachowaj te zgłoszone wartości z ukończonym klipem zamiast traktować liczbę klatek lub wymiary z przykładu jako stałą specyfikację Q2. Odpowiedź na utworzenie zadania zawiera wartość credits obok konfiguracji żądania. Zachowaj te zgłoszone metadane zadania i tożsamość ukończonego zadania z wynikiem, aby każde wideo pozostało powiązane ze swoimi ustawieniami generowania.
Sprawdź całą sekwencję względem pierwotnego opisu: wygląd obiektu, jego kształt, kierunek ruchu, ciągłość kamery i zamierzony widok końcowy. Przy poprawce wskaż konkretny szczegół, który odbiegł od opisu, i zachowaj udane części sceny. Przechowuj prompt, dokładny selektor, ustawienia, tożsamość zadania i ukończone wideo razem, aby późniejsze porównanie opierało się na rzeczywistych artefaktach.
Ailoot Ultra · Wideo POST /v1/videos viduq2
viduq2Start
Vidu Q2 tworzy wideo z tekstowego opisu sceny, z długością 1–10 sekund, wyjściem 540p, 720p lub 1080p i pięcioma proporcjami obrazu. Ten dokładny profil viduq2 używa promptu do stylu i ruchu oraz zwraca wynik przez zadanie asynchroniczne.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Wideo POST /v1/videos
- Wejście
text- Wyjście
video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity viduq2 | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Warunki: Opisz generowaną scenę. Udokumentowany limit wynosi 2000 znaków; Ailoot sprawdza, czy ciąg znaków jest niepusty, i zachowuje jego treść. | Domyślnie— |
Poleduration | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Maksimum: 10 Warunki: Opis modelu viduq2 określa czas od 1 do 10 pełnych sekund. Nie udokumentowano domyślnego czasu trwania dla tego modelu. Jednostka: sekundy | Domyślnie— |
Poleseed | Typstring | WymaganieOpcjonalne | Wartości i limity Warunki: Pomiń lub wyślij ciąg znaków "0", aby użyć losowości. Podana niezerowa wartość seed wybiera udokumentowane działanie ze stałą wartością seed; nie określono zakresu liczbowego. | Domyślnie— |
Poleaspect_ratio | Typstring | WymaganieOpcjonalne | Wartości i limity 16:9, 9:16, 3:4, 4:3, 1:1 | Domyślnie16:9 |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity 540p, 720p, 1080p Warunki: Lista dla modelu viduq2 dokumentuje te progi dla czasu od 1 do 10 sekund. Wspólny enum i tabela wymieniają również 360p; jego zastosowanie jest sprzeczne z tą listą i nie jest tu potwierdzane. | Domyślnie720p |
Polestyle | Typstring | WymaganieOpcjonalne | Wartości i limity general, anime Warunki: Wspólne żądanie akceptuje to pole, ale dokumentacja wyraźnie wskazuje, że nie wpływa ono na viduq2. | Domyślniegeneral |
Polemovement_amplitude | Typstring | WymaganieOpcjonalne | Wartości i limity auto, small, medium, large Warunki: Wspólne żądanie akceptuje to pole, ale dokumentacja wyraźnie wskazuje, że nie wpływa ono na modele q2. | Domyślnieauto |
Kombinacje materiałów wejściowych
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt |
Parametroptional | Kontraktduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Parametrmaterial_types | Kontrakttext |
Parametradditional_properties | Kontrakttrue |
Parametrvalidation_scope | KontraktAiloot sprawdza, czy ciągi znaków model/prompt są niepuste. Opcjonalne typy i limity poniżej stanowią udokumentowany kontrakt żądania; pozostałe pola żądania są zachowywane dla wybranego modelu. |
Aliasy metody: /v1/videos/generations
Cykl życia: 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
Utwórz raz i zachowaj zwrócone publiczne id oraz polling_url.
Odpytuj pierwotną operację i odczytuj state; warunkiem ukończenia jest success oraz wynik creations[].url należący do użytkownika.
Pobierz każdy zwrócony URL wideo należącego do użytkownika; na podstawie przykładu nie zakładaj stałej liczby wyników, czasu trwania ani liczby klatek na sekundę.
Cennik
Jak obliczana jest ostateczna opłata
Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Szacunkowe stawki do porównania
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Przewidywana ilość | Opłata |
|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $5.12 szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Wideo
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
Odbieranie i zapisywanie wyników
Ailoot Ultra · Wideo
JSON zachowuje natywny state i tablicę creations oraz dodaje publiczne id/provider_task_id/polling_url. Wybrane adresy URL wideo są puste przed publikacją i stają się podpisanymi adresami URL należącymi do Ailoot po ukończeniu.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Zachowaj wszystkie ukończone wyniki
Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.
Pobierz każdy rzeczywiście zwrócony URL z creations[].url; indeks treści wskazuje jeden faktycznie zwrócony wynik.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Przypięta deklaracja nie wymienia żadnego końcowego stanu błędu. Zachowaj oryginalną odpowiedź, nagłówki i id oraz sprawdzaj tę samą operację przy każdym nierozpoznanym stanie lub błędzie result_pending_check; nigdy nie wysyłaj ponownie żądania utworzenia o nieznanym wyniku.
Pola odpowiedzi
| Pole | Typ | Znaczenie |
|---|---|---|
Poleid | Typstring | ZnaczenieZwrócony publiczny identyfikator zadania lub operacji Ailoot. |
Poleprovider_task_id | Typstring | ZnaczeniePierwotny identyfikator zadania, odrębny od publicznego id. |
Polepolling_url | Typstring | ZnaczenieZwrócona ścieżka odczytu Ailoot dla pierwotnego zadania. |
Poletask_id | Typstring when supplied | ZnaczeniePierwotny identyfikator obecny w odpowiedzi na utworzenie. |
Polestate | Typstring when supplied | ZnaczenieNatywny stan zadania: created dla przypiętego stanu oczekiwania i success po ukończeniu. |
Poleerr_code | Typstring when supplied | ZnaczenieDiagnostyka zadania; zapisana specyfikacja nie deklaruje zamkniętej listy kodów błędów. |
Polecreations[].url | Typstring|string[] | ZnaczenieKażdy wybrany URL ukończonego wideo jest zastępowany podpisanym adresem URL należącym do Ailoot. |
Polecreations[].video.duration | Typnumber when supplied | ZnaczenieZwrócony czas trwania wideo; sprawdź rzeczywisty ukończony wynik. |
Polecreations[].video.fps | Typinteger when supplied | ZnaczenieZwrócona liczba klatek na sekundę; nie gwarantuje się stałej liczby klatek na sekundę. |
Polecreations[].video.resolution.width | Typinteger when supplied | ZnaczenieZwrócona szerokość wyniku w pikselach. |
Polecreations[].video.resolution.height | Typinteger when supplied | ZnaczenieZwrócona wysokość wyniku w pikselach. |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowy JSON/model, brak wymaganych ciągów znaków lub są one puste, albo nieprawidłowy indeks treści. | Następny krok |
Odpowiedź401 · authentication_error | WarunekNieprawidłowy klucz API Ailoot. | Następny krok |
Odpowiedź403 · permission_error | WarunekGrupa klucza API nie ma uprawnień do tej ścieżki multimedialnej. | Następny krok |
Odpowiedź404 · not_found_error | WarunekPierwotne zadanie lub żądany wynik nie istnieje albo nie należy do tego samego użytkownika, klucza API lub grupy. | Następny krok |
Odpowiedź502 · result_pending_check | WarunekPierwotne wysłanie lub sprawdzenie statusu jest niekompletne albo nie można uzgodnić jego wyniku; zachowaj pierwotny identyfikator i nie wysyłaj żądania ponownie. | Następny krok |
Odpowiedź503 · result_pending_check | WarunekPowiązanie pierwotnego żądania, ścieżka lub multimedia należące do użytkownika są nadal sprawdzane; kontynuuj sprawdzanie tej pierwotnej operacji. | Następny krok |
Odpowiedź503 · server_error | WarunekUsługa multimedialna lub magazyn pierwotnych zadań są niedostępne. | Następny krok |
Aliasy
Aliasy modelu
Ailoot Ultra viduq2
Aliasy ścieżek metod
/v1/videos/generations
Powiązane ID modeli
FAQ · Vidu: Q2 Text-to-Video
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·viduq2:text→video- Jakich pól używa żądanie?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Jakie limity obowiązują?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10