ByteDance: Seedance 2.0
Seedance 2.0 generuoja ir redaguoja vaizdo įrašus, naudodamas tekstą, vaizdus bei vaizdo ir garso atskaitos įrašus. Jis gali tęsti esamą filmuotą medžiagą ir generuoti sinchronizuotą garsą; trukmė – 4–15 sekundžių, išvesties raiška – 480p arba 720p, o atskaitos medžiagos vaidmenys nurodomi aiškiai.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Seedance 2.0 generuoja vaizdo įrašą pagal rašytinę sceną arba vaizdų, vaizdo ir garso atskaitos medžiagos derinį. Tikslus identifikatorius doubao-seedance-2-0-260128 žymi standartinį 2.0 profilį. Dokumentuotos darbo eigos apima naujo vaizdo generavimą, esamos filmuotos medžiagos redagavimą ir pratęsimą. Atskaitos medžiaga perteikite išvaizdą, judėjimą, kameros kalbą ir garsą, tada nurodykite, kurias scenos dalis ji turi valdyti.
Tekstą galima pateikti vieną. Dokumentuoti multimodaliniai deriniai taip pat leidžia vaizdus arba vaizdo įrašą su neprivalomu tekstu, vaizdus su garsu, vaizdo įrašą su garsu ir vaizdus, vaizdo įrašą bei garsą kartu. Taigi šiuose išvardytuose deriniuose garsas papildo vaizdinę medžiagą; atskira vaizdo generavimo vien iš garso užklausa neaprašoma. Net kai tekstas neprivalomas, aiškiai aprašykite norimą rezultatą, kad kiekvieno atskaitos pavyzdžio vaidmuo būtų nurodytas, o ne išvedamas iš nesusijusių failų.
Masyve content atskiriami text, image_url, video_url ir audio_url elementai. Multimodalinė atskaitos medžiaga naudoja tokius vaidmenis kaip reference_image, reference_video ir reference_audio. Vaizdas gali nustatyti asmenį, objektą, vietą ar išvaizdą. Vaizdo įrašas gali parodyti atlikimą, judėjimą ar kameros vaizdą, o garsas – nustatyti takelį ar laiką. Apraše nurodykite paskirtį: išlaikyti objektą iš vaizdo, sekti vaizdo įrašo kameros vaizdą ir naudoti garsą kaip foną. Neprašykite, kad kiekvienas atskaitos pavyzdys vienu metu nustatytų visas savybes.
Dokumentuotas reklamos pavyzdys sujungia du gaminio vaizdus su vaizdo ir garso atskaitos įrašu. Jame aprašomas pradinis vaizdas, veiksmų seka, stambiu planu rodoma gaminio detalė ir baigiamoji kompozicija, išlaikant nuoseklų foninį balsą. Ta pati struktūra gali padėti sukurti trumpą pristatymą: parodyti objektą, pademonstruoti vieną veiksmą ir užbaigti atpažįstama jo savybe. Redaguodami nurodykite pradinę filmuotą medžiagą ir keistiną elementą; pratęsdami paaiškinkite veiksmą, kuris tęsiasi už esamos scenos ribų, išlaikant objektą ir judėjimo kryptį.
2.0 profilyje dokumentuota trukmė sveikomis sekundėmis nuo keturių iki penkiolikos arba -1, kad trukmė šiame intervale būtų parinkta automatiškai. Numatytoji trukmė – penkios sekundės. Raiškos parinktys – 480p ir 720p; numatytoji – 720p, o 1080p 2.0 profiliui neleidžiama. Fiksuoti kraštinių santykiai apima 16:9, 4:3, 1:1, 3:4, 9:16 ir 21:9. Prisitaikantis santykis gali parinkti kadravimą pagal užklausos tekstą ar atskaitos pavyzdį: darbas pagal pirmąjį kadrą seka pradinį vaizdą, o multimodalinis darbas naudoja numatytą sceną arba pirmą tinkamą mediją, teikdamas vaizdo įrašui pirmenybę prieš vaizdus. Užduoties rezultate patikrinkite faktinį santykį ir trukmę.
Generuojamas garsas valdomas atskirai nuo atskaitos medijos. generate_audio=true prašo sinchronizuotų balsų, efektų ir foninės muzikos pagal tekstą ir vaizdinį turinį; false prašo vaizdo įrašo be garso. Dokumentuota numatytoji reikšmė – true, o kalbai rekomenduojamas kabutėse pateiktas dialogas. Nurodykite, kas kalba ir kaip garsas siejasi su matomu veiksmu, tada patikrinkite tikrus žodžius, balsų priskyrimą ir laiką. Garso atskaitos įrašo pateikimas ir generuojamo garso įjungimas yra atskiri užklausos pasirinkimai.
2.0 vadove neleidžiami senesni frames ir camera_fixed valdikliai, taip pat nepalaikomas flex offline apdorojimas. Naudokite duration lauką, o kameros judėjimą aprašykite pačioje scenoje. Seed ir vandenženklis išlieka dokumentuotais valdikliais; vadove teigiama, kad ta pati užklausa ir seed gali duoti panašius rezultatus, tačiau visiškas sutapimas negarantuojamas. Nelaikykite seed atkuriamumo įrodymu, o pakartotinės užklausos – jau peržiūrėtu klipu.
Vaizdo žetonų naudojimas apskaičiuojamas taip: (įvesties vaizdo įrašo trukmė + išvesties vaizdo įrašo trukmė) × išvesties plotis × išvesties aukštis × išvesties kadrų dažnis / 1024. Užklausos su įvesties vaizdo įrašu ir užklausos be jo turi atskiras apmokestinimo kategorijas. Užduoties užklausa pateikia usage.completion_tokens ir usage.total_tokens; išsaugokite šiuos pateiktus kiekius kartu su užbaigtu klipu.
Darbo eiga yra asinchroninė: pateikus užklausą grąžinamas užduoties identifikatorius, o užbaigta užduotis pateikia content.video_url kartu su nurodyta trukme, raiška, santykiu, kadrų dažniu ir žetonų naudojimu. Išsaugokite identifikatorių ir užbaigtą vaizdo įrašą kartu su pradine atskaitos medžiaga bei užklausos tekstu. Galiojimo lauko numatytoji reikšmė – 172 800 sekundžių, leidžiamos reikšmės – 3 600–259 200 sekundžių nuo užduoties sukūrimo; intervalą viršijusi užduotis įgyja būseną expired. Peržiūrėkite visą išvestį, įskaitant redagavimo ar pratęsimo jungtį: veikėjų išvaizdą, objektų detales, erdvinius ryšius, kameros tęstinumą ir garso bei vaizdo laikų suderinimą.
Ailoot Ultra · Vaizdo įrašai POST /v1/videos doubao-seedance-2-0-260128
doubao-seedance-2-0-260128Pradžia
Seedance 2.0 generuoja ir redaguoja vaizdo įrašus, naudodamas tekstą, vaizdus bei vaizdo ir garso atskaitos įrašus. Jis gali tęsti esamą filmuotą medžiagą ir generuoti sinchronizuotą garsą; trukmė – 4–15 sekundžių, išvesties raiška – 480p arba 720p, o atskaitos medžiagos vaidmenys nurodomi aiškiai.
- Leidžiamos įvestys
- Tekstas · Vaizdai · Vaizdo įrašai · Garsas
- Rezultatai
- Vaizdo įrašai
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Vaizdo įrašai POST /v1/videos
- Įvestis
text,image,video,audio- Išvestis
video
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos doubao-seedance-2-0-260128 | Numatyta— |
Laukascontent | Tipasarray | ReikalavimasPrivaloma | Reikšmės ir ribos Sąlygos: Pirminio formato teksto ir medijos objektai; išorinis masyvas turi būti netuščias. Šis bendras Ailoot konstruktorius netikrina įdėtų mazgų tipų. | Numatyta— |
Laukasgenerate_audio | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: Į vaizdo įrašą įterptas sinchronizuotas garsas. | Numatytatrue |
Laukasduration | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: Sveikasis skaičius 4–15 arba -1; grąžinama tikroji išvesties trukmė. | Numatyta5 |
Laukasresolution | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos 480p, 720p Sąlygos: Aiškiai nurodyta, kad 1080p nepalaikoma 2.0/fast. | Numatyta720p |
Laukasratio | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Sąlygos: Prisitaikantis režimas aiškiai priskirtas 2.0/fast/1.5; 2.5 pavyzdyje pateiktas tik 16:9. | Numatytaadaptive |
Laukaswatermark | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
Laukasseed | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: −1 Didžiausia reikšmė: 4 294 967 295 | Numatyta−1 |
Laukasexecution_expires_after | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 3 600 Didžiausia reikšmė: 259 200 Vienetas: sekundės | Numatyta172 800 |
Laukasservice_tier | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos default Sąlygos: 2.0/fast neleidžia neprisijungus vykdomo flex režimo; 2.5 taikymo sritis nenustatyta. | Numatytadefault |
Laukassafety_identifier | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukastools | Tipasobject | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: Tik 2.0/fast; dokumentacijoje nurodyta type=web_search. | Numatyta— |
Įvesties medžiagos deriniai
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijacontent, model |
Parametrasoptional | Specifikacijagenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools |
Parametrasmaterial_types | Specifikacijatext, image, video, audio |
Parametrasadditional_properties | Specifikacijatrue |
Parametrasvalidation_scope | SpecifikacijaAiloot tikrina privalomų laukų tipus, ar model eilutė netuščia ir ar content masyvas netuščias. Kiti užklausos laukai išsaugomi pasirinktam modeliui. |
Parametrasmaterial_combinations | Specifikacijatext, image, video, image, audio, image, video, video, audio, image, video, audio |
Parametrasoptional_text_with_media | Specifikacijatrue |
Parametrasreference_media_count_and_size_limits | Specifikacijanull |
Metodo pseudonimai: /v1/videos/generations
Gyvavimo ciklas: 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
Sukurkite vieną kartą ir išsaugokite grąžintus viešuosius id/polling_url.
Periodiškai tikrinkite pradinę užduotį; gavę succeeded, atsisiųskite tikrą jums priklausantį content.video_url.
Planai
Kaip apskaičiuojamas galutinis mokestis
Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Nenurodyta Pasirinkus spartųjį režimą
- Flex režimas
- Nenurodyta Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
Numatomi įkainiai palyginimui
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Numatomas kiekis | Apskaitos vienetas | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Numatomas kiekis— | Apskaitos vienetas— | Mokestis Įvestis · Įvesties tokenai · Įvertis tik palyginimui — / 1K tokenų Išvestis · Išvesties tokenai · Įvertis tik palyginimui — / 1K tokenų Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui — / 1K tokenų Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui — / 1K tokenų |
| KonfigūracijaĮvestyje yra vaizdo įrašas. | Įkainių lentelė— | Numatomas kiekis— | Apskaitos vienetasuž 1K vaizdo įrašo tokenų | Mokestis Išvestis · Įvertis tik palyginimui $0.0096 už 1K vaizdo įrašo tokenų |
| KonfigūracijaĮvestyje nėra vaizdo įrašų. | Įkainių lentelė— | Numatomas kiekis— | Apskaitos vienetasuž 1K vaizdo įrašo tokenų | Mokestis Išvestis · Įvertis tik palyginimui $0.015768 už 1K vaizdo įrašo tokenų |
| KonfigūracijaNumatoma generavimo kaina | Įkainių lentelė— | Numatomas kiekisvieno generavimo įvertis | Apskaitos vienetas— | Mokestis Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.822402 įvertis prieš generavimą Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis. |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Vaizdo įrašai
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-0-260128","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
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.startswith("native302_"):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 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("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
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 actual Ailoot-owned signed result.")
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
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Vaizdo įrašai
Pirminis JSON su viešais id/polling_url. Po paskelbimo content.video_url turi Ailoot priklausančius pasirašytus URL; prieš paskelbimą pasirinktų rezultatų URL ištuštinami.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną baigtą vaizdo įrašą arba grąžintą failą; gaukite turinį iš kiekvieno faktiškai grąžinto medžiagos URL.
Išsaugokite kiekvieną tikrą URL lauke content.video_url; index turi nurodyti tikrą grąžintą rezultatą.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite pradinį atsakymą, antraštes ir id bei periodiškai tikrinkite tą operaciją; niekada neteikite kūrimo užklausos dar kartą, kai jos baigtis nežinoma.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasid | Tipasstring |
Laukasprovider_task_id | Tipasstring |
Laukaspolling_url | Tipasstring |
Laukasstatus | Tipasstring when supplied |
Laukascontent.video_url | Tipasstring|string[] |
Laukasusage | Tipasobject when supplied |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNetinkamas JSON/model, privalomų laukų tipai arba turinio indeksas. | Kitas žingsnis |
Atsakymas401 · authentication_error | SąlygaNegaliojantis Ailoot API raktas. | Kitas žingsnis |
Atsakymas404 · not_found_error | SąlygaUžduoties ar rezultato nėra arba jie nepriklauso tam pačiam naudotojui, API raktui ir grupei. | Kitas žingsnis |
Atsakymas502 · result_pending_check | SąlygaPradinio pateikimo ar būsenos duomenys neišsamūs; išsaugokite pradinį ID, neteikite pakartotinai. | Kitas žingsnis |
Atsakymas503 · result_pending_check | SąlygaPradinė medija, maršrutas arba atsiskaitymas tikrinami; tęskite pradinę operaciją. | Kitas žingsnis |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra doubao-seedance-2-0-260128
Metodų kelių pseudonimai
/v1/videos/generations
Susiję ID iškvietimui
FAQ · ByteDance: Seedance 2.0
- Kokios įvestys ir rezultatai prieinami?
POST /v1/videos·doubao-seedance-2-0-260128:text,image,video,audio→video- Kokius laukus naudoja užklausa?
POST /v1/videos·doubao-seedance-2-0-260128:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier,tools- Kokie apribojimai taikomi?
POST /v1/videos·doubao-seedance-2-0-260128:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200