{
  "aboutHtml": "<p>Grok Imagine Image Quality er SpaceXAIs navngitte modell for bildegenerering og bilderedigering, med vekt på realistiske detaljer, bedre tekstgjengivelse og tett oppfølging av en kreativ oppdragsbeskrivelse. Den tar imot tekst og eventuelle bildereferanser og returnerer et bilde. Bruksområdene omfatter produktvisualisering, kampanjemateriell, innhold til sosiale medier, illustrasjoner og ikoner i grensesnittstil. Stilspennet omfatter fotografiske og filmatiske bilder så vel som grafiske arbeider.</p><p>For en produktscene bør du beskrive objektet, plasseringen, materialet, lyset og kameravinkelen før du legger til dekorative stilvalg. Legg ved en referanse når produktets form eller påskrift må være gjenkjennelig. En nyttig beskrivelse kan plassere en liten flaske med etikett på en steinflate, med en definert palett og plass til en overskrift. For et ikon eller en grafisk figur bør du angi form, kontrast og tiltenkt visuell størrelse. Resultatet er et rendret bilde, ikke et fungerende grensesnitt eller en redigerbar layoutfil.</p><p>Ved redigering legges et kildebilde til instruksjonen. Lagrede bildereferanser i produsentens arbeidsflyt må være fullstendig lastet opp og bruke PNG, JPEG eller WebP. Beskriv endringen og det som skal bevares: en ny bakgrunn, et annet materiale, en avgrenset stilendring eller en korrigert bildetekst. Når flere referanser bidrar til en komposisjon, bør du beskrive rollene deres hver for seg, for eksempel produktet fra ett bilde og merkevareuttrykket fra et annet. Behold den opprinnelige produktreferansen tilgjengelig, slik at senere endringer ikke mister identiteten som ble etablert i det første bildet.</p><p>En praktisk sekvens kan begynne med en produktgjengivelse og deretter plassere det samme motivet i en annen setting eller en komposisjon for trykk. Bruk det valgte resultatet som inndata for neste redigering, og hold den nye instruksjonen konsentrert om endringen. For en kampanjevariant bør du beholde motivet og hierarkiet som fungerte, mens du endrer omgivelsene eller støtteteksten. Slik utvikles bildet gjennom uttrykkelige trinn, i stedet for å forvente at en senere prompt husker et tidligere bilde som ikke er vedlagt.</p><p>Typografi og fine teksturer er en del av Quality-modellens kreative fokus. Oppgi nøyaktige ord, tall og plassering for en meny, etikett eller annonse, og beskriv hvordan teksten skal passe til materialet eller komposisjonen. Kontroller stavemåte, leserekkefølge og liten skrift i den faktiske visningsstørrelsen. En realistisk tekstur kan støtte produktets visuelle presentasjon, mens faktiske produktegenskaper fortsatt må komme fra den godkjente oppdragsbeskrivelsen og referansene.</p><p>Produsentens bildearbeidsflyt støtter oppløsningsvalgene 1K og 2K samt liggende, kvadratiske eller stående komposisjoner, med automatisk valg av sideforhold når dette ikke er angitt. Velg bildeformat ut fra motivet og tekstplasseringen, i stedet for å behandle oppløsning som en erstatning for layout. Flere alternativer kan bestilles med den vanlige innstillingen for antall genererte bilder, som går fra ett til ti og som standard er satt til ett. Sammenligning av alternativer er nyttig når du velger komposisjon; det fastslår ikke at alle ønskede detaljer finnes i hvert resultat.</p><p>Bilder returneres vanligvis via midlertidige nettadresser, med base64-levering tilgjengelig når bildet må inkluderes direkte i en applikasjonsartefakt. Behold selve bildefilen du velger, i stedet for å la en midlertidig adresse være prosjektets eneste kopi. Produsentens integrasjon for bildefiler viser også hvordan lagrede bildeidentifikatorer kan brukes som referanser, og hvordan genererte bildefiler kan lagres til senere bruk. Disse valgene for levering og lagring er adskilt fra den visuelle oppdragsbeskrivelsen som bestemmer hva bildet skal vise.</p><p>Den navngitte Image Quality-modellen er forskjellig fra kvalitetsparameteren low, medium og auto i Grok Imagine Image 2.0. Disse senere kvalitetsvalgene og de utvidede mulighetene for referanser eller sideforhold skal ikke behandles som innstillinger i denne profilen. Å be om flere alternativer i ett bildekall er også noe annet enn produsentens Batch API, som den konkrete siden for Quality-modellen ikke oppgir som støttet. Hold modellvalg, prompt, referanser og valgt resultat knyttet sammen når du forbereder en arbeidsflyt som skal kunne gjentas.</p><p>For å få et nyttig ferdig bilde bør du sammenligne ønsket scene, produktdetaljer, typografi og elementene som skulle bevares, med oppdragsbeskrivelsen. Deretter endrer du den konkrete delen som ikke traff målet. Et generert stillbilde kan bli en referanse for en separat videooppgave, men bildemodellens egen artefakt forblir et bilde. Bevar versjonen som fungerte, og referansematerialet, slik at en senere kampanjeredigering eller endring av plassering kan videreutvikle den samme kreative retningen.</p>",
  "aboutText": "Grok Imagine Image Quality er SpaceXAIs navngitte modell for bildegenerering og bilderedigering, med vekt på realistiske detaljer, bedre tekstgjengivelse og tett oppfølging av en kreativ oppdragsbeskrivelse. Den tar imot tekst og eventuelle bildereferanser og returnerer et bilde. Bruksområdene omfatter produktvisualisering, kampanjemateriell, innhold til sosiale medier, illustrasjoner og ikoner i grensesnittstil. Stilspennet omfatter fotografiske og filmatiske bilder så vel som grafiske arbeider.\n\nFor en produktscene bør du beskrive objektet, plasseringen, materialet, lyset og kameravinkelen før du legger til dekorative stilvalg. Legg ved en referanse når produktets form eller påskrift må være gjenkjennelig. En nyttig beskrivelse kan plassere en liten flaske med etikett på en steinflate, med en definert palett og plass til en overskrift. For et ikon eller en grafisk figur bør du angi form, kontrast og tiltenkt visuell størrelse. Resultatet er et rendret bilde, ikke et fungerende grensesnitt eller en redigerbar layoutfil.\n\nVed redigering legges et kildebilde til instruksjonen. Lagrede bildereferanser i produsentens arbeidsflyt må være fullstendig lastet opp og bruke PNG, JPEG eller WebP. Beskriv endringen og det som skal bevares: en ny bakgrunn, et annet materiale, en avgrenset stilendring eller en korrigert bildetekst. Når flere referanser bidrar til en komposisjon, bør du beskrive rollene deres hver for seg, for eksempel produktet fra ett bilde og merkevareuttrykket fra et annet. Behold den opprinnelige produktreferansen tilgjengelig, slik at senere endringer ikke mister identiteten som ble etablert i det første bildet.\n\nEn praktisk sekvens kan begynne med en produktgjengivelse og deretter plassere det samme motivet i en annen setting eller en komposisjon for trykk. Bruk det valgte resultatet som inndata for neste redigering, og hold den nye instruksjonen konsentrert om endringen. For en kampanjevariant bør du beholde motivet og hierarkiet som fungerte, mens du endrer omgivelsene eller støtteteksten. Slik utvikles bildet gjennom uttrykkelige trinn, i stedet for å forvente at en senere prompt husker et tidligere bilde som ikke er vedlagt.\n\nTypografi og fine teksturer er en del av Quality-modellens kreative fokus. Oppgi nøyaktige ord, tall og plassering for en meny, etikett eller annonse, og beskriv hvordan teksten skal passe til materialet eller komposisjonen. Kontroller stavemåte, leserekkefølge og liten skrift i den faktiske visningsstørrelsen. En realistisk tekstur kan støtte produktets visuelle presentasjon, mens faktiske produktegenskaper fortsatt må komme fra den godkjente oppdragsbeskrivelsen og referansene.\n\nProdusentens bildearbeidsflyt støtter oppløsningsvalgene 1K og 2K samt liggende, kvadratiske eller stående komposisjoner, med automatisk valg av sideforhold når dette ikke er angitt. Velg bildeformat ut fra motivet og tekstplasseringen, i stedet for å behandle oppløsning som en erstatning for layout. Flere alternativer kan bestilles med den vanlige innstillingen for antall genererte bilder, som går fra ett til ti og som standard er satt til ett. Sammenligning av alternativer er nyttig når du velger komposisjon; det fastslår ikke at alle ønskede detaljer finnes i hvert resultat.\n\nBilder returneres vanligvis via midlertidige nettadresser, med base64-levering tilgjengelig når bildet må inkluderes direkte i en applikasjonsartefakt. Behold selve bildefilen du velger, i stedet for å la en midlertidig adresse være prosjektets eneste kopi. Produsentens integrasjon for bildefiler viser også hvordan lagrede bildeidentifikatorer kan brukes som referanser, og hvordan genererte bildefiler kan lagres til senere bruk. Disse valgene for levering og lagring er adskilt fra den visuelle oppdragsbeskrivelsen som bestemmer hva bildet skal vise.\n\nDen navngitte Image Quality-modellen er forskjellig fra kvalitetsparameteren low, medium og auto i Grok Imagine Image 2.0. Disse senere kvalitetsvalgene og de utvidede mulighetene for referanser eller sideforhold skal ikke behandles som innstillinger i denne profilen. Å be om flere alternativer i ett bildekall er også noe annet enn produsentens Batch API, som den konkrete siden for Quality-modellen ikke oppgir som støttet. Hold modellvalg, prompt, referanser og valgt resultat knyttet sammen når du forbereder en arbeidsflyt som skal kunne gjentas.\n\nFor å få et nyttig ferdig bilde bør du sammenligne ønsket scene, produktdetaljer, typografi og elementene som skulle bevares, med oppdragsbeskrivelsen. Deretter endrer du den konkrete delen som ikke traff målet. Et generert stillbilde kan bli en referanse for en separat videooppgave, men bildemodellens egen artefakt forblir et bilde. Bevar versjonen som fungerte, og referansematerialet, slik at en senere kampanjeredigering eller endring av plassering kan videreutvikle den samme kreative retningen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "030a3fe824627a5f01b265c280e97697e2cc798af75db0b638374231484dfec4",
    "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\">SpaceXAI: Grok Imagine Image Quality</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Lukk\">×</button></div><div class=\"idline\"><span>SpaceXAI /</span><code>x-ai/grok-imagine-image-quality</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|images|/v1/images/generations|x-ai%2Fgrok-imagine-image-quality\">Bilder</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\">Grok Imagine Image Quality genererer og redigerer bilder med vekt på realisme, tekstgjengivelse og kreativ kontroll. Bruk en presis tekstbeskrivelse og eventuelle referanser til å utvikle produktbilder, kampanjemateriell, ikoner eller en avgrenset endring av et eksisterende bilde.</p><dl class=\"card-io\" data-card-io><div><dt>Godkjente inndata</dt><dd>Tekst · Bilder</dd></div><div><dt>Resultater</dt><dd>Bilder</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>Grok Imagine Image Quality er SpaceXAIs navngitte modell for bildegenerering og bilderedigering, med vekt på realistiske detaljer, bedre tekstgjengivelse og tett oppfølging av en kreativ oppdragsbeskrivelse. Den tar imot tekst og eventuelle bildereferanser og returnerer et bilde. Bruksområdene omfatter produktvisualisering, kampanjemateriell, innhold til sosiale medier, illustrasjoner og ikoner i grensesnittstil. Stilspennet omfatter fotografiske og filmatiske bilder så vel som grafiske arbeider.</p><p>For en produktscene bør du beskrive objektet, plasseringen, materialet, lyset og kameravinkelen før du legger til dekorative stilvalg. Legg ved en referanse når produktets form eller påskrift må være gjenkjennelig. En nyttig beskrivelse kan plassere en liten flaske med etikett på en steinflate, med en definert palett og plass til en overskrift. For et ikon eller en grafisk figur bør du angi form, kontrast og tiltenkt visuell størrelse. Resultatet er et rendret bilde, ikke et fungerende grensesnitt eller en redigerbar layoutfil.</p><p>Ved redigering legges et kildebilde til instruksjonen. Lagrede bildereferanser i produsentens arbeidsflyt må være fullstendig lastet opp og bruke PNG, JPEG eller WebP. Beskriv endringen og det som skal bevares: en ny bakgrunn, et annet materiale, en avgrenset stilendring eller en korrigert bildetekst. Når flere referanser bidrar til en komposisjon, bør du beskrive rollene deres hver for seg, for eksempel produktet fra ett bilde og merkevareuttrykket fra et annet. Behold den opprinnelige produktreferansen tilgjengelig, slik at senere endringer ikke mister identiteten som ble etablert i det første bildet.</p><p>En praktisk sekvens kan begynne med en produktgjengivelse og deretter plassere det samme motivet i en annen setting eller en komposisjon for trykk. Bruk det valgte resultatet som inndata for neste redigering, og hold den nye instruksjonen konsentrert om endringen. For en kampanjevariant bør du beholde motivet og hierarkiet som fungerte, mens du endrer omgivelsene eller støtteteksten. Slik utvikles bildet gjennom uttrykkelige trinn, i stedet for å forvente at en senere prompt husker et tidligere bilde som ikke er vedlagt.</p><p>Typografi og fine teksturer er en del av Quality-modellens kreative fokus. Oppgi nøyaktige ord, tall og plassering for en meny, etikett eller annonse, og beskriv hvordan teksten skal passe til materialet eller komposisjonen. Kontroller stavemåte, leserekkefølge og liten skrift i den faktiske visningsstørrelsen. En realistisk tekstur kan støtte produktets visuelle presentasjon, mens faktiske produktegenskaper fortsatt må komme fra den godkjente oppdragsbeskrivelsen og referansene.</p><p>Produsentens bildearbeidsflyt støtter oppløsningsvalgene 1K og 2K samt liggende, kvadratiske eller stående komposisjoner, med automatisk valg av sideforhold når dette ikke er angitt. Velg bildeformat ut fra motivet og tekstplasseringen, i stedet for å behandle oppløsning som en erstatning for layout. Flere alternativer kan bestilles med den vanlige innstillingen for antall genererte bilder, som går fra ett til ti og som standard er satt til ett. Sammenligning av alternativer er nyttig når du velger komposisjon; det fastslår ikke at alle ønskede detaljer finnes i hvert resultat.</p><p>Bilder returneres vanligvis via midlertidige nettadresser, med base64-levering tilgjengelig når bildet må inkluderes direkte i en applikasjonsartefakt. Behold selve bildefilen du velger, i stedet for å la en midlertidig adresse være prosjektets eneste kopi. Produsentens integrasjon for bildefiler viser også hvordan lagrede bildeidentifikatorer kan brukes som referanser, og hvordan genererte bildefiler kan lagres til senere bruk. Disse valgene for levering og lagring er adskilt fra den visuelle oppdragsbeskrivelsen som bestemmer hva bildet skal vise.</p><p>Den navngitte Image Quality-modellen er forskjellig fra kvalitetsparameteren low, medium og auto i Grok Imagine Image 2.0. Disse senere kvalitetsvalgene og de utvidede mulighetene for referanser eller sideforhold skal ikke behandles som innstillinger i denne profilen. Å be om flere alternativer i ett bildekall er også noe annet enn produsentens Batch API, som den konkrete siden for Quality-modellen ikke oppgir som støttet. Hold modellvalg, prompt, referanser og valgt resultat knyttet sammen når du forbereder en arbeidsflyt som skal kunne gjentas.</p><p>For å få et nyttig ferdig bilde bør du sammenligne ønsket scene, produktdetaljer, typografi og elementene som skulle bevares, med oppdragsbeskrivelsen. Deretter endrer du den konkrete delen som ikke traff målet. Et generert stillbilde kan bli en referanse for en separat videooppgave, men bildemodellens egen artefakt forblir et bilde. Bevar versjonen som fungerte, og referansematerialet, slik at en senere kampanjeredigering eller endring av plassering kan videreutvikle den samme kreative retningen.</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 · Bilder</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Inndatatyper</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Utdatatyper</dt><dd><code>image</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>x-ai/grok-imagine-image-quality</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><div>Minste lengde: 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\">resolution</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>1K, 2K</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><div>1:1, 3:4, 4:3, 9:16, 16:9, 2:3, 3:2, 9:19.5, 19.5:9, 9:20, 20:9, 1:2, 2:1, auto</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\">n</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>Minimum: 1</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\">input_references</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</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>Minste antall elementer: 0</div><div>Maksimalt antall elementer: 3</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\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</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></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</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, image</td></tr></tbody></table></div><p>Livssyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · faktisk returnert task_id eller oppføring i mediebiblioteket</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_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>Faktureringsenhet</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=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</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>Inndatabilde</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>—</td><td data-cell-label=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>per inndatabilde</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · inndatabilde · Estimat kun for sammenligning</span> <b>$0.02</b> <span class=\"price-unit\">per inndatabilde</span></div></td></tr><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>Anslått genereringskostnad</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=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>—</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Utdata · Anslått genereringskostnad · Estimat kun for sammenligning</span> <b>$0.1</b> <span class=\"price-unit\">estimat før generering</span></div><p class=\"note-s\">Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen.</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 · Bilder</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-2718-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2718-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</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-2718-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2718-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={&#39;model&#39;: &#39;x-ai/grok-imagine-image-quality&#39;, &#39;prompt&#39;: &#39;a red panda astronaut floating in space, studio lighting&#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/images/generations \\\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\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(&quot;No completed images; retain the full response&quot;)\n    for index, item in enumerate(items):\n        encoded=item.get(&quot;b64_json&quot;)\n        uri=item.get(&quot;url&quot;, &quot;&quot;)\n        if not encoded and uri.startswith(&quot;data:image/&quot;):\n            header, separator, encoded=uri.partition(&quot;,&quot;)\n            if not separator or &quot;;base64&quot; not in header: raise SystemExit(&quot;Unsupported image data URI&quot;)\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(&quot;https://api.ailoot.ai&quot;,uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=&quot;https&quot; or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(&quot;Invalid returned image URL&quot;)\n            owned=parsed.netloc==&quot;api.ailoot.ai&quot; and parsed.path.startswith(&quot;/v1/media/assets/&quot;) and parsed.path.endswith(&quot;/content&quot;)\n            args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,uri]\n            if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n            temporary=Path(f&quot;image-{index}.bin&quot;)\n            subprocess.run(args+[&quot;-o&quot;,str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(&quot;Image has neither bytes nor URL&quot;)\n        if not raw: raise SystemExit(&quot;Empty image result&quot;)\n        ext=&quot;png&quot; if raw.startswith(b&quot;\\x89PNG&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;svg&quot; if raw.lstrip().startswith((b&quot;&lt;svg&quot;,b&quot;&lt;?xml&quot;)) else &quot;bin&quot;\n        Path(f&quot;image-{index}.{ext}&quot;).write_bytes(raw)\n    print(&quot;Every returned image saved; complete response metadata retained&quot;)\nsave_images(json.loads(Path(&quot;result.json&quot;).read_text())[&quot;data&quot;])\nPY_RESULT\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 · Bilder</h4><p class=\"note-s\">Last ned hvert returnerte bilde eller lagre Base64-innholdet</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Andre innholdslesinger</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-2719-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2719-panel-0\" aria-selected=\"true\" tabindex=\"0\">Les eksisterende ressurser som tilhører deg</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-2719-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2719-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Behold alle ferdige resultater</h5><p class=\"note-s\">Lagre hvert ferdige bilde; hent hver returnerte URL eller dekod Base64-innholdet.</p><p class=\"note-s\">Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det opprinnelige svaret må kontrolleres</h5><p class=\"note-s\">Bevar returnert X-Client-Request-ID for avstemming. Les bare faktisk returnerte task_id/asset_id-verdier eller egne oppføringer i mediebiblioteket; bygg aldri en oppgave-URL fra operasjons-ID-en, og send aldri opprettelsesforespørselen på nytt.</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\">created</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></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=x-ai%2Fgrok-imagine-image-quality&amp;route=Ultra&amp;caller=x-ai%2Fgrok-imagine-image-quality&amp;fmt=images\"><code>x-ai/grok-imagine-image-quality</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\"><code>/v1/images</code></p><h4>Tilknyttede anroper-ID-er</h4><p class=\"note-s\"><a href=\"#m=x-ai%2Fgrok-imagine-image-quality&amp;route=Ultra&amp;caller=x-ai%2Fgrok-imagine-image-quality&amp;fmt=images\"><code>x-ai/grok-imagine-image-quality</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "x-ai/grok-imagine-image-quality",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "x-ai/grok-imagine-image-quality",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|x-ai%2Fgrok-imagine-image-quality",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "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.",
          "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 and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar returnert X-Client-Request-ID for avstemming. Les bare faktisk returnerte task_id/asset_id-verdier eller egne oppføringer i mediebiblioteket; bygg aldri en oppgave-URL fra operasjons-ID-en, og send aldri opprettelsesforespørselen på nytt."
            },
            "outputs": {
              "all_results": "Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "x-ai/grok-imagine-image-quality"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "3:4",
                  "4:3",
                  "9:16",
                  "16:9",
                  "2:3",
                  "3:2",
                  "9:19.5",
                  "19.5:9",
                  "9:20",
                  "20:9",
                  "1:2",
                  "2:1",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 3,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "4:3",
                    "9:16",
                    "16:9",
                    "2:3",
                    "3:2",
                    "9:19.5",
                    "19.5:9",
                    "9:20",
                    "20:9",
                    "1:2",
                    "2:1",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 3,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-image-quality"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K",
                    "2K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "x-ai/grok-imagine-image-quality",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktisk returnert task_id eller oppføring i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.02",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.02",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "basis": "Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anslått genereringskostnad",
            "units": [
              {
                "amount": "0.1",
                "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": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "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={'model': 'x-ai/grok-imagine-image-quality', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\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/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Bilder",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "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",
          "image_input_price": null,
          "image_output_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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.02",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.02",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "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": "0.1",
                "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": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-imagine-image-quality",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "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": "0.02",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0.02",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.1",
            "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": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "x-ai/grok-imagine-image-quality",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "25ac45bc20a18c41ba12109c6e53f1c745ab7936b9881f81c7b4f4815294c117",
    "input_html_sha256": "d5d42a986573d73ce41d690a3397e4ac5a6026a6e1b3860205ddd5a5c6e3fef2",
    "private_audit_sha256": "7ff9581b4b9b3c93ab3e1740a1513478ba5643be5a5536647060513d3d8f7498",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/x-ai-grok-imagine-image-quality/",
    "description": "Grok Imagine Image Quality genererer og redigerer bilder med vekt på realisme, tekstgjengivelse og kreativ kontroll. Bruk en presis tekstbeskrivelse og eventuelle referanser til å utvikle produktbilder, kampanjemateriell, ikoner eller en avgrenset endring av et eksisterende bilde.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/x-ai-grok-imagine-image-quality/index.md",
    "title": "SpaceXAI: Grok Imagine Image Quality — Ailoot",
    "url": "https://ailoot.ai/models/nb/x-ai-grok-imagine-image-quality/"
  },
  "rawModel": {
    "about": "Grok Imagine Image Quality er SpaceXAIs navngitte modell for bildegenerering og bilderedigering, med vekt på realistiske detaljer, bedre tekstgjengivelse og tett oppfølging av en kreativ oppdragsbeskrivelse. Den tar imot tekst og eventuelle bildereferanser og returnerer et bilde. Bruksområdene omfatter produktvisualisering, kampanjemateriell, innhold til sosiale medier, illustrasjoner og ikoner i grensesnittstil. Stilspennet omfatter fotografiske og filmatiske bilder så vel som grafiske arbeider.\n\nFor en produktscene bør du beskrive objektet, plasseringen, materialet, lyset og kameravinkelen før du legger til dekorative stilvalg. Legg ved en referanse når produktets form eller påskrift må være gjenkjennelig. En nyttig beskrivelse kan plassere en liten flaske med etikett på en steinflate, med en definert palett og plass til en overskrift. For et ikon eller en grafisk figur bør du angi form, kontrast og tiltenkt visuell størrelse. Resultatet er et rendret bilde, ikke et fungerende grensesnitt eller en redigerbar layoutfil.\n\nVed redigering legges et kildebilde til instruksjonen. Lagrede bildereferanser i produsentens arbeidsflyt må være fullstendig lastet opp og bruke PNG, JPEG eller WebP. Beskriv endringen og det som skal bevares: en ny bakgrunn, et annet materiale, en avgrenset stilendring eller en korrigert bildetekst. Når flere referanser bidrar til en komposisjon, bør du beskrive rollene deres hver for seg, for eksempel produktet fra ett bilde og merkevareuttrykket fra et annet. Behold den opprinnelige produktreferansen tilgjengelig, slik at senere endringer ikke mister identiteten som ble etablert i det første bildet.\n\nEn praktisk sekvens kan begynne med en produktgjengivelse og deretter plassere det samme motivet i en annen setting eller en komposisjon for trykk. Bruk det valgte resultatet som inndata for neste redigering, og hold den nye instruksjonen konsentrert om endringen. For en kampanjevariant bør du beholde motivet og hierarkiet som fungerte, mens du endrer omgivelsene eller støtteteksten. Slik utvikles bildet gjennom uttrykkelige trinn, i stedet for å forvente at en senere prompt husker et tidligere bilde som ikke er vedlagt.\n\nTypografi og fine teksturer er en del av Quality-modellens kreative fokus. Oppgi nøyaktige ord, tall og plassering for en meny, etikett eller annonse, og beskriv hvordan teksten skal passe til materialet eller komposisjonen. Kontroller stavemåte, leserekkefølge og liten skrift i den faktiske visningsstørrelsen. En realistisk tekstur kan støtte produktets visuelle presentasjon, mens faktiske produktegenskaper fortsatt må komme fra den godkjente oppdragsbeskrivelsen og referansene.\n\nProdusentens bildearbeidsflyt støtter oppløsningsvalgene 1K og 2K samt liggende, kvadratiske eller stående komposisjoner, med automatisk valg av sideforhold når dette ikke er angitt. Velg bildeformat ut fra motivet og tekstplasseringen, i stedet for å behandle oppløsning som en erstatning for layout. Flere alternativer kan bestilles med den vanlige innstillingen for antall genererte bilder, som går fra ett til ti og som standard er satt til ett. Sammenligning av alternativer er nyttig når du velger komposisjon; det fastslår ikke at alle ønskede detaljer finnes i hvert resultat.\n\nBilder returneres vanligvis via midlertidige nettadresser, med base64-levering tilgjengelig når bildet må inkluderes direkte i en applikasjonsartefakt. Behold selve bildefilen du velger, i stedet for å la en midlertidig adresse være prosjektets eneste kopi. Produsentens integrasjon for bildefiler viser også hvordan lagrede bildeidentifikatorer kan brukes som referanser, og hvordan genererte bildefiler kan lagres til senere bruk. Disse valgene for levering og lagring er adskilt fra den visuelle oppdragsbeskrivelsen som bestemmer hva bildet skal vise.\n\nDen navngitte Image Quality-modellen er forskjellig fra kvalitetsparameteren low, medium og auto i Grok Imagine Image 2.0. Disse senere kvalitetsvalgene og de utvidede mulighetene for referanser eller sideforhold skal ikke behandles som innstillinger i denne profilen. Å be om flere alternativer i ett bildekall er også noe annet enn produsentens Batch API, som den konkrete siden for Quality-modellen ikke oppgir som støttet. Hold modellvalg, prompt, referanser og valgt resultat knyttet sammen når du forbereder en arbeidsflyt som skal kunne gjentas.\n\nFor å få et nyttig ferdig bilde bør du sammenligne ønsket scene, produktdetaljer, typografi og elementene som skulle bevares, med oppdragsbeskrivelsen. Deretter endrer du den konkrete delen som ikke traff målet. Et generert stillbilde kan bli en referanse for en separat videooppgave, men bildemodellens egen artefakt forblir et bilde. Bevar versjonen som fungerte, og referansematerialet, slik at en senere kampanjeredigering eller endring av plassering kan videreutvikle den samme kreative retningen.",
    "alias_of": null,
    "aliases": [],
    "author": "SpaceXAI",
    "capabilities": {
      "context_length": 65536,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1",
            "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": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Fullstendige priser for konfigurasjonen finnes i detaljene."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "x-ai/grok-imagine-image-quality",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "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.",
          "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 and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar returnert X-Client-Request-ID for avstemming. Les bare faktisk returnerte task_id/asset_id-verdier eller egne oppføringer i mediebiblioteket; bygg aldri en oppgave-URL fra operasjons-ID-en, og send aldri opprettelsesforespørselen på nytt."
            },
            "outputs": {
              "all_results": "Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "x-ai/grok-imagine-image-quality"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1K",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "3:4",
                  "4:3",
                  "9:16",
                  "16:9",
                  "2:3",
                  "3:2",
                  "9:19.5",
                  "19.5:9",
                  "9:20",
                  "20:9",
                  "1:2",
                  "2:1",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 3,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "4:3",
                    "9:16",
                    "16:9",
                    "2:3",
                    "3:2",
                    "9:19.5",
                    "19.5:9",
                    "9:20",
                    "20:9",
                    "1:2",
                    "2:1",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 3,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "x-ai/grok-imagine-image-quality"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                },
                "resolution": {
                  "enum": [
                    "1K",
                    "2K"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "x-ai/grok-imagine-image-quality",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktisk returnert task_id eller oppføring i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.02",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.02",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "basis": "Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anslått genereringskostnad",
            "units": [
              {
                "amount": "0.1",
                "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": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "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={'model': 'x-ai/grok-imagine-image-quality', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\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/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Bilder",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "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",
          "image_input_price": null,
          "image_output_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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0.02",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0.02",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "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": "0.1",
                "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": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-imagine-image-quality",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "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": "0.02",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0.02",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.1",
            "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": "0.1",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "x-ai/grok-imagine-image-quality",
        "request_model_id": "x-ai/grok-imagine-image-quality",
        "route_label": "Ultra"
      }
    ],
    "name": "SpaceXAI: Grok Imagine Image Quality",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1,
      "varies": false
    },
    "short": "Grok Imagine Image Quality genererer og redigerer bilder med vekt på realisme, tekstgjengivelse og kreativ kontroll. Bruk en presis tekstbeskrivelse og eventuelle referanser til å utvikle produktbilder, kampanjemateriell, ikoner eller en avgrenset endring av et eksisterende bilde."
  },
  "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": "Grok Imagine Image Quality genererer og redigerer bilder med vekt på realisme, tekstgjengivelse og kreativ kontroll. Bruk en presis tekstbeskrivelse og eventuelle referanser til å utvikle produktbilder, kampanjemateriell, ikoner eller en avgrenset endring av et eksisterende bilde.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "a45e821ce963b9d843d4d8954f9c655da674b08d95b3db8e82b9621df12cc583",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "dd0c49f5ab6b6c06967e7db55a2c2a71c3579618b86abd3e144cb05a9996405c"
}
