modeller

Alibaba: Wan 3.0 Prime

Markdown · JSON

Alibaba: Wan 3.0 Prime

Alibaba Wan 3.0 Prime er den hastighetsoptimaliserte Wan 3.0-videomodellen. Produsentens profil støtter generering fra tekst, første bilde og første/siste bilde, samt multimodale referanser, med integrert lyd. Den produserer MP4-klipp på 2–30 sekunder ved 30 bilder per sekund i 480p, 720p eller 1080p, med tilpasset utsnitt og arbeidsflyter for redigering.

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

Alibaba Wan 3.0 Prime er den akselererte utgaven i videofamilien Wan 3.0. Produsenten kaller den wan3.0-video-prime og dokumenterer de samme alt-i-ett-oppgavekategoriene som for standardutgaven av Wan 3.0, med hastighet som utgavens særlige vektlegging. En skriftlig beskrivelse, et startbilde, visuelle referanser eller lydreferanser, eller en kildevideo kan styre et klipp med tilhørende lyd. Nyttige leveranser omfatter en produktscene, en kort fortellende sekvens, et animert stillbilde eller en styrt bearbeiding av et eksisterende opptak.

For tekst-til-video beskriver du motiv, scene, bevegelse, kamera, visuell behandling og lyd. Veiledningen for 3.0 støtter enkeltopptak eller et storyboard med opptaksnavn og tidsintervaller, og anbefaler omtrent fire til seks sekunder per opptak. For et produktklipp kan du gå fra et stabilt oversiktsbilde av en veske på et bord til en nærmere materialdetalj, og så holde sluttkomposisjonen mens en kort replikk blir sagt. Gi sekvensen ett tydelig formål, og vurder om kamera, tempo og produktidentitet forblir sammenhengende.

Ved generering fra første bilde etablerer det innsendte bildet åpningen, mens teksten beskriver bevegelse og kameraføring. Generering fra første og siste bilde angir begge endepunktene og ber om overgangen mellom dem. Forbered endebilder som tilhører samme scene, og et målformat som passer den tiltenkte leveransen. Produsenten anbefaler adaptiv innramming for bildebaserte oppgaver. Endebildemodus og de separate referansemodusene har ulike regler for kombinasjon av materiale: første eller siste bilde blandes ikke med referansebilder, referansevideo eller referanselyd i én forespørsel.

Referansemodus tar imot opptil ti bilder, fem videoklipp og fem lydklipp, innenfor tjue multimodale referanseelementer totalt. De dokumenterte grensene per fil er 20 MB for et referansebilde, 100 MB for video og 15 MB for lyd. Referansevideoklipp kan til sammen vare høyst femten sekunder; referanselydklipp har sin egen samlede grense på femten sekunder. Navngi rollen til hvert materiale, og bruk den typespesifikke indeksen, for eksempel Image 1, Video 1 eller Audio 1. En person, et produkt, en kamerabevegelse og en stemme bør ikke stå som referanser som kan byttes om på.

Produsenten støtter også én dokumentreferanse eller én referanse til en offentlig nettside, som kan følge annet referansemateriale. Fil og nettlenke kan ikke brukes samtidig, og kilden må kunne nås uten innlogging. En dokumentbasert scene kan bruke relevant produkt- eller historieinnhold som kontekst, mens en visuell referanse definerer utseendet. Forbered materialet som faktisk skal forme klippet, og angi hvilke elementer som betyr noe. Kontroller faktabaserte visuelle detaljer og tekst i den genererte scenen mot kilden, i stedet for å godta en tiltalende, men endret fremstilling.

Talt dialog, miljølyd, lydeffekter og bakgrunnsmusikk genereres sammen med bildet. Beskriv ordene som skal sies, hvem som snakker, fremføringen og lydens plass i scenen. Veiledningen dokumenterer lyd som aktivert som standard og en kontroll for video uten lyd. Gi talerne særskilte visuelle kjennetegn og stemmekjennetegn i en dialog, og la utvekslingen få nok tid. Lytt etter den faktiske ordlyden, riktig tilordning av talere og forholdet mellom en effekt og den synlige handlingen. Integrert lyd er en del av scenen og trenger derfor samme gjennomgang som bildet.

Produsentens alt-i-ett-veiledning dokumenterer også redigering og utvidelse fra referansevideo. En redigeringsbeskrivelse bør angi elementet som skal legges til, fjernes eller erstattes, og egenskapene som skal beholdes. En utvidelsesbeskrivelse bør beskrive innhold før, etter eller rundt det eksisterende klippet. Bruk adaptiv innramming og smart varighet i disse arbeidsflytene. Når video leveres som input, må dokumentert samlet varighet av input- og outputvideo ikke overstige 30 sekunder. Forbered kildesekvensen og den tiltenkte endringen tydelig; vurder overgangen, motivet som er beholdt, og lyden, fremfor bare ett tiltalende bilde.

Dokumentert output er MP4 med 30 fps, oppløsning på 480p, 720p eller 1080p og varighet fra to til tretti sekunder for ny generering. Smart varighet lar modellen velge en passende lengde. Kvadratisk, liggende og stående innramming er tilgjengelig, og adaptiv innramming følger det innsendte materialet. Produsenten behandler generering som en jobb og returnerer plasseringen til den ferdige videoen; veiledningen sier at resultatplasseringen er gyldig i tjuefire timer. Behold selve klippet og den kreative beskrivelsen når du forbereder en redigering eller sekvens, og se gjennom hele leveransen før bruk.

Prime og standardutgaven av Wan 3.0 deler de dokumenterte modusene og forberedelsesstrukturen. Prime er det hastighetsoptimaliserte valget, uten garanti for en fast fullføringstid. Tidligere Wan 2.7- og 2.6-moduser har egne regler for varighet, referanser og output; disse grensene definerer ikke denne 3.0-utgaven. En nyttig gjennomgang kontrollerer kontinuitet for objekter og figurer, innramming ved endepunktene, forespurte redigeringer, dialog og kildespesifikke detaljer. Gjør neste korreksjon konkret, slik at vellykkede deler av scenen forblir stabile mens det identifiserte problemet rettes.

Ailoot Ultra · Video POST /v1/videos alibaba/wan-3.0-prime

alibaba/wan-3.0-prime

Alibaba /alibaba/wan-3.0-prime

Start

Alibaba Wan 3.0 Prime er den hastighetsoptimaliserte Wan 3.0-videomodellen. Produsentens profil støtter generering fra tekst, første bilde og første/siste bilde, samt multimodale referanser, med integrert lyd. Den produserer MP4-klipp på 2–30 sekunder ved 30 bilder per sekund i 480p, 720p eller 1080p, med tilpasset utsnitt og arbeidsflyter for redigering.

Godkjente inndata
Tekst · Bilder
Resultater
Video

Tilgjengelig i Ailoot · inndata & metoder

Ailoot Ultra · Video POST /v1/videos
Inndatatyper
text, image
Utdatatyper
video
Utdataformat
opprinnelige MP4-bytes; ingen normalisering/transkoding
FeltTypeKravVerdier & grenserStandard
FeltmodelTypestringKravPåkrevdVerdier & grenser
alibaba/wan-3.0-prime
Standard—
FeltpromptTypestringKravPåkrevdVerdier & grenserStandard—
FeltdurationTypeintegerKravPåkrevdVerdier & grenser
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
Minimum: 1
Maksimum: 600
Standard—
FeltresolutionTypestringKravValgfrittVerdier & grenser
480p, 720p, 1080p
Standard—
Feltaspect_ratioTypestringKravValgfrittVerdier & grenser
16:9, 4:3, 1:1, 3:4, 9:16
Standard—
Feltgenerate_audioTypebooleanKravValgfrittVerdier & grenser
false, true
Standard—
Feltframe_imagesTypearrayKravValgfrittVerdier & grenser
Minste antall elementer: 1
Maksimalt antall elementer: 1
Inngående innhold: Matrise med bildeobjekter. Hvert objekt har type=image_url, image_url som inneholder url, og frame_type. Bruk en HTTPS-basert URL til bildet, og sett frame_type til first_frame. Hver bilderolle forekommer høyst én gang.
Nøyaktige nøkler: type, image_url, frame_type
Vilkår: Disse nøklene beskriver hvert bildeobjekt; image_url inneholder bare url. Utelat frame_images ved en forespørsel som bare inneholder tekst.
Standard—
Feltinput_referencesTypearrayKravValgfrittVerdier & grenserStandard—
FeltseedTypeintegerKravValgfrittVerdier & grenser
Minimum: −9 223 372 036 854 775 808
Maksimum: 9 223 372 036 854 775 807
Standard—
Feltcallback_urlTypestringKravValgfrittVerdier & grenser
Mønster: ^https://
Standard—
Feltsession_idTypestringKravValgfrittVerdier & grenserStandard—
FelttraceTypeobjectKravValgfrittVerdier & grenserStandard—
FeltuserTypestringKravValgfrittVerdier & grenserStandard—
Kombinasjoner av inngående materialer

Tekst til video · En skriftlig ledetekst. · Påkrevd: model, prompt, duration

Oppgi prompt som tekst og duration som hele sekunder. Velg en støttet oppløsning og ved behov et sideforhold.

model: Type: string · alibaba/wan-3.0-prime

prompt: Type: string · Maksimalt antall UTF-8-byte: 10 000 · Minst ett tegn som ikke er mellomrom, kreves: Ja

Bilde til video · En skriftlig ledetekst og et bilde for første enkeltbilde. · Påkrevd: model, prompt, duration, frame_images

frame_images er en matrise. Hvert bildeobjekt har type, image_url og frame_type; image_url inneholder url. Sett type til image_url. Bruk first_frame. Hver bilderolle forekommer høyst én gang. Oppgi en offentlig tilgjengelig HTTPS-basert URL til bildet for hvert enkeltbilde. Velg en støttet oppløsning og ved behov et sideforhold.

Nøyaktige nøkler: type, image_url, frame_type

model: Type: string · alibaba/wan-3.0-prime

prompt: Type: string · Maksimalt antall UTF-8-byte: 10 000 · Minst ett tegn som ikke er mellomrom, kreves: Ja

Metodeparametere og livssyklus
ParameterAvtale
Parametercontent_typeAvtaleapplication/json
ParameterrequiredAvtalemodel, prompt, duration
Parametermaterial_typesAvtaletext, image
Parameteradditional_propertiesAvtalefalse
Parameteroptional_controlsAvtaleresolution, aspect_ratio, generate_audio, frame_images, input_references, seed, callback_url, session_id, trace, user

Livssyklus: submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

Priser

Slik beregnes det endelige beløpet

De viste satsene anslår kostnaden før generering. Det endelige beløpet beregnes ut fra kostnaden som er registrert for den opprinnelige genereringen. Målt varighet på utdataene og anslåtte mengder er ikke den endelige fakturerbare mengden.

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus
Ikke angitt Når hurtigmodus er valgt
Flex-modus
Ikke angitt Når flex-modus er valgt
Maksimal resonneringsinnsats
Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

Estimerte satser for sammenligning

Priser etter konfigurasjon

Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.

KonfigurasjonPrisplanForventet mengdeFaktureringsenhetFaktureringsvilkårKostnad
KonfigurasjonGrunnpriser for tokenerPrisplanGrunnsatsForventet mengde—Faktureringsenhet—Faktureringsvilkår—Kostnad
Inndata · Inngående tokener · Estimat kun for sammenligning — / 1K tokener
Utdata · Utgående tokener · Estimat kun for sammenligning — / 1K tokener
Inndata · Lesing fra hurtigbuffer · Estimat kun for sammenligning — / 1K tokener
Inndata · Skriving til hurtigbuffer · Estimat kun for sammenligning — / 1K tokener
Inndata · Skriving til hurtigbuffer, 1 time · Estimat kun for sammenligning — / 1K tokener
KonfigurasjonVideoprisPrisplan—Forventet mengde—Faktureringsenhetper videosekundFaktureringsvilkårresolution: 1080pKostnad
Utdata · Videopris · Estimat kun for sammenligning $0.56 per videosekund
KonfigurasjonVideoprisPrisplan—Forventet mengde—Faktureringsenhetper videosekundFaktureringsvilkårresolution: 480pKostnad
Utdata · Videopris · Estimat kun for sammenligning $0.136 per videosekund
KonfigurasjonVideoprisPrisplan—Forventet mengde—Faktureringsenhetper videosekundFaktureringsvilkårresolution: 720pKostnad
Utdata · Videopris · Estimat kun for sammenligning $0.28 per videosekund
KonfigurasjonAnslått genereringskostnadPrisplan—Forventet mengdeestimat for én genereringFaktureringsenhet—Faktureringsvilkår—Kostnad
Utdata · Anslått genereringskostnad · Estimat kun for sammenligning $0.272 estimat før generering

Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen.

Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →

Detaljer om referansetariffen

Referanseprisplaner på modellnivå endrer ikke metodevalg, prisoverslag eller kostnader. Aktive kostnader bruker satsene til den valgte Ailoot-metoden.

Prisreferanser for videokonfigurasjoner

Priser etter konfigurasjon

Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.

KonfigurasjonFaktureringsvilkårKostnad
KonfigurasjonVideoprisFaktureringsvilkårresolution: 480pKostnad
Utdata · Videopris $0.136 per videosekund

Publisert prisreferanse for den viste konfigurasjonen. Endelige belastninger følger konfigurasjonen som faktisk faktureres.

KonfigurasjonVideoprisFaktureringsvilkårresolution: 720pKostnad
Utdata · Videopris $0.28 per videosekund

Publisert prisreferanse for den viste konfigurasjonen. Endelige belastninger følger konfigurasjonen som faktisk faktureres.

KonfigurasjonVideoprisFaktureringsvilkårresolution: 1080pKostnad
Utdata · Videopris $0.56 per videosekund

Publisert prisreferanse for den viste konfigurasjonen. Endelige belastninger følger konfigurasjonen som faktisk faktureres.

Eksempelforespørsler

Ailoot Ultra · Video

curl · opprett 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":"alibaba/wan-3.0-prime","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

Motta og lagre resultater

Ailoot Ultra · Video

Signerte innholdsadresser for ressurser du eier

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Kontroller jobbstatus
GET status for opprinnelig operasjon
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
Andre innholdslesinger
Lagre alle ferdige utdata som tilhører deg
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 ferdige resultater

Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.

Behold alle faktiske utdata du eier, og de returnerte målte metadataene.

Hvis det opprinnelige svaret må kontrolleres

503 result_pending_check + opprinnelig id + X-Should-Retry:false; gjenta aldri den opprinnelige sendingen

Svarfelter
FeltTypeBetydning
FeltindexTypeintegerBetydningNullbasert posisjon for denne videoen i utdatalisten.
Feltcontent_urlTypestringBetydningSignert HTTPS-basert URL for nedlasting av denne ferdigstilte videoen.
Feltsha256Typestring | nullBetydningSHA-256-kontrollsum for den opprinnelige videoens byte; null hvis utilgjengelig.
Feltsize_bytesTypeinteger | nullBetydningStørrelsen på den opprinnelige videofilen i byte; null hvis utilgjengelig.
Feltduration_msTypeinteger | nullBetydningMålt videovarighet i millisekunder; null hvis utilgjengelig.
FeltwidthTypeinteger | nullBetydningVideobredde i piksler; null hvis utilgjengelig.
FeltheightTypeinteger | nullBetydningVideohøyde i piksler; null hvis utilgjengelig.
Feltvideo_codecTypestring | nullBetydningIdentifikator for videokodeken; null hvis ikke registrert.
Felthas_audioTypeboolean | nullBetydningOm videoen inneholder et lydspor; null hvis ikke målt.
Feltaudio_codecTypestring | nullBetydningIdentifikator for lydkodeken; null når ingen identifikator er registrert.
Feil og neste trinn
SvarVilkårNeste trinn
Svar404 · not_found_errorVilkårVideotilgang er utilgjengelig, eller denne video-ID-en ble ikke funnet.Neste trinnKontroller videotilgangen. For en eksisterende video bruker du den opprinnelige offentlige ID-en og samme API-nøkkel.
Svar401 · authentication_errorVilkårAPI-nøkkelen samsvarer ikke med den autentiserte kontoen.Neste trinnKontroller API-nøkkelen din og kontotilgangen før innsending.
Svar400 · invalid_request_errorVilkårForespørselen kunne ikke leses, eller nedlastingsindeksen er ugyldig.Neste trinnKorriger forespørselskroppen. Ved nedlasting velger du en utdataindeks som ble returnert av den opprinnelige oppgaven.
Svar422 · price_unavailableVilkårDen valgte videokonfigurasjonen kan ikke prises.Neste trinnVelg en støttet videokonfigurasjon og fyll ut de påkrevde alternativene før du sender en korrigert forespørsel.
Svar422 · invalid_request_errorVilkårVideoinndata eller den opprinnelige fortsettelsesoppgaven er ugyldig.Neste trinnBruk gyldige HTTPS-inndata. Ved fortsettelse bruker du den ferdigstilte originalens offentlige video-ID med samme API-nøkkel.
Svar402 · billing_errorVilkårDen tilgjengelige saldoen eller grensene tillater ikke en reservasjon.Neste trinnKontroller tilgjengelig saldo og grenser før du sender en ny forespørsel.
Svar503 · server_errorVilkårVideokontroll, lagring eller tjenestetilgang er midlertidig utilgjengelig.Neste trinnVent til tjenesten er tilgjengelig. Hvis du allerede har en video-ID, kontroller den opprinnelige oppgaven fremfor å opprette en ny generering.
Svar503 · result_pending_checkVilkårDet opprinnelige videoresultatet og belastningen må kontrolleres.Neste trinnBehold den returnerte video-ID-en og kontroller den oppgaven. Ikke send en erstatningsforespørsel om generering mens den kontrolleres.
Svar503 · owned_result_unavailableVilkårNedlasting av den eksisterende videoen er midlertidig utilgjengelig.Neste trinnKontroller den samme videooppgaven senere og last ned de eksisterende utdataene. En ny generering oppretter en separat operasjon.
Svar409 · video_not_readyVilkårVideoinnholdet er ikke publisert.Neste trinnKontroller den opprinnelige oppgavestatusen. Last ned etter at den rapporterer completed; hvis den rapporterer failed, følg varselet om kontroll av belastningen.

Aliaser

Modellaliaser

Ailoot Ultra alibaba/wan-3.0-prime

Aliaser for metodestier

Bruk metodestiene som vises ovenfor.

Tilknyttede anroper-ID-er

alibaba/wan-3.0-prime

FAQ · Alibaba: Wan 3.0 Prime
Hvilke inndata og resultater er tilgjengelige?

POST /v1/videos · alibaba/wan-3.0-prime: text, image → video

Hvilke felt bruker forespørselen?

POST /v1/videos · alibaba/wan-3.0-prime: model, prompt, duration, resolution, aspect_ratio, generate_audio, frame_images, input_references, seed, callback_url, session_id, trace, user

Hvilke grenser gjelder?

POST /v1/videos · alibaba/wan-3.0-prime: duration.minimum: 1; duration.maximum: 600; frame_images.max_items: 1; frame_images.min_items: 1; seed.minimum: -9223372036854775808; seed.maximum: 9223372036854775807

Flere detaljer

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement
Velg et rabattabonnement for faste forespørsler.
Kampanjekode opptil 50%
Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.
Kostnader i historikken
Modell, tokener og beløp lagres for hver forespørsel.

Velg abonnement · Se modellpriser

Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon
Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.
Forhandlerlisens
Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.
Dokumenter på nettstedet
Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

Be om forhandlerlisens · Offentlig tilbud og lisensavtale