modeller

SpaceXAI: Grok Imagine Video

Markdown · JSON

SpaceXAI: Grok Imagine Video

Grok Imagine Video genererer korte klip ud fra tekst, et startbillede eller op til syv visuelle referencer. Den klassiske udgave redigerer også eksisterende MP4-klip og tilføjer 2–10 sekunders fortsættelse. Generering når 720p med lyd; redigering og forlængelse bevarer kildens indramning inden for deres egne grænser.

Om modellen

Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.

Grok Imagine Video er den klassiske udgave af Grok Imagine-videofamilien. Producentens aktuelle dokumentation omfatter generering af et nyt klip fra en prompt, animation af et startbillede, brug af visuelle referencer og ændring eller fortsættelse af en eksisterende video. Arbejdsgangene producerer forskellige artefakter: en ny scene, en redigeret version af leverede optagelser eller én video med de oprindelige optagelser efterfulgt af nyt indhold. Vælg arbejdsgangen ud fra det materiale, der allerede er til rådighed, og den del af indstillingen, der skal ændres.

Til en ny tekst-til-video-indstilling skal motiv, miljø, synlig handling, kamera og lyd beskrives. Standardgenerering understøtter klip på 1–15 sekunder med output ved 480p eller 720p og genereret lyd. Kvadratiske, liggende, stående og bredere billedformater er dokumenteret, herunder 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 og 5:2. En oprindelig brief kan bede om en papirlanterne, der bevæger sig blidt over en stille gård, mens kameraet tracker sidelæns. Den nyttige gennemgang kontrollerer, om bevægelse, indramning og atmosfærelyd understøtter denne ene indstilling.

Ved billede-til-video er det leverede stillbillede det første billede. Forbered det med den ønskede beskæring, motiv og synlige detaljer, og beskriv derefter den efterfølgende handling. Outputtet følger billedets format. Et startstillbillede giver en præcis åbningskomposition, mens reference-til-video bruger billeder til at styre personer, produkter eller miljø i en nykomponeret scene. At holde de to roller adskilt hjælper med at undgå en utilsigtet begyndelse, når målet er at placere et kendt objekt i andre omgivelser.

Den klassiske model accepterer op til syv referencebilleder pr. referencestyret anmodning. Denne tilstand er begrænset til ti sekunder og 720p. Giv hver reference en tydelig rolle, og identificer den ved dens position i listen med start ved <IMAGE_0>. Til en produktvignet kan én reference identificere objektet og en anden det ønskede sted. Hold briefen fokuseret på objektets placering og indstillingens hovedhandling. Den klassiske referencetilstand bruger sin egen konfiguration; den fulde 1.5-udgave leverer de ekstra kontroller til valgt stemme og fastlagte billeder.

Videoredigering tager et eksisterende klip og en prompt, der beskriver ændringen. Producenten accepterer MP4-kilder med understøttede codecs som H.264, H.265 eller AV1 på op til 8.7 sekunder. Det redigerede resultat beholder kildens varighed og billedformat og følger opløsningen op til et loft på 720p. Brugerdefinerede kontroller for varighed, billedformat og opløsning gælder ikke denne redigeringsarbejdsgang. Forbered en kilde, der allerede har den nødvendige komposition og timing til slutbrugen, så prompten kan koncentrere sig om den ønskede visuelle ændring.

En oprindelig redigeringsbrief kan ændre et tørklædes farve og bevare personens ansigt, bevægelse, baggrund og kamera. Angiv disse bevarede elementer eksplicit sammen med ændringen. Producenten beskriver bevarelse af resten af kilden så tæt som muligt, hvilket er et nyttigt mål for gennemgangen frem for en garanti for, at hver pixel forbliver identisk. Sammenlign resultatet gennem hele klippet, især hvor objektet bevæger sig, krydser et andet objekt eller bliver delvist skjult. Den færdige leverance er det redigerede klip, ikke blot et stillbillede, der viser den nye farve.

Videoforlængelse fortsætter fra det sidste billede i en eksisterende MP4. Den dokumenterede kildelængde er 2–15 sekunder; den tilføjede del er 2–10 sekunder med seks sekunder som standard. Forlængelsesvarigheden gælder kun den nye del. En kilde på ti sekunder efterfulgt af fem sekunders fortsættelse giver en video på femten sekunder med begge dele. Resultatet bevarer kildens billedformat og opløsning inden for et loft på 720p. Forbered kildens sidste øjeblik, og beskriv, hvad der derefter skal ske, for eksempel at motivet drejer mod et objekt, der nærmer sig, mens kameraet fortsætter sin nuværende bevægelse.

Gennemgå en forlængelse omkring grænsen mellem kilde og nyt indhold. Kontrollér motividentitet, bevægelsesretning, kameratempo, lys og lyd, så fortsættelsen passer til den foregående handling. Hvis et klip slutter et visuelt akavet sted, skal denne grænse være en eksplicit del af planen for næste indstilling. Samling af længere scener er en redigeringsbeslutning: modellens varighedsgrænser for generering, reference, redigering og forlængelse er særskilte, og en forlængelses samlede resultat kan være længere end et almindeligt nygenereret klip.

Producentens videoarbejdsgang er asynkron. En anmodningsidentifikator sporer en opgave, indtil et færdigt resultat leverer videoens placering og varighed; outputplaceringer er midlertidige. Gem det afspillelige resultat og kildematerialerne, når en produktionsredigering forberedes. Fuld Grok Imagine Video 1.5 tilbyder direkte generering i 1080p og rigere forankring med visuelle referencer, stemmer og billeder, mens Lite er til enkel prompt- eller startbilledproduktion. Den klassiske udgave er fortsat nyttig, når udgangsmaterialet allerede er en video, der kræver en styret ændring eller fortsættelse.

Ailoot Ultra · Video POST /v1/videos x-ai/grok-imagine-video

x-ai/grok-imagine-video

SpaceXAI /x-ai/grok-imagine-video

Start

Grok Imagine Video genererer korte klip ud fra tekst, et startbillede eller op til syv visuelle referencer. Den klassiske udgave redigerer også eksisterende MP4-klip og tilføjer 2–10 sekunders fortsættelse. Generering når 720p med lyd; redigering og forlængelse bevarer kildens indramning inden for deres egne grænser.

Accepterede input
Tekst · Billeder
Resultater
Video

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Video POST /v1/videos
Inputtyper
text, image
Outputtyper
video
Outputformat
oprindelige MP4-bytes; ingen normalisering/transkodning
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
x-ai/grok-imagine-video
Standard—
FeltpromptTypestringKravPåkrævetVærdier og grænserStandard—
FeltdurationTypeintegerKravPåkrævetVærdier og grænser
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Minimum: 1
Maksimum: 600
Standard—
FeltresolutionTypestringKravValgfritVærdier og grænser
480p, 720p
Standard—
Feltaspect_ratioTypestringKravValgfritVærdier og grænser
16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3
Standard—
Feltgenerate_audioTypebooleanKravValgfritVærdier og grænser
false
Standard—
Feltframe_imagesTypearrayKravValgfritVærdier og grænser
Minimumsantal elementer: 1
Maksimalt antal elementer: 1
Inputindhold: Array af billedobjekter. Hvert objekt har type=image_url, image_url med url samt frame_type. Brug en HTTPS URL til et billede, og sæt frame_type til first_frame. Hver billedrolle må højst forekomme én gang.
Præcise nøgler: type, image_url, frame_type
Betingelser: Disse nøgler beskriver hvert billedobjekt; image_url indeholder kun url. Udelad frame_images ved en forespørgsel med kun tekst.
Standard—
Feltinput_referencesTypearrayKravValgfritVærdier og grænserStandard—
FeltsizeTypestringKravValgfritVærdier og grænser
854x480, 1280x720, 480x854, 720x1280, 480x480, 720x720, 640x480, 960x720, 480x640, 720x960, 720x480, 1080x720, 480x720, 720x1080
Mønster: ^[1-9][0-9]*x[1-9][0-9]*$
Standard—
Feltcallback_urlTypestringKravValgfritVærdier og grænser
Mønster: ^https://
Standard—
Feltsession_idTypestringKravValgfritVærdier og grænserStandard—
FelttraceTypeobjectKravValgfritVærdier og grænserStandard—
FeltuserTypestringKravValgfritVærdier og grænserStandard—
Kombinationer af inputmaterialer

Tekst til video · En skriftlig prompt. · Påkrævet: model, prompt, duration

Angiv prompten som tekst og varigheden i hele sekunder. Vælg en understøttet opløsning; tilføj et billedformat, eller brug en angivet størrelse.

model: Type: string · x-ai/grok-imagine-video

prompt: Type: string · Maksimalt antal UTF-8-bytes: 10.000 · Mindst ét tegn, der ikke er et blanktegn, kræves: Ja

Billede til video · En skriftlig prompt og et billede til første frame. · Påkrævet: model, prompt, duration, frame_images

frame_images er et array. Hvert billedobjekt har type, image_url og frame_type; image_url indeholder url. Sæt type til image_url. Brug first_frame. Hver billedrolle må højst forekomme én gang. Angiv en offentlig HTTPS URL til hvert billede. Brug enkeltbilleder eller billedreferencer i én forespørgsel; kombinér ikke begge. Vælg en understøttet opløsning; tilføj et billedformat, eller brug en angivet størrelse.

Præcise nøgler: type, image_url, frame_type

model: Type: string · x-ai/grok-imagine-video

prompt: Type: string · Maksimalt antal UTF-8-bytes: 10.000 · Mindst ét tegn, der ikke er et blanktegn, kræves: Ja

Reference to video · En skriftlig prompt og understøttede billedreferencer. · Påkrævet: model, prompt, duration, input_references

input_references er et array af objekter. Sæt type til image_url, og brug det tilsvarende felt med url. Brug offentlige HTTPS-URL’er. Udelad frame_images for at vælge referencetilstand. Kombinér ikke billedreferencer med enkeltbilleder. Vælg en understøttet opløsning; tilføj et billedformat, eller brug en angivet størrelse.

model: Type: string · x-ai/grok-imagine-video

prompt: Type: string · Maksimalt antal UTF-8-bytes: 10.000 · Mindst ét tegn, der ikke er et blanktegn, kræves: Ja

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, prompt, duration
Parametermaterial_typesKontrakttext, image
Parameteradditional_propertiesKontraktfalse
Parameteroptional_controlsKontraktresolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user

Livscyklus: submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

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.

KonfigurationTakstplanForventet mængdeAfregningsenhedAfregningsbetingelserBeløb
KonfigurationGrundpriser for tokensTakstplanGrundtakstForventet mængde—Afregningsenhed—Afregningsbetingelser—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
KonfigurationInputbilledeTakstplan—Forventet mængde—Afregningsenhedpr. billedeAfregningsbetingelserDer er ikke angivet nogen yderligere betingelse i denne prisnøgle.Beløb
Input · Inputbillede · Estimat kun til sammenligning $0.004 pr. billede
KonfigurationVideoprisTakstplan—Forventet mængde—Afregningsenhedpr. videosekundAfregningsbetingelserresolution: 480pBeløb
Output · Videopris · Estimat kun til sammenligning $0.1 pr. videosekund
KonfigurationVideoprisTakstplan—Forventet mængde—Afregningsenhedpr. videosekundAfregningsbetingelserresolution: 720pBeløb
Output · Videopris · Estimat kun til sammenligning $0.14 pr. videosekund
KonfigurationAnslået genereringsomkostningTakstplan—Forventet mængdeestimat for én genereringAfregningsenhed—Afregningsbetingelser—Beløb
Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.1 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 →

Detaljer om referencetariffen

Referenceplaner på modelniveau ændrer ikke metodevalg, prisoverslag eller opkrævninger. Ved den aktive afregning anvendes taksterne for den valgte Ailoot-metode.

Prisreferencer for videokonfigurationer

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationAfregningsbetingelserBeløb
KonfigurationInputbilledeAfregningsbetingelserDer er ikke angivet nogen yderligere betingelse i denne prisnøgle.Beløb
Input · Inputbillede $0.004 pr. billede

Offentliggjort prisreference for den viste konfiguration. Den endelige afregning følger den konfiguration, der faktisk faktureres.

KonfigurationVideoprisAfregningsbetingelserresolution: 480pBeløb
Output · Videopris $0.1 pr. videosekund

Offentliggjort prisreference for den viste konfiguration. Den endelige afregning følger den konfiguration, der faktisk faktureres.

KonfigurationVideoprisAfregningsbetingelserresolution: 720pBeløb
Output · Videopris $0.14 pr. videosekund

Offentliggjort prisreference for den viste konfiguration. Den endelige afregning følger den konfiguration, der faktisk faktureres.

Eksempelanmodninger

Ailoot Ultra · Video

curl · opret video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"x-ai/grok-imagine-video","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
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

Hent og gem resultater

Ailoot Ultra · Video

signerede indholds-URL’er, du ejer

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Kontrollér opgavestatus
GET · Status for den oprindelige handling
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
Læsning af andet indhold
Gem hvert færdigt output, du ejer
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
Behold alle færdige resultater

Gem hver færdig video eller returneret fil; hent hver faktisk returneret fil-URL.

Behold hvert faktisk output, du ejer, og dets returnerede, målte metadata.

Hvis det oprindelige svar skal kontrolleres

503 result_pending_check + originalid + X-Should-Retry:false; gentag aldrig originalen

Svarfelter
FeltTypeBetydning
FeltindexTypeintegerBetydningDenne videos position i outputlisten, talt fra nul.
Feltcontent_urlTypestringBetydningSigneret HTTPS URL til download af denne færdige video.
Feltsha256Typestring | nullBetydningSHA-256-hash af de oprindelige videobytes; null, hvis den ikke er tilgængelig.
Feltsize_bytesTypeinteger | nullBetydningDen oprindelige videofils størrelse i bytes; null, hvis den ikke er tilgængelig.
Feltduration_msTypeinteger | nullBetydningMålt videovarighed i millisekunder; null, hvis den ikke er tilgængelig.
FeltwidthTypeinteger | nullBetydningVideoens bredde i pixels; null, hvis den ikke er tilgængelig.
FeltheightTypeinteger | nullBetydningVideoens højde i pixels; null, hvis den ikke er tilgængelig.
Feltvideo_codecTypestring | nullBetydningIdentifikator for videocodec; null, hvis den ikke er registreret.
Felthas_audioTypeboolean | nullBetydningOm videoen indeholder et lydspor; null, hvis det ikke er målt.
Feltaudio_codecTypestring | nullBetydningIdentifikator for lydcodec; null, når ingen identifikator er registreret.
Fejl og næste trin
SvarBetingelseNæste trin
Svar404 · not_found_errorBetingelseVideoadgang er utilgængelig, eller dette video-ID blev ikke fundet.Næste trinKontrollér videoadgang. For en eksisterende video skal du bruge dens oprindelige offentlige ID og samme API-nøgle.
Svar401 · authentication_errorBetingelseAPI-nøglen stemmer ikke overens med den autentificerede konto.Næste trinKontrollér din API-nøgle og kontoadgang, før du indsender.
Svar400 · invalid_request_errorBetingelseForespørgslen kunne ikke læses, eller downloadindekset er ugyldigt.Næste trinRet forespørgselsindholdet. Ved download skal du vælge et outputindeks, der er returneret af den oprindelige opgave.
Svar422 · price_unavailableBetingelseDen valgte videokonfiguration kan ikke prissættes.Næste trinVælg en understøttet videokonfiguration, og udfyld dens påkrævede indstillinger, før du sender en rettet forespørgsel.
Svar422 · invalid_request_errorBetingelseEt videoinput eller den oprindelige fortsættelsesopgave er ugyldigt.Næste trinBrug gyldigt HTTPS-input. Ved fortsættelse skal du bruge din færdige originals offentlige video-ID med samme API-nøgle.
Svar402 · billing_errorBetingelseDen tilgængelige saldo eller grænserne tillader ikke en reservation.Næste trinKontrollér din tilgængelige saldo og dine grænser, før du sender en ny forespørgsel.
Svar503 · server_errorBetingelseVideokontrol, lager eller tjenesteadgang er midlertidigt utilgængelig.Næste trinVent, indtil tjenesten er tilgængelig. Hvis du allerede har et video-ID, skal du kontrollere den oprindelige opgave i stedet for at oprette en ny generering.
Svar503 · result_pending_checkBetingelseDet oprindelige videoresultat og opkrævningen skal kontrolleres.Næste trinBehold det returnerede video-ID, og kontrollér denne opgave. Send ikke en erstatningsforespørgsel om generering, mens den kontrolleres.
Svar503 · owned_result_unavailableBetingelseDownload af den eksisterende video er midlertidigt utilgængelig.Næste trinKontrollér samme videoopgave senere, og download dens eksisterende output. En ny generering opretter en separat operation.
Svar409 · video_not_readyBetingelseVideoindholdet er ikke blevet offentliggjort.Næste trinKontrollér den oprindelige opgaves status. Download, når den melder completed; hvis den melder failed, skal du følge dens meddelelse om kontrol af opkrævningen.

Aliaser

Modelaliaser

Ailoot Ultra x-ai/grok-imagine-video

Aliaser for metodestier

Brug metodestierne vist ovenfor.

Relaterede kalder-ID’er

x-ai/grok-imagine-video

FAQ · SpaceXAI: Grok Imagine Video
Hvilke input og resultater er tilgængelige?

POST /v1/videos · x-ai/grok-imagine-video: text, image → video

Hvilke felter bruger anmodningen?

POST /v1/videos · x-ai/grok-imagine-video: model, prompt, duration, resolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user

Hvilke grænser gælder?

POST /v1/videos · x-ai/grok-imagine-video: duration.minimum: 1; duration.maximum: 600; frame_images.max_items: 1; frame_images.min_items: 1

Flere oplysninger

Tilslut Ailoot til Claude Code, OpenCode, Hermes eller din egen applikation.

Virksomheden og dens projektportefølje

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Køb tokens med rabat.

Abonnementsrabat til regelmæssigt arbejde. Rabatkoder giver op til 50% på tokenkøb.

Abonnement
Vælg et abonnement med rabat til dine regelmæssige anmodninger.
Rabatkode på op til 50%
Indtast koden ved købet. Prisen genberegnes efter den aktuelle kampagne.
Udgifter i historikken
Model, tokens og beløb gemmes for hver anmodning.

Vælg abonnement · Se modelpriser

Tilslut API’et til produktet, du sælger.

SaaS, apps og bots efter Ailoots tilbudsvilkår og licensaftale. Anmod om en forhandlerlicens til videresalg.

Kommerciel applikation
Byg generering af tekst, billeder, video og lyd ind i tjenestens betalte funktioner.
Licens til forhandlere
Send projektbeskrivelse og adgangsmodel. Bed om skriftlige vilkår for anvendelse og videresalg.
Dokumenter på websitet
Tilbudsvilkår, licensaftale og politik for behandling af data kan læses før tilslutning.

Anmod om forhandlerlicens · Tilbudsvilkår og licensaftale