{
  "aboutHtml": "<p>Det nøyaktige modellvalget kling-v1-6 identifiserer Klings tekst-til-video-profil. Send JSON til POST /v1/videos/generations med model satt til kling-v1-6 og den skriftlige scenen i prompt. POST /v1/videos godtar også den samme genereringsforespørselen. En tydelig forespørsel beskriver hva som er synlig, hva som skjer under opptaket, og hvordan kameraet observerer det. Den minimale sceneforespørselen oppgir modellvelgeren og prompten og lar ytterligere opptaksinnstillinger være uspesifiserte.</p><p>For et produktopptak beskriver du objektet, underlaget, lyssettingen og én synlig handling, som en langsom rotasjon eller en endring i kameraposisjon. For et scenekonsept identifiserer du omgivelsene, hovedmotivet og bevegelsen gjennom bildet. Hold handlingen lett å oppfatte innenfor det ønskede klippet. En prompt kan beskrive en liten båt som krysser en stille innsjø, et vidt utsnitt fra bredden, tidlig morgenlys og et stabilt kamera som følger båtens retning.</p><p>Grensen for prompt er 500 tegn. Den valgfrie negative_prompt kan inneholde opptil 200 tegn og beskriver uønskede elementer. De dokumenterte duration-valgene for denne profilen er 5 og 10 sekunder. mode-verdiene er std og pro. cfg_scale er et tall fra 0 til 1; dokumentasjonen beskriver høyere verdier som sterkere etterlevelse av teksten. Velg innstillinger for det konkrete opptaket og behold de innsendte verdiene sammen med resultatet.</p><p>Det dokumenterte camera_control-objektet oppgir kameratypene simple, down_back, forward_up, right_turn_forward og left_turn_forward. Konfigurasjonen for simple navngir innstillingene horizontal, vertical, pan, tilt, roll og zoom. Det minimale teksteksemplet gir et nyttig utgangspunkt når en scene kan beskrives uten et separat kamerastyringsobjekt. Gi kamerabevegelsen et tydelig formål i prompten, som å avdekke motivet eller følge bevegelsen.</p><p>Innsendingen starter en asynkron oppgave. Behold den returnerte id, headeren X-Ailoot-Task-Id og polling_url, og bruk deretter GET på denne polling_url med den samme Ailoot API-nøkkelen for å lese den opprinnelige oppgaven. Oppgavestatusen finnes i data.task_status: submitted og processing betyr at den venter eller pågår, succeed betyr vellykket, og failed betyr mislykket. En bekreftelse på innsending er derfor et mellomresultat. Ved suksess henter du hver URL i data.task_result.videos[].url; dette er lenker til resultatfiler som Ailoot administrerer. GET /v1/videos/{id}/content henter det første resultatet, og spørringsparameteren index velger et returnert resultat etter den nullbaserte indeksen. Behold statussvaret sammen med det valgte klippet. Hvis en tidsavbruddsfeil eller et result_pending_check-svar oppstår, beholder du den opprinnelige returnerte identiteten og kontrollerer den operasjonen i stedet for å sende inn opptaket på nytt.</p><p>Vurder hele det ferdige opptaket: Den tiltenkte handlingen, motivets utseende, innrammingen og bevegelsen hører alle til opptaksbeskrivelsen. Akkurat denne profilen gir tekst-til-video-arbeidsflyten som er beskrevet her. En returnert oppgave som fortsatt trenger en statuskontroll, bør følges med sin opprinnelige identitet, også når en klientforespørsel får tidsavbrudd; behold oppgaveinformasjonen før du vurderer en ny genereringsforespørsel.</p>",
  "aboutText": "Det nøyaktige modellvalget kling-v1-6 identifiserer Klings tekst-til-video-profil. Send JSON til POST /v1/videos/generations med model satt til kling-v1-6 og den skriftlige scenen i prompt. POST /v1/videos godtar også den samme genereringsforespørselen. En tydelig forespørsel beskriver hva som er synlig, hva som skjer under opptaket, og hvordan kameraet observerer det. Den minimale sceneforespørselen oppgir modellvelgeren og prompten og lar ytterligere opptaksinnstillinger være uspesifiserte.\n\nFor et produktopptak beskriver du objektet, underlaget, lyssettingen og én synlig handling, som en langsom rotasjon eller en endring i kameraposisjon. For et scenekonsept identifiserer du omgivelsene, hovedmotivet og bevegelsen gjennom bildet. Hold handlingen lett å oppfatte innenfor det ønskede klippet. En prompt kan beskrive en liten båt som krysser en stille innsjø, et vidt utsnitt fra bredden, tidlig morgenlys og et stabilt kamera som følger båtens retning.\n\nGrensen for prompt er 500 tegn. Den valgfrie negative_prompt kan inneholde opptil 200 tegn og beskriver uønskede elementer. De dokumenterte duration-valgene for denne profilen er 5 og 10 sekunder. mode-verdiene er std og pro. cfg_scale er et tall fra 0 til 1; dokumentasjonen beskriver høyere verdier som sterkere etterlevelse av teksten. Velg innstillinger for det konkrete opptaket og behold de innsendte verdiene sammen med resultatet.\n\nDet dokumenterte camera_control-objektet oppgir kameratypene simple, down_back, forward_up, right_turn_forward og left_turn_forward. Konfigurasjonen for simple navngir innstillingene horizontal, vertical, pan, tilt, roll og zoom. Det minimale teksteksemplet gir et nyttig utgangspunkt når en scene kan beskrives uten et separat kamerastyringsobjekt. Gi kamerabevegelsen et tydelig formål i prompten, som å avdekke motivet eller følge bevegelsen.\n\nInnsendingen starter en asynkron oppgave. Behold den returnerte id, headeren X-Ailoot-Task-Id og polling_url, og bruk deretter GET på denne polling_url med den samme Ailoot API-nøkkelen for å lese den opprinnelige oppgaven. Oppgavestatusen finnes i data.task_status: submitted og processing betyr at den venter eller pågår, succeed betyr vellykket, og failed betyr mislykket. En bekreftelse på innsending er derfor et mellomresultat. Ved suksess henter du hver URL i data.task_result.videos[].url; dette er lenker til resultatfiler som Ailoot administrerer. GET /v1/videos/{id}/content henter det første resultatet, og spørringsparameteren index velger et returnert resultat etter den nullbaserte indeksen. Behold statussvaret sammen med det valgte klippet. Hvis en tidsavbruddsfeil eller et result_pending_check-svar oppstår, beholder du den opprinnelige returnerte identiteten og kontrollerer den operasjonen i stedet for å sende inn opptaket på nytt.\n\nVurder hele det ferdige opptaket: Den tiltenkte handlingen, motivets utseende, innrammingen og bevegelsen hører alle til opptaksbeskrivelsen. Akkurat denne profilen gir tekst-til-video-arbeidsflyten som er beskrevet her. En returnert oppgave som fortsatt trenger en statuskontroll, bør følges med sin opprinnelige identitet, også når en klientforespørsel får tidsavbrudd; behold oppgaveinformasjonen før du vurderer en ny genereringsforespørsel.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "fe41ef036a65f6860df20a7d35b02c21d3619d27e3746f2f3aa2471684e9d842",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nb",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">kling-v1-6</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Lukk\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kling-v1-6</code><button type=\"button\" id=\"copy-id\">Kopier ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Seksjoner i modellkortet\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Inndata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Eksempler</button><button type=\"button\" data-card-jump=\"results\">Resultater</button><button type=\"button\" data-card-jump=\"aliases\">Aliaser</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|kling-v1-6\">Video</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">kling-v1-6-profilen genererer video fra en skriftlig scenebeskrivelse. Planlegg et kort opptak med et tydelig motiv, en handling og kameraføring, og bruk de dokumenterte varighetsvalgene på fem eller ti sekunder. Genereringen er asynkron: Behold den returnerte oppgaveidentiteten og hent den ferdige videoen etter at den opprinnelige oppgaven er fullført med et vellykket resultat.</p><dl class=\"card-io\" data-card-io><div><dt>Godkjente inndata</dt><dd>Tekst</dd></div><div><dt>Resultater</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Det nøyaktige modellvalget kling-v1-6 identifiserer Klings tekst-til-video-profil. Send JSON til POST /v1/videos/generations med model satt til kling-v1-6 og den skriftlige scenen i prompt. POST /v1/videos godtar også den samme genereringsforespørselen. En tydelig forespørsel beskriver hva som er synlig, hva som skjer under opptaket, og hvordan kameraet observerer det. Den minimale sceneforespørselen oppgir modellvelgeren og prompten og lar ytterligere opptaksinnstillinger være uspesifiserte.</p><p>For et produktopptak beskriver du objektet, underlaget, lyssettingen og én synlig handling, som en langsom rotasjon eller en endring i kameraposisjon. For et scenekonsept identifiserer du omgivelsene, hovedmotivet og bevegelsen gjennom bildet. Hold handlingen lett å oppfatte innenfor det ønskede klippet. En prompt kan beskrive en liten båt som krysser en stille innsjø, et vidt utsnitt fra bredden, tidlig morgenlys og et stabilt kamera som følger båtens retning.</p><p>Grensen for prompt er 500 tegn. Den valgfrie negative_prompt kan inneholde opptil 200 tegn og beskriver uønskede elementer. De dokumenterte duration-valgene for denne profilen er 5 og 10 sekunder. mode-verdiene er std og pro. cfg_scale er et tall fra 0 til 1; dokumentasjonen beskriver høyere verdier som sterkere etterlevelse av teksten. Velg innstillinger for det konkrete opptaket og behold de innsendte verdiene sammen med resultatet.</p><p>Det dokumenterte camera_control-objektet oppgir kameratypene simple, down_back, forward_up, right_turn_forward og left_turn_forward. Konfigurasjonen for simple navngir innstillingene horizontal, vertical, pan, tilt, roll og zoom. Det minimale teksteksemplet gir et nyttig utgangspunkt når en scene kan beskrives uten et separat kamerastyringsobjekt. Gi kamerabevegelsen et tydelig formål i prompten, som å avdekke motivet eller følge bevegelsen.</p><p>Innsendingen starter en asynkron oppgave. Behold den returnerte id, headeren X-Ailoot-Task-Id og polling_url, og bruk deretter GET på denne polling_url med den samme Ailoot API-nøkkelen for å lese den opprinnelige oppgaven. Oppgavestatusen finnes i data.task_status: submitted og processing betyr at den venter eller pågår, succeed betyr vellykket, og failed betyr mislykket. En bekreftelse på innsending er derfor et mellomresultat. Ved suksess henter du hver URL i data.task_result.videos[].url; dette er lenker til resultatfiler som Ailoot administrerer. GET /v1/videos/{id}/content henter det første resultatet, og spørringsparameteren index velger et returnert resultat etter den nullbaserte indeksen. Behold statussvaret sammen med det valgte klippet. Hvis en tidsavbruddsfeil eller et result_pending_check-svar oppstår, beholder du den opprinnelige returnerte identiteten og kontrollerer den operasjonen i stedet for å sende inn opptaket på nytt.</p><p>Vurder hele det ferdige opptaket: Den tiltenkte handlingen, motivets utseende, innrammingen og bevegelsen hører alle til opptaksbeskrivelsen. Akkurat denne profilen gir tekst-til-video-arbeidsflyten som er beskrevet her. En returnert oppgave som fortsatt trenger en statuskontroll, bør følges med sin opprinnelige identitet, også når en klientforespørsel får tidsavbrudd; behold oppgaveinformasjonen før du vurderer en ny genereringsforespørsel.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgjengelig i Ailoot · inndata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Inndatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdatatyper</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Felt</th><th>Type</th><th>Krav</th><th>Verdier &amp; grenser</th><th>Standard</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>kling-v1-6</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">mode</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>std, pro</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model_name</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>kling-v1-6</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">cfg_scale</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>number</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>Minimum: 0</div><div>Maksimum: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">negative_prompt</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>5, 10</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Metodeparametere og livssyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtale</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>model, prompt, mode</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>model_name, cfg_scale, aspect_ratio, negative_prompt, duration</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>conditions</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved.</td></tr></tbody></table></div><p>Metodealiaser: <code>/v1/videos/generations</code></p><p>Livssyklus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div class=\"card-result-process\" data-billing-basis><h5>Slik beregnes det endelige beløpet</h5><p class=\"note-s\">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.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.</p><dl data-price-conditions><dt>Hurtigmodus</dt><dd>Ikke angitt <span class=\"note-s\">Når hurtigmodus er valgt</span></dd><dt>Flex-modus</dt><dd>Ikke angitt <span class=\"note-s\">Når flex-modus er valgt</span></dd><dt>Maksimal resonneringsinnsats</dt><dd>Ikke angitt <span class=\"note-s\">Når justeringen «default» brukes for maksimal resonneringsinnsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Estimerte satser for sammenligning</h4><h4>Priser etter konfigurasjon</h4><p class=\"note-s\">Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasjon</th><th>Prisplan</th><th>Forventet mengde</th><th>Kostnad</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>Grunnpriser for tokener</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>Grunnsats</td><td data-cell-label=\"Forventet mengde\"><span class=\"card-cell-label\">Forventet mengde</span>—</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · Inngående tokener · Estimat kun for sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Utdata · Utgående tokener · Estimat kun for sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Lesing fra hurtigbuffer · Estimat kun for sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer · Estimat kun for sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer, 1 time · Estimat kun for sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div></td></tr><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>Estimated generation cost</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>—</td><td data-cell-label=\"Forventet mengde\"><span class=\"card-cell-label\">Forventet mengde</span>estimat for én generering</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · Anslått genereringskostnad · Estimat kun for sammenligning</span> <b>$6</b> <span class=\"price-unit\">estimat før generering</span></div><p class=\"note-s\">This estimate is not an additional charge or a fixed rate for the completed generation.</p></td></tr></tbody></table></div></div><p class=\"note-s\">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. <a href=\"/docs/nb/billing/reserve/\">Slik fungerer reservasjon og oppgjør →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelforespørsler</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-15-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-15-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · opprett én gang og bevar hele resultatet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopier kode\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-15-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-15-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;kling-v1-6&quot;, &quot;prompt&quot;: &quot;A happy holiday scene at the beach.&quot;, &quot;mode&quot;: &quot;pro&quot;}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Motta og lagre resultater</h3><h4>Ailoot Ultra · Video</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Behold alle ferdige resultater</h5><p class=\"note-s\">Lagre hver ferdige video eller returnerte fil; hent hver faktisk returnerte ressurs-URL.</p><p class=\"note-s\">Retain the complete response, all actual results, original identifiers, usage and response headers.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det opprinnelige svaret må kontrolleres</h5><p class=\"note-s\">Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data.task_result.videos[].url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string or array, as returned</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modellaliaser</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=kling-v1-6&amp;route=Ultra&amp;caller=kling-v1-6&amp;fmt=videos\"><code>kling-v1-6</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Tilknyttede anroper-ID-er</h4><p class=\"note-s\"><a href=\"#m=kling-v1-6&amp;route=Ultra&amp;caller=kling-v1-6&amp;fmt=videos\"><code>kling-v1-6</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kling-v1-6",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kling-v1-6",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "mode": "pro",
              "model": "kling-v1-6",
              "prompt": "A happy holiday scene at the beach."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "succeed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "processing",
                "submitted"
              ],
              "state_field": "data.task_status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
              "family": "video",
              "fields": [
                {
                  "name": "data.task_result.videos[].url",
                  "type": "string or array, as returned"
                }
              ],
              "ownership": "Every returned selected video URL is an owned signed result after completion."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 500,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "std",
                  "pro"
                ],
                "enum_known": true,
                "name": "mode",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model_name",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "cfg_scale",
                "required": false,
                "type": "number"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 200,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": false,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "type": "string"
                },
                "cfg_scale": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "type": "integer"
                },
                "mode": {
                  "enum": [
                    "std",
                    "pro"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "model_name": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "maxLength": 200,
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 500,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "mode"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "mode": "pro",
                "model": "kling-v1-6",
                "prompt": "A happy holiday scene at the beach."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "model_name",
              "cfg_scale",
              "aspect_ratio",
              "negative_prompt",
              "duration"
            ],
            "required": [
              "model",
              "prompt",
              "mode"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "succeed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "processing",
              "submitted"
            ],
            "state_field": "data.task_status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "family": "video",
            "fields": [
              {
                "name": "data.task_result.videos[].url",
                "type": "string or array, as returned"
              }
            ],
            "ownership": "Every returned selected video URL is an owned signed result after completion."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"kling-v1-6\", \"prompt\": \"A happy holiday scene at the beach.\", \"mode\": \"pro\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "unit": "video",
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "kling-v1-6",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "95ce6e55b2bc04bbe3ef09454944db26b4299fb25cec114f514930292b6663ba",
    "input_html_sha256": "a7f9b6a40abff1cbf028abdf3854ad34f44e6d4cac6555dbcb22e21e38ea82cc",
    "private_audit_sha256": "e97bf1a7060584574ca1f562d4b2098401ea3cc1a6fd6267d20878c187f4ac12",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/kling-v1-6/",
    "description": "kling-v1-6-profilen genererer video fra en skriftlig scenebeskrivelse. Planlegg et kort opptak med et tydelig motiv, en handling og kameraføring, og bruk de dokumenterte varighetsvalgene på fem eller ti sekunder. Genereringen er asynkron: Behold den returnerte oppgaveidentiteten og hent den ferdige videoen etter at den opprinnelige oppgaven er fullført med et vellykket resultat.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/kling-v1-6/index.md",
    "title": "kling-v1-6 — Ailoot",
    "url": "https://ailoot.ai/models/nb/kling-v1-6/"
  },
  "rawModel": {
    "about": "Det nøyaktige modellvalget kling-v1-6 identifiserer Klings tekst-til-video-profil. Send JSON til POST /v1/videos/generations med model satt til kling-v1-6 og den skriftlige scenen i prompt. POST /v1/videos godtar også den samme genereringsforespørselen. En tydelig forespørsel beskriver hva som er synlig, hva som skjer under opptaket, og hvordan kameraet observerer det. Den minimale sceneforespørselen oppgir modellvelgeren og prompten og lar ytterligere opptaksinnstillinger være uspesifiserte.\n\nFor et produktopptak beskriver du objektet, underlaget, lyssettingen og én synlig handling, som en langsom rotasjon eller en endring i kameraposisjon. For et scenekonsept identifiserer du omgivelsene, hovedmotivet og bevegelsen gjennom bildet. Hold handlingen lett å oppfatte innenfor det ønskede klippet. En prompt kan beskrive en liten båt som krysser en stille innsjø, et vidt utsnitt fra bredden, tidlig morgenlys og et stabilt kamera som følger båtens retning.\n\nGrensen for prompt er 500 tegn. Den valgfrie negative_prompt kan inneholde opptil 200 tegn og beskriver uønskede elementer. De dokumenterte duration-valgene for denne profilen er 5 og 10 sekunder. mode-verdiene er std og pro. cfg_scale er et tall fra 0 til 1; dokumentasjonen beskriver høyere verdier som sterkere etterlevelse av teksten. Velg innstillinger for det konkrete opptaket og behold de innsendte verdiene sammen med resultatet.\n\nDet dokumenterte camera_control-objektet oppgir kameratypene simple, down_back, forward_up, right_turn_forward og left_turn_forward. Konfigurasjonen for simple navngir innstillingene horizontal, vertical, pan, tilt, roll og zoom. Det minimale teksteksemplet gir et nyttig utgangspunkt når en scene kan beskrives uten et separat kamerastyringsobjekt. Gi kamerabevegelsen et tydelig formål i prompten, som å avdekke motivet eller følge bevegelsen.\n\nInnsendingen starter en asynkron oppgave. Behold den returnerte id, headeren X-Ailoot-Task-Id og polling_url, og bruk deretter GET på denne polling_url med den samme Ailoot API-nøkkelen for å lese den opprinnelige oppgaven. Oppgavestatusen finnes i data.task_status: submitted og processing betyr at den venter eller pågår, succeed betyr vellykket, og failed betyr mislykket. En bekreftelse på innsending er derfor et mellomresultat. Ved suksess henter du hver URL i data.task_result.videos[].url; dette er lenker til resultatfiler som Ailoot administrerer. GET /v1/videos/{id}/content henter det første resultatet, og spørringsparameteren index velger et returnert resultat etter den nullbaserte indeksen. Behold statussvaret sammen med det valgte klippet. Hvis en tidsavbruddsfeil eller et result_pending_check-svar oppstår, beholder du den opprinnelige returnerte identiteten og kontrollerer den operasjonen i stedet for å sende inn opptaket på nytt.\n\nVurder hele det ferdige opptaket: Den tiltenkte handlingen, motivets utseende, innrammingen og bevegelsen hører alle til opptaksbeskrivelsen. Akkurat denne profilen gir tekst-til-video-arbeidsflyten som er beskrevet her. En returnert oppgave som fortsatt trenger en statuskontroll, bør følges med sin opprinnelige identitet, også når en klientforespørsel får tidsavbrudd; behold oppgaveinformasjonen før du vurderer en ny genereringsforespørsel.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "kling-v1-6",
    "input": [
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "mode": "pro",
              "model": "kling-v1-6",
              "prompt": "A happy holiday scene at the beach."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "completed_states": [
                "succeed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed"
              ],
              "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
              "mode": "submit_once_poll_original",
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "pending_states": [
                "processing",
                "submitted"
              ],
              "state_field": "data.task_status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
              "family": "video",
              "fields": [
                {
                  "name": "data.task_result.videos[].url",
                  "type": "string or array, as returned"
                }
              ],
              "ownership": "Every returned selected video URL is an owned signed result after completion."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 500,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "std",
                  "pro"
                ],
                "enum_known": true,
                "name": "mode",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  "kling-v1-6"
                ],
                "enum_known": true,
                "name": "model_name",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "cfg_scale",
                "required": false,
                "type": "number"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 200,
                "name": "negative_prompt",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "name": "duration",
                "required": false,
                "type": "integer"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "type": "string"
                },
                "cfg_scale": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "type": "integer"
                },
                "mode": {
                  "enum": [
                    "std",
                    "pro"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "model_name": {
                  "enum": [
                    "kling-v1-6"
                  ],
                  "type": "string"
                },
                "negative_prompt": {
                  "maxLength": 200,
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 500,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "mode"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "mode": "pro",
                "model": "kling-v1-6",
                "prompt": "A happy holiday scene at the beach."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "model selects this model. An omitted model_name uses the selected model; an explicit native model_name override is preserved."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "model_name",
              "cfg_scale",
              "aspect_ratio",
              "negative_prompt",
              "duration"
            ],
            "required": [
              "model",
              "prompt",
              "mode"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "completed_states": [
              "succeed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed"
            ],
            "id_source": "Use returned polling_url and id. Keep provider_task_id and X-Ailoot-Task-Id as separate original identifiers.",
            "mode": "submit_once_poll_original",
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "pending_states": [
              "processing",
              "submitted"
            ],
            "state_field": "data.task_status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "unknown": "Keep the returned public task or operation id and all headers. Read only the original task; unknown or result_pending_check does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "output": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "family": "video",
            "fields": [
              {
                "name": "data.task_result.videos[].url",
                "type": "string or array, as returned"
              }
            ],
            "ownership": "Every returned selected video URL is an owned signed result after completion."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"kling-v1-6\", \"prompt\": \"A happy holiday scene at the beach.\", \"mode\": \"pro\"}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Video",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "6",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "6",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}"
        ],
        "tiers": [],
        "unit": "video",
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "6",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "6",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "kling-v1-6",
        "request_model_id": "kling-v1-6",
        "route_label": "Ultra"
      }
    ],
    "name": "kling-v1-6",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "kling-v1-6-profilen genererer video fra en skriftlig scenebeskrivelse. Planlegg et kort opptak med et tydelig motiv, en handling og kameraføring, og bruk de dokumenterte varighetsvalgene på fem eller ti sekunder. Genereringen er asynkron: Behold den returnerte oppgaveidentiteten og hent den ferdige videoen etter at den opprinnelige oppgaven er fullført med et vellykket resultat."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "kling-v1-6-profilen genererer video fra en skriftlig scenebeskrivelse. Planlegg et kort opptak med et tydelig motiv, en handling og kameraføring, og bruk de dokumenterte varighetsvalgene på fem eller ti sekunder. Genereringen er asynkron: Behold den returnerte oppgaveidentiteten og hent den ferdige videoen etter at den opprinnelige oppgaven er fullført med et vellykket resultat.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "73fc10651adb0b58b8b7794fe50a7ef4b638b6019c7c54c9d95cd81b7f50bdfe",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "73c37269ef6e51b5c7604859d5c9719d5c0eadf9e382f4646050caa4c8595c44"
}
