Alibaba: Wan 2.7
Alibaba Wan 2.7 tworzy wideo z dźwiękiem na podstawie tekstu, obrazu początkowego i końcowego lub referencji wizualnych. Proces obrazowy potrafi też kontynuować klip źródłowy, korzystając z żądanego czasu całkowitego. Producent podaje MP4 w 720p lub 1080p przy 30 kl./s: 2–15 sekund dla trybów tekstowych/obrazowych i do 10 sekund dla generowania z referencji.
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.
Alibaba Wan 2.7 to rodzina modeli generowania wideo z nazwanymi profilami tworzenia z tekstu, z obrazu i z referencjami. Producent dokumentuje sceny ze zsynchronizowanym dźwiękiem i opowieści z wieloma ujęciami, a proces obrazowy dodaje generowanie z pierwszej i ostatniej klatki oraz kontynuację początkowego filmu. Użytecznym rezultatem jest krótki klip z dźwiękiem, na przykład przejście z produktem, zwięzła historia lub kontynuacja pasująca do istniejącego ujęcia. Wybierz tryb według materiału źródłowego i potrzebnej kontroli nad początkiem lub zakończeniem.
Przy generowaniu z tekstu opisz temat, otoczenie, akcję, kamerę, styl i dźwięk. Storyboard może wskazywać każde ujęcie i przedział czasu, a opis pojedynczego ujęcia powinien zaznaczać ciągłość akcji. Przewodnik promptów Wan 2.7 pozwala modelowi interpretować strukturę ujęć z opisu, zamiast używać sterowania shot_type z wersji 2.6. Obecne tekstowe API przyjmuje prompty po chińsku lub angielsku do 5000 znaków oraz osobny prompt negatywny do 500 znaków; nadmiar tekstu jest obcinany. W tym limicie jasno określ najważniejszą akcję i ograniczenia.
Generowanie z obrazu pierwszej klatki animuje dostarczony obraz początkowy. Generowanie z pierwszej i ostatniej klatki określa także punkt końcowy i łączący je ruch. Przewodnik obrazowy 2.7 obsługuje sterujące źródło dźwięku obok tych kombinacji klatek. Przygotuj oba punkty przedstawiające tę samą scenę i zamierzony obiekt lub postać oraz opisz przejście, zamiast prosić model o ponowną interpretację obu obrazów jako niepowiązanych referencji stylu. Wynik przybliża proporcje pierwszego obrazu; przewodnik traktuje rozdzielczość jako poziom liczby pikseli i odpowiednio zaokrągla zakodowane wymiary.
Kontynuacja wideo zaczyna się od klipu źródłowego i może również wykorzystywać obraz końcowy. Żądany czas trwania oznacza cały zwracany film, wraz z oryginalnym segmentem. Przykład z przewodnika łączy dwusekundowe źródło z dziesięcioma sekundami nowej treści w dwunastosekundowy wynik. Przygotuj końcową akcję źródła i opisz dalszy przebieg, aby kamera i obiekt lub postać kontynuowały ruch w spójnym kierunku. Oceń połączenie pod kątem wyglądu, ruchu, światła i dźwięku, zamiast sprawdzać wyłącznie nowo wygenerowane zakończenie.
Obecny osobny profil referencyjny producenta wykorzystuje obrazy lub wideo do kierowania wyglądem postaci, przedmiotów lub sceny. Jego przewodnik dopuszcza łącznie maksymalnie pięć referencyjnych obrazów i filmów oraz używa etykiet właściwych dla typu, takich jak Image 1 i Video 1. Opisz rolę każdego materiału i zamierzoną interakcję. W scenie opartej na referencjach pokaż postać z jednej referencji niosącą przedmiot z drugiej przez określone miejsce. Kadrowanie referencyjne różni się od generowania z pierwszej klatki: opis może ustanowić nową kompozycję, zamiast wymagać rozpoczęcia filmu od jednego dostarczonego obrazu.
Dla własnego dźwięku w generowaniu z tekstu udokumentowane formaty to WAV i MP3, czas trwania od dwóch do trzydziestu sekund i maksymalny rozmiar 15 MB. Wybrana długość filmu określa użyty fragment: dłuższy dźwięk jest do niej przycinany, a krótszy pozostawia ciszę w pozostałej części filmu. Przygotuj dokładny fragment audio należący do ujęcia i pozostaw przestrzeń na zamierzoną akcję wizualną. Bez dostarczonego pliku audio producent opisuje generowanie muzyki w tle lub efektów pasujących do sceny; sprawdź rzeczywisty dźwięk i żądaną mowę wraz z obrazem.
Obecna tabela modeli podaje MP4 w 720p lub 1080p przy 30 kl./s oraz wyniki tekstowe i obrazowe o długości od dwóch do piętnastu sekund. Osobny profil referencyjny jest ograniczony do dwóch–dziesięciu sekund. Generowanie z tekstu oferuje proporcje 16:9, 9:16, 1:1, 4:3 i 3:4. Zadania warunkowane obrazem korzystają z własnych reguł przybliżania proporcji źródła, dlatego przygotuj kadr wejściowy do zamierzonego zastosowania. Reguł czasu trwania ani proporcji z profilu referencyjnego nie należy podstawiać w miejsce procesu klatkowego lub kontynuacji.
Udokumentowany proces producenta jest asynchroniczny: identyfikator zadania śledzi przetwarzanie, a pomyślny wynik zawiera adres filmu. Dokumentacja podaje dwudziestoczterogodzinną ważność odnośników do wyników, dlatego zachowaj sam klip i materiały twórcze do oceny montażowej. Opcje przepisywania promptu, znaku wodnego i ziarna losowości należą do wybranego interfejsu. Producent podaje, że stałe ziarno może zwiększyć powtarzalność, ale nie gwarantuje identycznego wyniku. Porównaj zwrócony materiał z opisem, zamiast zakładać, że same ustawienia zachowują każdy szczegół.
W porównaniu z Wan 2.6 przewodnik obrazowy 2.7 dodaje wprost sterowanie pierwszą i ostatnią klatką oraz kontynuację wideo przez multimodalne media wejściowe. Wan 3.0 wprowadza inną wszechstronną strukturę i dłuższy limit generowania. Profil 2.7 zachowuje własne elementy sterowania i limity dla poszczególnych zadań. Oceń całą scenę pod kątem ciągłości postaci lub obiektu, zakotwiczenia klatek, tożsamości referencji, dialogu, ruchu i połączeń, a kolejną poprawkę dopasuj do rzeczywiście wykrytego problemu.
Ailoot Ultra · Wideo POST /v1/videos alibaba/wan-2.7
alibaba/wan-2.7Start
Alibaba Wan 2.7 tworzy wideo z dźwiękiem na podstawie tekstu, obrazu początkowego i końcowego lub referencji wizualnych. Proces obrazowy potrafi też kontynuować klip źródłowy, korzystając z żądanego czasu całkowitego. Producent podaje MP4 w 720p lub 1080p przy 30 kl./s: 2–15 sekund dla trybów tekstowych/obrazowych i do 10 sekund dla generowania z referencji.
- 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- Format wyjściowy
- mp4
- Liczba wyników
- Do 4 wyniks
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity alibaba/wan-2.7 | Domyślnie— |
Poleprompt | Typstring | WymaganieWymagane | Wartości i limity Maksymalna liczba bajtów UTF-8: 10 000 Wymagana treść inna niż białe znaki: Tak | Domyślnie— |
Poleduration | Typinteger | WymaganieWymagane | Wartości i limity 2, 3, 4, 5, 6, 7, 8, 9, 10 | Domyślnie— |
Poleresolution | Typstring | WymaganieWymagane | Wartości i limity 720p | Domyślnie— |
Poleaspect_ratio | Typstring | WymaganieWymagane | Wartości i limity 16:9, 9:16, 1:1, 4:3, 3:4 | Domyślnie— |
Polegenerate_audio | Typboolean | WymaganieWymagane | Wartości i limity false, true | Domyślnie— |
Kombinacje materiałów wejściowych
Tekst na wideo · Wymagane: prompt
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, prompt, duration, resolution, aspect_ratio, generate_audio |
Parametradditional_properties | Kontraktfalse |
Parametrparameters | Kontrakt{"name":"model","type":"string","required":true,"enum":["alibaba/wan-2.7"]}, {"name":"prompt","type":"string","required":true,"non_whitespace":true,"max_utf8_bytes":10000}, {"name":"duration","type":"integer","required":true,"enum":[2,3,4,5,6,7,8,9,10]}, {"name":"resolution","type":"string","required":true,"enum":["720p"]}, {"name":"aspect_ratio","type":"string","required":true,"enum":["16:9","9:16","1:1","4:3","3:4"]}, {"name":"generate_audio","type":"boolean","required":true,"enum":[false,true]} |
Parametrmaterial_types | Kontrakttext |
Aliasy metody: /v1/videos/generations, /videos, /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
Zachowaj kompletną odpowiedź i pierwotne zwrócone identyfikatory.
Nigdy nie ponawiaj żądania utworzenia o nieznanym wyniku.
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ść | Opcje generowania dźwięku | Rozdzielczość | Jednostka rozliczeniowa | Opłata |
|---|---|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Opcje generowania dźwięku— | Rozdzielczość— | Jednostka rozliczeniowa— | 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 |
| KonfiguracjaUltra | Tabela stawek— | Przewidywana ilośćŻądana konfiguracja; tylko szacunek. | Opcje generowania dźwiękuBez dźwięku · Z dźwiękiem | Rozdzielczość720p | Jednostka rozliczeniowaza sekundę wideo wyjściowego | Opłata Wyjście · szacowana sekunda wideo · Szacunek tylko do porównania $0.2 za sekundę wideo wyjściowego Wyświetlana stawka szacuje koszt przed generowaniem. Końcowa opłata jest obliczana na podstawie kosztu zapisanego dla pierwotnego generowania. Fizyczny czas trwania wideo nie jest wielkością rozliczeniową. |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Opcje generowania dźwięku— | Rozdzielczość— | Jednostka rozliczeniowa— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.4 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 →
Szczegóły taryfy referencyjnej
Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.
Referencje cenowe konfiguracji wideo
Ceny według konfiguracji
| Konfiguracja | Warunki rozliczania | Opłata |
|---|---|---|
| KonfiguracjaCena wideo | Warunki rozliczaniaW tym kluczu cenowym nie zadeklarowano dodatkowego warunku. | Opłata Wyjście · Cena wideo $0.2 za sekundę wideo Opublikowana cena referencyjna dla pokazanej konfiguracji. Ostateczne opłaty wynikają z faktycznie rozliczonej konfiguracji. |
Przykładowe żądania
Ailoot Ultra · Wideo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/wan-2.7", "prompt": "a calm greenhouse", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true}')
Path('request.json').write_text(json.dumps(p,ensure_ascii=False))
PY_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
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Odbieranie i zapisywanie wyników
Ailoot Ultra · Wideo
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Sprawdź status zadania
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Inne odczyty treści
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Zachowaj wszystkie ukończone wyniki
Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.
Zachowaj każdy podpisany URL należący do użytkownika z ukończonego data[] oraz pełne metadane statusu. Zapisz każdy wynik, w tym wygenerowany dźwięk. Poprawna ścieżka dźwiękowa AAC może występować nawet przy generate_audio=false; zachowaj kompletny oryginalny MP4 wraz z tym dźwiękiem.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Odczytuj istniejące pierwotne zadanie; nigdy nie ponawiaj wysłania o nieznanym wyniku.
Maksymalna liczba wyników: 4.
Pola odpowiedzi
| Pole | Typ | Znaczenie |
|---|---|---|
Poleid | Typstring | Znaczenie— |
Poleobject | Typstring | Znaczenie— |
Polemodel | Typstring | Znaczenie— |
Polestatus | Typstring | Znaczenie— |
Poledata[] | Typsigned content URL | Znaczenie— |
Polecharge_pending_check | Typboolean | Znaczenie— |
Poleerror.code | Typstring | Znaczenie— |
Poleerror.message | Typstring | Znaczenie— |
Poleoperation_id | Typstring | ZnaczenieOdpowiedź HTTP503 result_pending_check pierwotnego statusu lub treści: ten sam pierwotny publiczny identyfikator operacji wideo w polu id. |
Poleerror.type | Typstring | Znaczenieserver_error przy HTTP503 result_pending_check. |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekOdczyt surowej treści żądania kończy się błędem przed parsowaniem profilu wideo | Następny krokZachowaj zwróconą odpowiedź i popraw nieczytelną treść żądania. |
Odpowiedź422 · price_unavailable | WarunekNie można sparsować dokładnego profilu wideo albo kompletny sparsowany profil nie ma gotowej, dokładnie dopasowanej karty cenowej | Następny krokZachowaj odpowiedź; użyj kompletnego, dokładnie dopuszczonego profilu i jego opublikowanej karty. Ta gałąź wykonuje się przed wysłaniem do dostawcy. |
Odpowiedź409 · video_not_ready | WarunekTreść pierwotnego wyniku nie jest jeszcze dostępna | Następny krokOdpytuj pierwotny zwrócony identyfikator i przestrzegaj Retry-After. |
Odpowiedźserver_error | WarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzenia | Następny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia. |
Odpowiedź503 · result_pending_check | WarunekGET pierwotnego statusu lub treści: zadanie nie jest opublikowane, pierwotne zadanie nie ma stanu failed/cancelled/expired, a stan lokalny to unknown lub status pierwotnego zadania to completed. | Następny krokZachowaj pierwotne id i operation_id (ten sam publiczny identyfikator wideo), odpowiedź i nagłówki; odczytuj wyłącznie pierwotny status lub treść. Nigdy nie wysyłaj nowego żądania generowania. |
Aliasy
Aliasy modelu
Ailoot Ultra alibaba/wan-2.7
Aliasy ścieżek metod
/v1/videos/generations, /videos, /videos/generations
Powiązane ID modeli
FAQ · Alibaba: Wan 2.7
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·alibaba/wan-2.7:text→video- Jakich pól używa żądanie?
POST /v1/videos·alibaba/wan-2.7:model,prompt,duration,resolution,aspect_ratio,generate_audio