Google: Veo 3.1
Veo 3.1 is het videomodel van Google voor scènes vanuit tekst en afbeeldingen met gegenereerd geluid, gestuurde grensframes en referentiemateriaal. Het productieprofiel biedt clips van vier, zes of acht seconden bij 24 fps, met uitvoeropties waaronder 720p, 1080p en 4K.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Veo 3.1 is het videogeneratiemodel van Google om een korte audiovisuele scène te maken vanuit tekst of een briefing met afbeeldingen. Het productieprofiel ondersteunt tekst-naar-video, afbeelding-naar-video en gestuurde creatie met eerste/laatste frames, met gegenereerd geluid, materiaalreferenties en een afzonderlijke voortzettingsworkflow. Gebruik het om een filmisch concept, een kort productverhaal of een visueel segment met een bepaalde scène, actie en luisterervaring te ontwikkelen.
Beschrijf eerst het onderwerp en de zichtbare gebeurtenis. Leg omgeving, tijdstip van de dag en licht vast en bepaal daarna het standpunt of de beweging van de camera en de gewenste visuele stijl. Een oorspronkelijke scènebriefing kan een glazen vat op een donker studio-oppervlak tonen, met een langzame zijwaartse beweging die een reflectie onthult terwijl een zacht omgevingsgeluid die onthulling begeleidt. Elke instructie levert een zichtbaar of hoorbaar kenmerk dat je in het voltooide resultaat kan beoordelen.
Het promptkader van Google behandelt onderwerp, actie, scène, camera en esthetiek als afzonderlijke delen van de briefing. Gebruik de onderdelen die het shot dienen in plaats van elke mogelijke beschrijving toe te voegen. Schrijf regieaanwijzingen in het Engels voor het gedocumenteerde promptprofiel. Geef bij meerdere acties hun verband aan en hou ze in verhouding tot een korte clip, zodat een onthulling of reactie leesbaar blijft.
Een startafbeelding legt openingsuiterlijk en compositie vast. Gebruik ze wanneer personage, product of omgeving al als visueel materiaal bestaat en beschrijf de beweging die eruit moet ontstaan. Een laatste frame voegt een doelcompositie voor het einde toe. Bereid grensframes voor die een geloofwaardige overgang overbrengen en de herkenningsdetails van het hoofdonderwerp behouden en controleer na generatie de beweging ertussen.
Materiaalreferenties dienen een ander doel: ze sturen het uiterlijk van een personage of object in een nieuw gegenereerde scène, terwijl grensframes specifieke momenten in die scène vastleggen. Kies referenties die de belangrijke visuele kenmerken tonen en maak de rol van elk materiaal duidelijk in de prompt. De referentieafbeelding-naar-video-specificatie van het productiemodel gebruikt uitvoer van acht seconden voor die referentieworkflow, los van de gewone duurkeuze voor tekstgestuurde generatie.
Het gewone productieprofiel van de maker genereert clips van vier, zes of acht seconden bij 24 beelden per seconde. Het vermeldt liggende 16:9- en staande 9:16-kadrering, maximaal vier video-uitvoeren per prompt en uitvoerresoluties van 720p, 1080p en 4K. Het uitvoervideoformaat is MP4. De specificatie voor beeldgestuurde generatie accepteert JPEG of PNG, vermeldt maximaal 20 MB per invoerafbeelding en ondersteunt invoerconfiguraties van 720p/1080p. Kies het uitvoerprofiel voor de beoogde plaatsing en hou de framecompositie leesbaar op die grootte.
Native geluid kan de zichtbare scène begeleiden. Specificeer gesproken zinnen, atmosfeer en geluidseffecten als delen van dezelfde briefing en benoem het onderwerp of de gebeurtenis die elk geluid voortbrengt. Een dialooginstructie en een camera-instructie beantwoorden verschillende vragen: de ene bepaalt de voordracht, de andere hoe de kijker die ziet. Hou de woorden binnen de bruikbare spreektijd van de clip en beoordeel het geluid op verstaanbaarheid en verband met de actie.
Voor voortzetting biedt de maker een afzonderlijke workflow voor videoverlenging. Begin met een geschikte gegenereerde bronclip en beschrijf de volgende zichtbare gebeurtenis of verandering in de scène. Bewaar het oorspronkelijke en voortgezette segment om hun aansluiting op uiterlijk, beweging en geluid te kunnen beoordelen. Behandel de gewone duur- en resolutiekeuzes voor nieuwe generatie niet als een universeel contract voor elke verlengingsbewerking.
Een negatieve beschrijving kan uitsluitingen richten op de visuele vereisten van de taak. Hou voor een reeks productvarianten onderwerp en compositie stabiel en wijzig één creatieve richting, zoals belichting of camera-afstand. Leg prompt, referenties en gekozen instellingen vast bij het resultaat. Zo kan je een nuttig creatief verschil vergelijken in plaats van een verzameling ongerelateerde generaties.
Het gewone Veo 3.1-productieprofiel en Veo 3.1 Fast hebben verschillende uitvoerresolutieprofielen. Fast vermeldt 720p en 1080p; gewone 3.1 vermeldt ook 4K. Hou de gekozen editie bij het resultaat, zonder een productiemodelidentificatie stilzwijgend door een ouder Preview-profiel of een andere Veo-generatie te vervangen. Zowel het uiterlijk van een onderwerp als de ondersteunde bewerking hangen van de gekozen workflow af.
Generatie is een bewerking waarvan het voltooide resultaat videobestanden voor afspelen en latere montage levert. Bewaar de teruggestuurde bestanden met hun bronframes, referentiemateriaal en briefing en behoud de aangeleverde inhoudsherkomstinformatie. Controleer elke daadwerkelijke uitvoer op uiterlijk van het onderwerp, actie, kadrering, geluid en eindcompositie. Gebruik de gekozen clip als bouwsteen voor de productie, met titels, overgangen of andere afwerking in de omringende montage.
Ailoot Ultra · Video POST /v1/videos google/veo-3.1
google/veo-3.1Aan de slag
Veo 3.1 is het videomodel van Google voor scènes vanuit tekst en afbeeldingen met gegenereerd geluid, gestuurde grensframes en referentiemateriaal. Het productieprofiel biedt clips van vier, zes of acht seconden bij 24 fps, met uitvoeropties waaronder 720p, 1080p en 4K.
- Toegestane invoer
- Tekst
- Resultaten
- Video
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Video POST /v1/videos
- Invoer
text- Uitvoer
video- Uitvoerformaat
- mp4
- Aantal uitvoerresultaten
- Tot en met 4 uitvoers
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten google/veo-3.1 | Standaard— |
Veldprompt | Typestring | VereisteVereist | Waarden en limieten Maximumaantal UTF-8-bytes: 10.000 Ten minste één teken anders dan witruimte vereist: Ja | Standaard— |
Veldduration | Typeinteger | VereisteVereist | Waarden en limieten 4, 6, 8 | Standaard— |
Veldresolution | Typestring | VereisteVereist | Waarden en limieten 720p | Standaard— |
Veldaspect_ratio | Typestring | VereisteVereist | Waarden en limieten 16:9, 9:16 | Standaard— |
Veldgenerate_audio | Typeboolean | VereisteVereist | Waarden en limieten false, true | Standaard— |
Combinaties van invoermaterialen
Tekst naar video · Vereist: prompt
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, prompt, duration, resolution, aspect_ratio, generate_audio |
Parameteradditional_properties | Contractfalse |
Parameterparameters | Contract{"name":"model","type":"string","required":true,"enum":["google/veo-3.1"]}, {"name":"prompt","type":"string","required":true,"non_whitespace":true,"max_utf8_bytes":10000}, {"name":"duration","type":"integer","required":true,"enum":[4,6,8]}, {"name":"resolution","type":"string","required":true,"enum":["720p"]}, {"name":"aspect_ratio","type":"string","required":true,"enum":["16:9","9:16"]}, {"name":"generate_audio","type":"boolean","required":true,"enum":[false,true]} |
Parametermaterial_types | Contracttext |
Methodealiasnamen: /v1/videos/generations, /videos, /videos/generations
Levenscyclus: 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
Bewaar het volledige antwoord en de oorspronkelijke teruggestuurde ID's.
Dien een aanmaakaanvraag met onbekende uitkomst nooit opnieuw in.
Tarieven
Zo worden de uiteindelijke kosten berekend
De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Geschatte tarieven ter vergelijking
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Audio genereren | Resolutie | Rekeneenheid | Factureringsvoorwaarden | Kosten |
|---|---|---|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Audio genereren— | Resolutie— | Rekeneenheid— | Factureringsvoorwaarden— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens |
| ConfiguratieUltra | Tariefstaffel— | Verwachte hoeveelheidGevraagde configuratie; alleen een schatting. | Audio genererenMet audio | Resolutie720p | Rekeneenheidper seconde uitvoervideo | Factureringsvoorwaarden— | Kosten Uitvoer · Geschatte seconde video-uitvoer · Schatting uitsluitend ter vergelijking $0.8 per seconde uitvoervideo Het getoonde tarief schat de kosten vóór de generatie. De uiteindelijke aanrekening wordt berekend op basis van de geregistreerde kosten van de oorspronkelijke generatie. De fysieke videoduur is niet de factureerbare hoeveelheid. |
| ConfiguratieVideoprijs | Tariefstaffel— | Verwachte hoeveelheid— | Audio genereren— | Resolutie— | Rekeneenheidper videoseconde | Factureringsvoorwaardenaudio: with_audio; resolutie: 4k | Kosten Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking $1.2 per videoseconde |
| ConfiguratieUltra | Tariefstaffel— | Verwachte hoeveelheidGevraagde configuratie; alleen een schatting. | Audio genererenZonder audio | Resolutie720p | Rekeneenheidper seconde uitvoervideo | Factureringsvoorwaarden— | Kosten Uitvoer · Geschatte seconde video-uitvoer · Schatting uitsluitend ter vergelijking $0.4 per seconde uitvoervideo Het getoonde tarief schat de kosten vóór de generatie. De uiteindelijke aanrekening wordt berekend op basis van de geregistreerde kosten van de oorspronkelijke generatie. De fysieke videoduur is niet de factureerbare hoeveelheid. |
| ConfiguratieVideoprijs | Tariefstaffel— | Verwachte hoeveelheid— | Audio genereren— | Resolutie— | Rekeneenheidper videoseconde | Factureringsvoorwaardenaudio: without_audio; resolutie: 4k | Kosten Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking $0.8 per videoseconde |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Audio genereren— | Resolutie— | Rekeneenheid— | Factureringsvoorwaarden— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $1.6 schatting vóór generatie Deze raming is geen extra kost of vast tarief voor de voltooide generatie. |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Details van het referentietarief
Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.
Prijsreferenties voor videoconfiguraties
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Factureringsvoorwaarden | Kosten |
|---|---|---|
| ConfiguratieVideoprijs | Factureringsvoorwaardengeluid: with_audio | Kosten Uitvoer · Videoprijs $0.8 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
| ConfiguratieVideoprijs | Factureringsvoorwaardenaudio: with_audio; resolutie: 4k | Kosten Uitvoer · Videoprijs $1.2 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
| ConfiguratieVideoprijs | Factureringsvoorwaardengeluid: without_audio | Kosten Uitvoer · Videoprijs $0.4 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
| ConfiguratieVideoprijs | Factureringsvoorwaardenaudio: without_audio; resolutie: 4k | Kosten Uitvoer · Videoprijs $0.8 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
Voorbeeldverzoeken
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/veo-3.1", "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
Resultaten ophalen en opslaan
Ailoot Ultra · Video
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Taakstatus controleren
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
Lezen van andere inhoud
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
Alle voltooide resultaten bewaren
Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.
Bewaar elke ondertekende URL in voltooide data[] die je toebehoort, en de volledige statusmetadata. Sla alle uitvoer op, inclusief de gegenereerde audio. Ook bij generate_audio=false kan een geldige AAC-audiotrack aanwezig zijn; bewaar de volledige oorspronkelijke MP4, inclusief die audio.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Raadpleeg de bestaande oorspronkelijke opdracht; dien een aanvraag met onbekende verzenduitkomst nooit opnieuw in.
Maximumaantal uitvoerresultaten: 4.
Antwoordvelden
| Veld | Type | Betekenis |
|---|---|---|
Veldid | Typestring | Betekenis— |
Veldobject | Typestring | Betekenis— |
Veldmodel | Typestring | Betekenis— |
Veldstatus | Typestring | Betekenis— |
Velddata[] | Typesigned content URL | Betekenis— |
Veldcharge_pending_check | Typeboolean | Betekenis— |
Velderror.code | Typestring | Betekenis— |
Velderror.message | Typestring | Betekenis— |
Veldoperation_id | Typestring | BetekenisOorspronkelijk status-/inhoudsantwoord met HTTP503 result_pending_check: dezelfde oorspronkelijke openbare video-ID als id. |
Velderror.type | Typestring | Betekenisserver_error bij HTTP503 result_pending_check. |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeHet lezen van de ruwe aanvraaginhoud mislukt voordat het videoprofiel wordt ontleed | Volgende stapBewaar het teruggestuurde antwoord en corrigeer de onleesbare aanvraaginhoud. |
Antwoord422 · price_unavailable | VoorwaardeHet exacte videoprofiel kan niet worden ontleed, of voor het volledig ontlede profiel is geen exacte prijskaart gereed | Volgende stapBewaar het antwoord; gebruik het volledige, exact toegelaten profiel en de bijbehorende gepubliceerde kaart. Deze vertakking wordt uitgevoerd voordat er iets naar een aanbieder wordt verstuurd. |
Antwoord409 · video_not_ready | VoorwaardeDe oorspronkelijke resultaatinhoud is nog niet beschikbaar | Volgende stapVraag de oorspronkelijk teruggestuurde ID herhaaldelijk op en respecteer Retry-After. |
Antwoordserver_error | VoorwaardeDe teruggegeven respons geeft aan dat de bewerking of het resultaat gecontroleerd moet worden | Volgende stapBewaar de oorspronkelijk teruggegeven bewerkings-/taak-ID, aanvraagheaders en respons; blijf de oorspronkelijke bewerking uitlezen via de ondersteunde leesaanvragen. Dien de aanmaakaanvraag niet opnieuw in. |
Antwoord503 · result_pending_check | VoorwaardeGET van oorspronkelijke status/inhoud: de taak is niet gepubliceerd, de oorspronkelijke opdracht is niet failed/cancelled/expired en de lokale status is unknown of de oorspronkelijke opdrachtstatus is completed. | Volgende stapBewaar de oorspronkelijke id en operation_id (dezelfde openbare video-ID), het antwoord en de headers; raadpleeg uitsluitend de oorspronkelijke status/inhoud. Dien nooit een nieuwe generatieaanvraag in. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra google/veo-3.1
Aliasnamen voor methodepaden
/v1/videos/generations, /videos, /videos/generations
Gerelateerde aanroeper-ID’s
FAQ · Google: Veo 3.1
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/videos·google/veo-3.1:text→video- Welke velden gebruikt het verzoek?
POST /v1/videos·google/veo-3.1:model,prompt,duration,resolution,aspect_ratio,generate_audio