ByteDance: Seedance 2.0
Seedance 2.0 genererar och redigerar video med text samt bild-, video- och ljudreferenser. Den kan fortsätta befintligt material och generera synkroniserat ljud, med en längd på 4–15 sekunder, utdata i 480p eller 720p och uttryckliga referensroller.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
Seedance 2.0 genererar video från en skriven scen eller en kombination av bild-, video- och ljudreferenser. Den exakta väljaren doubao-seedance-2-0-260128 identifierar standardprofilen 2.0. De dokumenterade arbetsflödena omfattar generering av ny video samt redigering och förlängning av befintligt material. Använd referenser för att förmedla utseende, rörelse, kamerans bildspråk och ljud och ange sedan vilka delar av scenen de ska styra.
Text kan anges ensam. De dokumenterade multimodala kombinationerna tillåter också bilder eller video med valfri text, bilder med ljud, video med ljud och bilder, video och ljud tillsammans. Ljud åtföljer alltså visuella medier i dessa listade kombinationer; det beskrivs inte som en fristående ljud-till-video-begäran. Skriv det önskade resultatet tydligt även när text är valfri, så att varje referens roll är uttrycklig i stället för att behöva härledas från orelaterat material.
Arrayen content skiljer mellan objekten text, image_url, video_url och audio_url. Multimodala referenser använder roller som reference_image, reference_video och reference_audio. En bild kan definiera personen, föremålet, platsen eller det visuella uttrycket. En video kan visa ett framförande, en rörelse eller en kameravy, och ljud kan fastställa ett spår eller tidsförlopp. Ange fördelningen i beskrivningen: behåll motivet från bilden, följ videons kameravy och använd ljudet som bakgrund. Be inte varje referens att definiera alla egenskaper samtidigt.
Det dokumenterade reklamexemplet kombinerar två produktbilder med en video och en ljudreferens. Det beskriver en öppningsbild, en handlingssekvens, en produktdetalj i närbild och en slutkomposition med en konsekvent bakgrundsröst. Samma struktur kan organisera en kort presentation: etablera föremålet, demonstrera en handling och avsluta med en igenkännbar egenskap. För en redigering anger du källmaterialet och delen som ska ändras; för en förlängning förklarar du handlingen som fortsätter bortom den befintliga scenen samtidigt som motiv och rörelseriktning bevaras.
Profilen 2.0 dokumenterar en längd i hela sekunder från fyra till femton eller -1 för en automatiskt vald längd inom intervallet. Standardvärdet är fem sekunder. Upplösningsalternativen är 480p och 720p, med 720p som standardvärde; 1080p är uteslutet för 2.0. Fasta bildförhållanden omfattar 16:9, 4:3, 1:1, 3:4, 9:16 och 21:9. Ett adaptivt bildförhållande kan välja bildformat från prompten eller referensen: arbete utifrån den första bildrutan följer startbilden, och multimodalt arbete använder den avsedda scenen eller det första relevanta mediet, med video prioriterad framför bilder. Kontrollera uppgiftsresultatets faktiska bildförhållande och längd.
Genererat ljud styrs separat från referensmedierna. generate_audio=true begär synkroniserade röster, effekter och bakgrundsmusik utifrån texten och det visuella innehållet; false begär en video utan ljud. Det dokumenterade standardvärdet är true, och dialog inom citattecken rekommenderas för tal. Ange vem som talar och hur ljudet hör ihop med den synliga handlingen och kontrollera sedan faktiska ord, röstfördelning och tidsplacering. Att tillhandahålla en ljudreferens och aktivera genererat ljud är skilda val i begäran.
Guiden för 2.0 utesluter de äldre kontrollerna frames och camera_fixed och stöder inte offlinebearbetning med flex. Använd fältet duration och beskriv kamerarörelsen i själva scenen. Seed och vattenstämpel är fortsatt dokumenterade kontroller; guiden säger att samma begäran och seed kan ge liknande resultat utan att garantera exakt identitet. Behandla inte ett seed-värde som bevis på reproducerbarhet eller en upprepad begäran som ett redan granskat klipp.
Användningen av videotoken beräknas som (indatavideons längd + utdatavideons längd) × utdatans bredd × utdatans höjd × utdatans bildfrekvens / 1024. Begäranden med indatavideo och de utan indatavideo har skilda debiteringskategorier. Uppgiftsfrågan rapporterar usage.completion_tokens och usage.total_tokens; spara dessa rapporterade mängder med det färdiga klippet.
Arbetsflödet är asynkront: inskickandet returnerar en uppgiftsidentifierare och den färdiga uppgiften ger content.video_url tillsammans med rapporterad längd, upplösning, bildförhållande, bildfrekvens och tokenanvändning. Behåll identifieraren och spara den färdiga videon med originalreferenser och prompt. Giltighetsfältet har 172 800 sekunder som standardvärde och accepterar 3 600–259 200 sekunder från skapandet av uppgiften; en uppgift som överskrider intervallet får tillståndet expired. Granska hela resultatet, inklusive skarven efter redigering eller förlängning, för karaktärernas utseende, föremålsdetaljer, rumsliga relationer, kamerakontinuitet och samspelet mellan ljud och bild i tiden.
Ailoot Ultra · Videor POST /v1/videos doubao-seedance-2-0-260128
doubao-seedance-2-0-260128Start
Seedance 2.0 genererar och redigerar video med text samt bild-, video- och ljudreferenser. Den kan fortsätta befintligt material och generera synkroniserat ljud, med en längd på 4–15 sekunder, utdata i 480p eller 720p och uttryckliga referensroller.
- Godkända indata
- Text · Bilder · Video · Ljud
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Videor POST /v1/videos
- Indatatyper
text,image,video,audio- Utdatatyper
video
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser doubao-seedance-2-0-260128 | Standard— |
Fältcontent | Typarray | KravObligatoriskt | Värden & gränser Villkor: Leverantörens text- och medieobjekt; den yttre arrayen får inte vara tom. Nästlade nodtyper valideras inte av denna generella konstruktor i Ailoot. | Standard— |
Fältgenerate_audio | Typboolean | KravValfritt | Värden & gränser Villkor: Synkroniserat ljud inbäddat i videon. | Standardtrue |
Fältduration | Typinteger | KravValfritt | Värden & gränser Villkor: Heltal 4–15 eller -1; den faktiska utdatalängden returneras. | Standard5 |
Fältresolution | Typstring | KravValfritt | Värden & gränser 480p, 720p Villkor: 1080p stöds uttryckligen inte för 2.0/fast. | Standard720p |
Fältratio | Typstring | KravValfritt | Värden & gränser 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Villkor: Inställningen adaptive är uttryckligen begränsad till 2.0/fast/1.5; exemplet för 2.5 använder endast 16:9. | Standardadaptive |
Fältwatermark | Typboolean | KravValfritt | Värden & gränser | Standardfalse |
Fältseed | Typinteger | KravValfritt | Värden & gränser Minimum: −1 Maximum: 4 294 967 295 | Standard−1 |
Fältexecution_expires_after | Typinteger | KravValfritt | Värden & gränser Minimum: 3 600 Maximum: 259 200 Enhet: sekunder | Standard172 800 |
Fältservice_tier | Typstring | KravValfritt | Värden & gränser default Villkor: 2.0/fast utesluter offline flex; omfattningen för 2.5 är inte fastställd. | Standarddefault |
Fältsafety_identifier | Typstring | KravValfritt | Värden & gränser | Standard— |
Fälttools | Typobject | KravValfritt | Värden & gränser Villkor: Endast 2.0/fast; dokumenterad type=web_search. | Standard— |
Kombinationer av indatamaterial
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalcontent, model |
Parameteroptional | Avtalgenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools |
Parametermaterial_types | Avtaltext, image, video, audio |
Parameteradditional_properties | Avtaltrue |
Parametervalidation_scope | AvtalAiloot kontrollerar de obligatoriska fälttyperna och att model/content-arrayen inte är tom. Övriga begäransfält bevaras för den valda modellen. |
Parametermaterial_combinations | Avtaltext, image, video, image, audio, image, video, video, audio, image, video, audio |
Parameteroptional_text_with_media | Avtaltrue |
Parameterreference_media_count_and_size_limits | Avtalnull |
Metodalias: /v1/videos/generations
Livscykel: 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
Skapa en gång och behåll returnerat offentligt id/polling_url.
Kontrollera det ursprungliga jobbet; hämta faktiskt content.video_url som du äger efter succeeded.
Priser
Så beräknas slutavgiften
De visade priserna används för att uppskatta kostnaden före genereringen. Den slutliga debiteringen beräknas utifrån den kostnad som registrerats för den ursprungliga genereringen. Uppmätt längd på resultatet och uppskattade mängder utgör inte den slutliga debiterbara mängden.
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Ej angivet När snabbt läge är valt
- Flex-läge
- Ej angivet När läget flex är valt
- Högsta resonemangsnivå
- Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)
Uppskattade priser för jämförelse
Priser efter konfiguration
Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.
| Konfiguration | Prislista | Prognostiserad mängd | Debiteringsenhet | Avgift |
|---|---|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Prognostiserad mängd— | Debiteringsenhet— | Avgift Indata · Indatatoken · Uppskattning endast för jämförelse — / 1K token Utdata · Utdatatoken · Uppskattning endast för jämförelse — / 1K token Indata · Cacheläsning · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache, 1 tim · Uppskattning endast för jämförelse — / 1K token |
| KonfigurationIndata innehåller video. | Prislista— | Prognostiserad mängd— | Debiteringsenhetper 1K videotoken | Avgift Utdata · Uppskattning endast för jämförelse $0.0096 per 1K videotoken |
| KonfigurationIndata innehåller ingen video. | Prislista— | Prognostiserad mängd— | Debiteringsenhetper 1K videotoken | Avgift Utdata · Uppskattning endast för jämförelse $0.015768 per 1K videotoken |
| KonfigurationUppskattad genereringskostnad | Prislista— | Prognostiserad mängduppskattning för en generering | Debiteringsenhet— | Avgift Utdata · Uppskattad genereringskostnad · Uppskattning endast för jämförelse $0.822402 uppskattning före generering Denna uppskattning är varken en extra avgift eller ett fast pris för den slutförda genereringen. |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot Ultra · Videor
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
Ta emot och spara resultat
Ailoot Ultra · Videor
Leverantörens JSON med offentligt id/polling_url. Efter publicering innehåller content.video_url signerade URL som ägs av Ailoot; före publicering lämnas de valda utdata-URL:erna tomma.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Behåll alla färdiga resultat
Spara varje färdig video eller returnerad fil; hämta varje faktiskt returnerad resurs-URL.
Behåll varje faktisk URL i content.video_url; index måste identifiera ett faktiskt returnerat resultat.
Om det ursprungliga svaret behöver kontrolleras
Bevara ursprungligt svar, svarshuvuden och id och kontrollera den operationen; skicka aldrig en oklar skapandebegäran igen.
Svarsfält
| Fält | Typ |
|---|---|
Fältid | Typstring |
Fältprovider_task_id | Typstring |
Fältpolling_url | Typstring |
Fältstatus | Typstring when supplied |
Fältcontent.video_url | Typstring|string[] |
Fältusage | Typobject when supplied |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltig JSON/modell, ogiltiga typer för obligatoriska fält eller ogiltigt innehållsindex. | Nästa steg |
Svar401 · authentication_error | VillkorOgiltig API-nyckel för Ailoot. | Nästa steg |
Svar404 · not_found_error | VillkorUppgiften eller utdatan saknas eller ägs inte av samma användare, API-nyckel och grupp. | Nästa steg |
Svar502 · result_pending_check | VillkorUrsprunglig inskickning/status är ofullständig; bevara ursprungligt ID, skicka inte in igen. | Nästa steg |
Svar503 · result_pending_check | VillkorUrsprungliga medier, rutt eller avräkning kontrolleras; fortsätt med den ursprungliga operationen. | Nästa steg |
Alias
Modellalias
Ailoot Ultra doubao-seedance-2-0-260128
Alias för metodsökvägar
/v1/videos/generations
Relaterade anropar-ID:n
FAQ · ByteDance: Seedance 2.0
- Vilka indata och resultat finns?
POST /v1/videos·doubao-seedance-2-0-260128:text,image,video,audio→video- Vilka fält använder begäran?
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- Vilka gränser gäller?
POST /v1/videos·doubao-seedance-2-0-260128:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200