ByteDance: Seedance 2.5
Seedance 2.5 skaber video ud fra tekst og billed-, video- eller lydreferencer med dokumenterede arbejdsgange til redigering og forlængelse. Det specifikke 2.5-eksempel kombinerer et produktbillede med flere bevægelsesreferencer og aktiverer genereret lyd til en samordnet reklamesekvens.
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
Seedance 2.5 skaber video med en skriftlig scene og multimodale referencer. Den specifikke selektor doubao-seedance-2-5-260628 har sin egen dokumenterede arbejdsgang og sit eget eksempel. Arbejdsgangen beskriver videogenerering, videoredigering og videoforlængelse med billeder, video, lyd og tekst som inputmedier. Brug referencerne til at formidle motivets udseende, handling, kamerabevægelse, stil og lyd, og forklar derefter det resultat, der skal skabes ud fra dem.
Inputkombinationerne omfatter tekst alene, billeder eller video med valgfri tekst, billeder med lyd, video med lyd og billeder, video og lyd sammen. De angivne kombinationer knytter lyd til visuelle medier frem for at beskrive en anmodning med kun lyd. Organiser hvert element efter dets rolle: et billede fastlægger et motiv eller et udtryk, en video demonstrerer bevægelse eller en eksisterende scene, og lyd leverer en lydreference. Angiv, hvilken rolle der er vigtig for den ønskede optagelse, så en baggrundsreference ikke forveksles med hovedkarakteren.
Det specifikke 2.5-eksempel er en produktreklamesekvens. Det leverer et billede og flere videoreferencer og beskriver derefter et indledende fokus, ordnede produktopstillinger, detaljeoptagelser, en handling i langsom gengivelse og en afsluttende brandkomposition. Anmodningen tildeler rollerne reference_image og reference_video og bruger individuelle referencer til komposition, bevægelse, kameraføring og virkning. Det giver en praktisk struktur til et kampagnekoncept: planlæg de synlige handlingsmomenter, identificer referencen til hvert moment, og angiv slutopstillingen.
En skriftlig sekvens kan skelne mellem det, der sker, og den måde, det filmes på. Beskriv først produkthandlingen og derefter billedudsnit, kamerarute, tempo og overgang til næste visning. Hvis én reference definerer produktet, og en anden demonstrerer en kamerabevægelse, skal disse separate ansvarsområder angives. Ved en scene med flere genstande skal deres positioner og rækkefølgen af interaktioner forklares. Undersøg det genererede resultat for produktets faktiske form, opstilling og bevægelse frem for at antage, at hver referencedetalje vises uændret.
Ved en redigering skal den eksisterende video og det element, der skal revideres, angives, for eksempel omgivelser, en handling eller visuel stil, samtidig med at den kontinuitet, der skal bevares, beskrives. Ved en forlængelse skal det beskrives, hvordan scenen skal fortsætte fra de leverede optagelser. Gennemgå både samlingen og det nye segment: motivets udseende, bevægelsesretning, kameraposition og lydtiming påvirker alle, om resultatet opleves som én scene. Bevar originalvideoen og den færdige revision samlet, så ændringen kan kontrolleres mod den tilsigtede kontinuitet.
Det dokumenterede multimodale 2.5-eksempel indstiller generate_audio=true og anmoder om en sekvens på femten sekunder med billedformatet 16:9. Værdierne beskriver dette eksempel frem for en universel øvre varighedsgrænse eller grænse for referencemateriale. Beskriv den ønskede lydudformning for scenen tydeligt, herunder relationen mellem musik, effekter og synlig handling, og vurder derefter det faktiske audiovisuelle output. En lydreference og det genererede lydspor skal gennemgås samlet for det tilsigtede tempo og den tilsigtede fremførelse.
Vælg varighed, billedindramning og opløsning fra de indstillinger, der tilbydes til netop denne profil. Bevar den ønskede konfiguration sammen med prompten, og sammenlign den med de faktisk returnerede opgavefelter. Brug den returnerede varighed, opløsning og det returnerede billedformat, når det færdige klip forberedes til sin anvendelse. Bevar den præcise profilidentifikator i revisionsgrundlaget, så en senere sammenligning bruger samme valgte udgave.
Forbruget af videotokens beregnes som (inputvideoens varighed + outputvideoens varighed) × outputbredde × outputhøjde × outputbilledfrekvens / 1024. Anmodninger med inputvideo og anmodninger uden inputvideo har forskellige faktureringskategorier. Opgaveforespørgslen rapporterer usage.completion_tokens og usage.total_tokens; bevar disse rapporterede mængder sammen med det færdige klip.
Genereringen er asynkron. Indsendelse returnerer en identifikator, og den konfigurerede opgavegang leverer status efterfulgt af content.video_url efter succes. Gem det færdige klip sammen med kildemedierne og sekvensbeskrivelsen. Gennemgå alle planlagte handlingsmomenter, genstandsinteraktioner, karakterers udseende, billedindramning og lydens tilpasning gennem hele resultatet. Ved en revision skal den konkrete manglende detalje identificeres, og de vellykkede dele af scenen bevares frem for at erstatte hele opgavebeskrivelsen med uvedkommende instruktioner.
Ailoot Ultra · Videoer POST /v1/videos doubao-seedance-2-5-260628
doubao-seedance-2-5-260628Start
Seedance 2.5 skaber video ud fra tekst og billed-, video- eller lydreferencer med dokumenterede arbejdsgange til redigering og forlængelse. Det specifikke 2.5-eksempel kombinerer et produktbillede med flere bevægelsesreferencer og aktiverer genereret lyd til en samordnet reklamesekvens.
- Accepterede input
- Tekst · Billeder · Video · Lyd
- Resultater
- Video
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Videoer POST /v1/videos
- Inputtyper
text,image,video,audio- Outputtyper
video
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser doubao-seedance-2-5-260628 | Standard— |
Feltcontent | Typearray | KravPåkrævet | Værdier og grænser Betingelser: Tekst- og medieobjekter i det oprindelige format; det yderste array må ikke være tomt. Indlejrede nodetyper valideres ikke af denne generiske Ailoot-konstruktør. | Standard— |
Feltgenerate_audio | Typeboolean | KravValgfrit | Værdier og grænser Betingelser: Eksemplet for 2.5 sætter true, men den kopierede vælgertekst angiver kun 2.0/fast/1.5; der er ingen bredere garanti for indstillinger eller standardværdier. | Standard— |
Feltduration | Typeinteger | KravValgfrit | Værdier og grænser Betingelser: Den bogstavelige værdi 15 i eksemplet for 2.5 er hverken en maksimums- eller standardværdi. | Standard— |
Feltresolution | Typestring | KravValgfrit | Værdier og grænser Betingelser: Ingen standardværdi eller enum for 2.5 udledes af kopierede beskrivelser. | Standard— |
Feltratio | Typestring | KravValgfrit | Værdier og grænser Betingelser: Adaptive er udtrykkeligt afgrænset til 2.0/fast/1.5; eksemplet for 2.5 bruger kun 16:9. | Standard— |
Feltwatermark | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Feltseed | Typeinteger | KravValgfrit | Værdier og grænser Minimum: -1 Maksimum: 4.294.967.295 | Standard-1 |
Feltexecution_expires_after | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 3.600 Maksimum: 259.200 Enhed: sekunder | Standard172.800 |
Feltservice_tier | Typestring | KravValgfrit | Værdier og grænser Betingelser: 2.0/fast udelukker offline flex; omfanget for 2.5 er ikke fastlagt. | Standard— |
Feltsafety_identifier | Typestring | KravValgfrit | Værdier og grænser | Standard— |
Kombinationer af inputmaterialer
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktcontent, model |
Parameteroptional | Kontraktgenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier |
Parametermaterial_types | Kontrakttext, image, video, audio |
Parameteradditional_properties | Kontrakttrue |
Parametervalidation_scope | KontraktAiloot kontrollerer de påkrævede felttyper og et ikke-tomt model/content-array. Andre forespørgselsfelter bevares til den valgte model. |
Parametermaterial_combinations | Kontrakttext, image, video, image, audio, image, video, video, audio, image, video, audio |
Parameteroptional_text_with_media | Kontrakttrue |
Parameterreference_media_count_and_size_limits | Kontraktnull |
Metodealiaser: /v1/videos/generations
Livscyklus: 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
Opret én gang, og behold det returnerede offentlige id/polling_url.
Forespørg på det oprindelige jobs status; download faktisk ejet content.video_url efter succeeded.
Priser
Sådan beregnes det endelige beløb
De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Estimerede takster til sammenligning
Priser efter konfiguration
Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.
| Konfiguration | Takstplan | Forventet mængde | Afregningsenhed | Beløb |
|---|---|---|---|---|
| KonfigurationGrundpriser for tokens | TakstplanGrundtakst | Forventet mængde— | Afregningsenhed— | Beløb Input · Inputtokens · Estimat kun til sammenligning — / 1K tokens Output · Outputtokens · Estimat kun til sammenligning — / 1K tokens Input · Cachelæsning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning, 1 time · Estimat kun til sammenligning — / 1K tokens |
| KonfigurationInputtet indeholder en videoreference. | Takstplan— | Forventet mængde— | Afregningsenhedpr. 1K videotokens | Beløb Output · Estimat kun til sammenligning $0.012 pr. 1K videotokens |
| KonfigurationInputtet indeholder ingen videoreference. | Takstplan— | Forventet mængde— | Afregningsenhedpr. 1K videotokens | Beløb Output · Estimat kun til sammenligning $0.02 pr. 1K videotokens |
| KonfigurationAnslået genereringsomkostning | Takstplan— | Forventet mængdeestimat for én generering | Afregningsenhed— | Beløb Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.822402 estimat før generering Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering. |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot Ultra · Videoer
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-5-260628","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
Hent og gem resultater
Ailoot Ultra · Videoer
Native JSON med offentligt id/polling_url. Efter offentliggørelse indeholder content.video_url signerede URL’er, der ejes af Ailoot; før offentliggørelse tømmes de valgte output-URL’er.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Behold alle færdige resultater
Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.
Behold hver faktisk URL i content.video_url; index skal identificere et reelt returneret output.
Hvis det oprindelige svar skal kontrolleres
Behold det oprindelige svar, headere og id, og forespørg på denne operations status; indsend aldrig en oprettelse med ukendt udfald igen.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltprovider_task_id | Typestring |
Feltpolling_url | Typestring |
Feltstatus | Typestring when supplied |
Feltcontent.video_url | Typestring|string[] |
Feltusage | Typeobject when supplied |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldig JSON/model, ugyldige påkrævede felttyper eller ugyldigt indholdsindeks. | Næste trin |
Svar401 · authentication_error | BetingelseUgyldig Ailoot API-nøgle. | Næste trin |
Svar404 · not_found_error | BetingelseOpgaven eller outputtet mangler eller tilhører ikke samme bruger/API-nøgle/gruppe. | Næste trin |
Svar502 · result_pending_check | BetingelseOprindelig indsendelse eller status er ufuldstændig; behold det oprindelige ID, og indsend ikke igen. | Næste trin |
Svar503 · result_pending_check | BetingelseDe oprindelige medier, ruten eller afregningen kontrolleres; fortsæt den oprindelige operation. | Næste trin |
Aliaser
Modelaliaser
Ailoot Ultra doubao-seedance-2-5-260628
Aliaser for metodestier
/v1/videos/generations
Relaterede kalder-ID’er
FAQ · ByteDance: Seedance 2.5
- Hvilke input og resultater er tilgængelige?
POST /v1/videos·doubao-seedance-2-5-260628:text,image,video,audio→video- Hvilke felter bruger anmodningen?
POST /v1/videos·doubao-seedance-2-5-260628:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier- Hvilke grænser gælder?
POST /v1/videos·doubao-seedance-2-5-260628:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200