Vidu: Q2 Text-to-Video
Vidu Q2 skapar video från en textbaserad scenbeskrivning, med en längd på 1–10 sekunder, utdata i 540p, 720p eller 1080p och fem bildförhållanden. Den här exakta viduq2-profilen använder prompten för stil och rörelse och returnerar resultatet genom en asynkron uppgift.
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.
Vidu Q2 skapar video från en skriven scen via den text-till-video-profil som väljs med viduq2. Obligatoriska indata är modellens exakta identifierare och en prompt som beskriver scenen. Använd den för ett kort produktkoncept, en etableringsbild eller en handling utförd av en karaktär vars utseende och rörelse kan beskrivas med ord. Den här konfigurerade metoden är text-till-video; beskrivningen tilldelar inte väljaren ett separat läge för bildreferenser eller videoredigering.
Bygg scenbeskrivningen kring en synlig sekvens. Ange motiv, plats, handling, bildutsnitt, kamerarörelse och slutkomposition. För ett produktkoncept kan du beskriva ett föremål på ett bord, ljus som rör sig över materialet och en långsam kameraåkning framåt som slutar vid en igenkännbar detalj. För en platsscen etablerar du miljön innan kameran rör sig mot blickfånget. Anpassa handlingen till den valda klipplängden så att scenen får plats med det avsedda slutet.
Promptens gräns är 2 000 tecken. Ange det viktigaste motivet och handlingen först och lägg sedan till de detaljer om ljus, material, miljö och kamera som påverkar det önskade resultatet. Ange den visuella stilen i prompten. Den Q2-specifika guiden säger att de separata parametrarna style och movement_amplitude saknar effekt för den här modellen. Förvalet general eller anime och alternativen för rörelseamplitud ersätter därför inte en tydlig scenbeskrivning.
Den modellspecifika längdinställningen accepterar hela sekunder från en till tio. De Q2-specifika upplösningsalternativen är 540p, 720p och 1080p, med 720p som dokumenterat standardvärde. Välj längd och upplösning tillsammans utifrån handlingen och användningsområdet. En kort presentation och en längre rörelse behöver olika tidsförlopp; en ökad begärd längd ska stödja den synliga sekvensen, inte bara dra ut en oförändrad beskrivning. Kontrollera det returnerade klippets faktiska mått och längd när du förbereder den slutliga placeringen.
De dokumenterade alternativen för aspect_ratio är 16:9, 9:16, 3:4, 4:3 och 1:1, med 16:9 som standardvärde. Guiden omfattar uttryckligen 3:4 och 4:3 för Q2-familjen. Välj bildformat före genereringen och beskriv en komposition som passar: håll huvudmotivet tydligt i ett stående format eller använd bredden i ett liggande format för den omgivande miljön. Låt slutbilden vara tillräckligt tydlig för den avsedda sidan, presentationen eller senare textningen.
Fältet seed styr variationen. Om det utelämnas eller anges som 0 väljs ett slumpmässigt värde; ett värde skilt från noll väljer det dokumenterade alternativet med fast seed för repeterbar generering. Spara det returnerade seed-värdet med prompten och inställningarna när du jämför versioner. Den gemensamma operationen dokumenterar också kontrollerna audio och off_peak specifikt för Q3-modeller. Dessa Q3-alternativ är inte förmågor som tilldelas den här Q2-profilen; planera begäran utifrån dess dokumenterade textindata och videoutdata.
Genereringen är asynkron. När uppgiften skickas in returneras task_id och ett inledande tillstånd, där created används för en nyskapad uppgift. Behåll uppgiftens identitet medan du följer bearbetningen. Den dokumenterade resultatfrågan använder state=success för ett lyckat resultat och returnerar en creations-array. Varje post har sin video-URL i creations[].url; spara varje returnerad video i stället för att anta att uppgiften alltid innehåller exakt en skapelse.
Resultatdokumentationen rapporterar också den faktiska videons längd, fps samt upplösningens bredd och höjd. Spara dessa rapporterade värden med det färdiga klippet i stället för att behandla ett exempels bildfrekvens eller mått som en fast Q2-specifikation. Svaret när uppgiften skapas innehåller ett credits-värde tillsammans med begärans konfiguration. Spara dessa rapporterade uppgiftsmetadata och den färdiga uppgiftens identitet med resultatet, så att varje video förblir kopplad till sina genereringsinställningar.
Granska hela sekvensen mot den ursprungliga scenbeskrivningen: motivets utseende, föremålets form, rörelseriktning, kamerakontinuitet och den avsedda slutbilden. Vid en revidering anger du den konkreta detalj som inte följde beskrivningen och bevarar de delar av scenen som fungerade. Håll prompt, exakt väljare, inställningar, uppgiftsidentitet och färdiga videor tillsammans så att en senare jämförelse bygger på de faktiska resultaten.
Ailoot Ultra · Videor POST /v1/videos viduq2
viduq2Start
Vidu Q2 skapar video från en textbaserad scenbeskrivning, med en längd på 1–10 sekunder, utdata i 540p, 720p eller 1080p och fem bildförhållanden. Den här exakta viduq2-profilen använder prompten för stil och rörelse och returnerar resultatet genom en asynkron uppgift.
- Godkända indata
- Text
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Videor POST /v1/videos
- Indatatyper
text- Utdatatyper
video
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser viduq2 | Standard— |
Fältprompt | Typstring | KravObligatoriskt | Värden & gränser Villkor: Beskriv den genererade scenen. Den dokumenterade gränsen är 2000 tecken; Ailoot kontrollerar att strängen inte är tom och bevarar texten. | Standard— |
Fältduration | Typinteger | KravValfritt | Värden & gränser Minimum: 1 Maximum: 10 Villkor: Den modellspecifika beskrivningen för viduq2 anger 1–10 hela sekunder. Ingen modellspecifik standardlängd är dokumenterad. Enhet: sekunder | Standard— |
Fältseed | Typstring | KravValfritt | Värden & gränser Villkor: Utelämna eller skicka strängen "0" för slumpmässighet. Ett angivet seed som inte är noll väljer det dokumenterade beteendet med fast seed; inget numeriskt intervall anges. | Standard— |
Fältaspect_ratio | Typstring | KravValfritt | Värden & gränser 16:9, 9:16, 3:4, 4:3, 1:1 | Standard16:9 |
Fältresolution | Typstring | KravValfritt | Värden & gränser 540p, 720p, 1080p Villkor: Den modellspecifika listan för viduq2 dokumenterar dessa nivåer för 1–10 sekunder. En gemensam enum och tabell nämner även 360p; dess tillämpning motsäger listan och fastställs inte här. | Standard720p |
Fältstyle | Typstring | KravValfritt | Värden & gränser general, anime Villkor: Den gemensamma begäran accepterar fältet, men dokumentationen anger uttryckligen att det saknar effekt för viduq2. | Standardgeneral |
Fältmovement_amplitude | Typstring | KravValfritt | Värden & gränser auto, small, medium, large Villkor: Den gemensamma begäran accepterar fältet, men dokumentationen anger uttryckligen att det saknar effekt för q2-modeller. | Standardauto |
Kombinationer av indatamaterial
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, prompt |
Parameteroptional | Avtalduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Parametermaterial_types | Avtaltext |
Parameteradditional_properties | Avtaltrue |
Parametervalidation_scope | AvtalAiloot validerar att model/prompt-strängarna inte är tomma. Valfria typer och gränser nedan utgör det dokumenterade begäranskontraktet; övriga begäransfält bevaras för den valda modellen. |
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 och polling_url.
Kontrollera den ursprungliga operationen och läs state; success och ett ägt resultat i creations[].url utgör gränsen för slutförande.
Hämta varje returnerad URL för en video som du äger; dra inga slutsatser om ett fast antal resultat, en fast längd eller bildfrekvens utifrån exemplet.
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 | Avgift |
|---|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Prognostiserad mängd— | 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 |
| KonfigurationUppskattad genereringskostnad | Prislista— | Prognostiserad mängduppskattning för en generering | Avgift Utdata · Uppskattad genereringskostnad · Uppskattning endast för jämförelse $5.12 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":"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
Ta emot och spara resultat
Ailoot Ultra · Videor
JSON behåller leverantörens state och creations-array och lägger till offentliga id/provider_task_id/polling_url. Valda videolänkar är tomma före publicering och blir signerade länkar som ägs av Ailoot efter slutförande.
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.
Hämta varje faktiskt returnerad URL i creations[].url; ett innehållsindex identifierar ett faktiskt returnerat resultat.
Om det ursprungliga svaret behöver kontrolleras
Den låsta deklarationen räknar inte upp något slutligt feltillstånd. Bevara ursprungligt svar, svarshuvuden och id och kontrollera samma operation vid ett okänt tillstånd eller felet result_pending_check; skicka aldrig en oklar skapandebegäran igen.
Svarsfält
| Fält | Typ | Betydelse |
|---|---|---|
Fältid | Typstring | BetydelseReturnerad offentlig identifierare för uppgiften eller operationen i Ailoot. |
Fältprovider_task_id | Typstring | BetydelseUrsprunglig uppgiftsidentifierare, skild från offentligt id. |
Fältpolling_url | Typstring | BetydelseReturnerad sökväg för uppslagning av den ursprungliga uppgiften i Ailoot. |
Fälttask_id | Typstring when supplied | BetydelseUrsprunglig identifierare som finns i skapandesvaret. |
Fältstate | Typstring when supplied | BetydelseLeverantörens uppgiftstillstånd: created för det låsta vänteläget och success för slutförande. |
Fälterr_code | Typstring when supplied | BetydelseUppgiftsdiagnostik; den sparade specifikationen anger ingen uppräknad lista med felkoder. |
Fältcreations[].url | Typstring|string[] | BetydelseVarje vald URL till en färdig video ersätts med en signerad URL som ägs av Ailoot. |
Fältcreations[].video.duration | Typnumber when supplied | BetydelseReturnerad videolängd; granska det faktiska färdiga resultatet. |
Fältcreations[].video.fps | Typinteger when supplied | BetydelseReturnerad bildfrekvens; ingen fast bildfrekvens utlovas. |
Fältcreations[].video.resolution.width | Typinteger when supplied | BetydelseReturnerad utdatabredd i pixlar. |
Fältcreations[].video.resolution.height | Typinteger when supplied | BetydelseReturnerad utdatahöjd i pixlar. |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltig JSON/modell, obligatoriska strängar som saknas eller är tomma, eller ogiltigt innehållsindex. | Nästa steg |
Svar401 · authentication_error | VillkorOgiltig API-nyckel för Ailoot. | Nästa steg |
Svar403 · permission_error | VillkorAPI-nyckelns grupp har inte tillträde till denna medierutt. | Nästa steg |
Svar404 · not_found_error | VillkorDen ursprungliga uppgiften eller begärda utdatan saknas eller ägs inte av samma användare, API-nyckel och grupp. | Nästa steg |
Svar502 · result_pending_check | VillkorDen ursprungliga inskickningen eller statusen är ofullständig eller kan inte stämmas av; bevara det ursprungliga ID:t och skicka inte in igen. | Nästa steg |
Svar503 · result_pending_check | VillkorDen ursprungliga kopplingen, rutten eller mediefilen som du äger kontrolleras fortfarande; fortsätt att kontrollera den ursprungliga operationen. | Nästa steg |
Svar503 · server_error | VillkorMedietjänsten eller lagringen för den ursprungliga uppgiften är inte tillgänglig. | Nästa steg |
Alias
Modellalias
Ailoot Ultra viduq2
Alias för metodsökvägar
/v1/videos/generations
Relaterade anropar-ID:n
FAQ · Vidu: Q2 Text-to-Video
- Vilka indata och resultat finns?
POST /v1/videos·viduq2:text→video- Vilka fält använder begäran?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Vilka gränser gäller?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10