{
  "aboutHtml": "<p>Recraft V4 Vector er den SVG-producerende standardudgave af Recraft V4. Den er beregnet til grafik, som afhænger af tydelige former, farveflader og komposition, herunder logoer, ikonsystemer og illustrationer. Producenten beskriver V4 som en designorienteret familie med stærk promptfortolkning i både raster- og vektorarbejde. Denne udgaves leverance er redigerbar SVG-grafik, som kan justeres i en designarbejdsgang, frem for en PNG- eller WebP-bitmap.</p><p>Den nøjagtige model er recraftv4_vector, adskilt fra V4 Pro Vector og V4-rastervarianterne. Producentens størrelsesvejledning tillader fjorten forhold mellem bredde og højde til vektoroutput og siger udtrykkeligt, at SVG ikke har faste pixeldimensioner. Vælg grafikkens form med et billedformat, og vælg derefter placering og visningsstørrelse i det endelige design. Rastermodellen V4’s 1K-betegnelse definerer ikke opløsningen for denne SVG-variant.</p><p>V4’s vektorvejledning anbefaler at definere grafiktype, formlogik, farvesystem, linjeregler og layout. Til et lille ikon angiver du objektet og silhuetten, der gør det genkendeligt. Til et illustrationssystem holder du linje- og udfyldningsregler stabile på tværs af beskrivelser. Til et leveringsikon beder du om en varevogn i kontur med afrundede hjørner, én stor pakkeform og en afdæmpet palet centreret i en kvadratisk komposition. Beskriv geometrien frem for at tilføje fotografiske overfladedetaljer, når flad grafik er det ønskede resultat.</p><p>Generering understøtter prompts på op til 10,000 tegn, et tilfældigt seed, ét til seks billeder og indstillinger for foretrukne farver og baggrundsfarve. Valgfrie kompatible stile eller referencebilleder kan styre det visuelle sprog med flexible- eller precise-matching. En reference erstatter ikke instruktioner om det nye motiv eller layout. Brug én tydelig grafik eller et sammenhængende sæt referencer; nøjagtig farvematching mod en reference er ikke garanteret. Til generering med referencestil bruger du ét til ti PNG-, JPG- eller WebP-billeder, højst 64 MB i alt og under 20 MB hver. Hver reference skal have en korteste side på mindst 256 pixels, en længste side på højst 4,096 pixels og en opløsning på højst 16 megapixels. Brug enten disse referencer eller en kompatibel gemt stil frem for begge.</p><p>En særskilt billede-til-billede-arbejdsgang kan bruge en V4-vektormodel til at skabe SVG fra et eksisterende billede og en tekstlig ændringsanmodning. Den obligatoriske strength-indstilling spænder fra 0 til 1: lavere værdier holder sig tættere på kilden, mens højere værdier tillader større ændringer. Operationen accepterer PNG, JPG, WebP eller SVG inden for de dokumenterede størrelses- og opløsningsgrænser og accepterer ikke V4-stilindstillinger. Denne forskel er vigtig, når du vælger, om et billede skal levere indholdet, som omdannes, eller blot det visuelle udtryk til ny grafik. Til billede-til-billede angiver du PNG, JPG, WebP eller SVG under 20 MB, højst 16 megapixels og med begge sider mellem 256 og 4,096 pixels.</p><p>Den aktuelle V4-genereringsreference udelukker kuraterede stilnavne, negative_prompt, text_layout, artistic_level og no_text. Angiv den ønskede struktur og ordlyd i den positive beskrivelse. Til et logo- eller bogstavresultat undersøger du SVG’en i små og store størrelser for afstande, læselighed og utilsigtede detaljer. Angiv typografisk hierarki og geometriske former udtrykkeligt, og færdiggør og placér derefter vektorgrafikken efter designbeskrivelsen.</p><p>Via Ailoot vælger du dette nøjagtige model-ID i /v1/images/generations og angiver den kreative prompt. Gem hver returneret data-post, uanset om svaret indeholder en URL eller kodet billedindhold, og gem de faktiske bytes med deres returnerede indholdstype. Gem usage og eventuelle medie-task_id sammen med filen, og vurder derefter dens former, bogstavudformning og farveflader i det ønskede design.</p>",
  "aboutText": "Recraft V4 Vector er den SVG-producerende standardudgave af Recraft V4. Den er beregnet til grafik, som afhænger af tydelige former, farveflader og komposition, herunder logoer, ikonsystemer og illustrationer. Producenten beskriver V4 som en designorienteret familie med stærk promptfortolkning i både raster- og vektorarbejde. Denne udgaves leverance er redigerbar SVG-grafik, som kan justeres i en designarbejdsgang, frem for en PNG- eller WebP-bitmap.\n\nDen nøjagtige model er recraftv4_vector, adskilt fra V4 Pro Vector og V4-rastervarianterne. Producentens størrelsesvejledning tillader fjorten forhold mellem bredde og højde til vektoroutput og siger udtrykkeligt, at SVG ikke har faste pixeldimensioner. Vælg grafikkens form med et billedformat, og vælg derefter placering og visningsstørrelse i det endelige design. Rastermodellen V4’s 1K-betegnelse definerer ikke opløsningen for denne SVG-variant.\n\nV4’s vektorvejledning anbefaler at definere grafiktype, formlogik, farvesystem, linjeregler og layout. Til et lille ikon angiver du objektet og silhuetten, der gør det genkendeligt. Til et illustrationssystem holder du linje- og udfyldningsregler stabile på tværs af beskrivelser. Til et leveringsikon beder du om en varevogn i kontur med afrundede hjørner, én stor pakkeform og en afdæmpet palet centreret i en kvadratisk komposition. Beskriv geometrien frem for at tilføje fotografiske overfladedetaljer, når flad grafik er det ønskede resultat.\n\nGenerering understøtter prompts på op til 10,000 tegn, et tilfældigt seed, ét til seks billeder og indstillinger for foretrukne farver og baggrundsfarve. Valgfrie kompatible stile eller referencebilleder kan styre det visuelle sprog med flexible- eller precise-matching. En reference erstatter ikke instruktioner om det nye motiv eller layout. Brug én tydelig grafik eller et sammenhængende sæt referencer; nøjagtig farvematching mod en reference er ikke garanteret. Til generering med referencestil bruger du ét til ti PNG-, JPG- eller WebP-billeder, højst 64 MB i alt og under 20 MB hver. Hver reference skal have en korteste side på mindst 256 pixels, en længste side på højst 4,096 pixels og en opløsning på højst 16 megapixels. Brug enten disse referencer eller en kompatibel gemt stil frem for begge.\n\nEn særskilt billede-til-billede-arbejdsgang kan bruge en V4-vektormodel til at skabe SVG fra et eksisterende billede og en tekstlig ændringsanmodning. Den obligatoriske strength-indstilling spænder fra 0 til 1: lavere værdier holder sig tættere på kilden, mens højere værdier tillader større ændringer. Operationen accepterer PNG, JPG, WebP eller SVG inden for de dokumenterede størrelses- og opløsningsgrænser og accepterer ikke V4-stilindstillinger. Denne forskel er vigtig, når du vælger, om et billede skal levere indholdet, som omdannes, eller blot det visuelle udtryk til ny grafik. Til billede-til-billede angiver du PNG, JPG, WebP eller SVG under 20 MB, højst 16 megapixels og med begge sider mellem 256 og 4,096 pixels.\n\nDen aktuelle V4-genereringsreference udelukker kuraterede stilnavne, negative_prompt, text_layout, artistic_level og no_text. Angiv den ønskede struktur og ordlyd i den positive beskrivelse. Til et logo- eller bogstavresultat undersøger du SVG’en i små og store størrelser for afstande, læselighed og utilsigtede detaljer. Angiv typografisk hierarki og geometriske former udtrykkeligt, og færdiggør og placér derefter vektorgrafikken efter designbeskrivelsen.\n\nVia Ailoot vælger du dette nøjagtige model-ID i /v1/images/generations og angiver den kreative prompt. Gem hver returneret data-post, uanset om svaret indeholder en URL eller kodet billedindhold, og gem de faktiske bytes med deres returnerede indholdstype. Gem usage og eventuelle medie-task_id sammen med filen, og vurder derefter dens former, bogstavudformning og farveflader i det ønskede design.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "16f6e5f297f284e30b8f3f92e83159188254e61c24cd97f542b4a83a3f835957",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "da",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Recraft: Recraft V4 Vector</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Luk\">×</button></div><div class=\"idline\"><span>Andet /</span><code>recraft/recraft-v4-vector</code><button type=\"button\" id=\"copy-id\">Kopiér ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modelkortets afsnit\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Input og 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|recraft%2Frecraft-v4-vector\">Billeder</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\">Recraft V4 Vector skaber redigerbare SVG-logoer, illustrationer og grafiske filer ud fra en kreativ beskrivelse. Det er standardvektorudgaven af V4 med skalerbar geometri, valgfrie stilreferencer og en særskilt dokumenteret billede-til-billede-arbejdsgang.</p><dl class=\"card-io\" data-card-io><div><dt>Accepterede input</dt><dd>Tekst · Billeder</dd></div><div><dt>Resultater</dt><dd>Billeder</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.</p><div class=\"mabout\" id=\"m-about\"><p>Recraft V4 Vector er den SVG-producerende standardudgave af Recraft V4. Den er beregnet til grafik, som afhænger af tydelige former, farveflader og komposition, herunder logoer, ikonsystemer og illustrationer. Producenten beskriver V4 som en designorienteret familie med stærk promptfortolkning i både raster- og vektorarbejde. Denne udgaves leverance er redigerbar SVG-grafik, som kan justeres i en designarbejdsgang, frem for en PNG- eller WebP-bitmap.</p><p>Den nøjagtige model er recraftv4_vector, adskilt fra V4 Pro Vector og V4-rastervarianterne. Producentens størrelsesvejledning tillader fjorten forhold mellem bredde og højde til vektoroutput og siger udtrykkeligt, at SVG ikke har faste pixeldimensioner. Vælg grafikkens form med et billedformat, og vælg derefter placering og visningsstørrelse i det endelige design. Rastermodellen V4’s 1K-betegnelse definerer ikke opløsningen for denne SVG-variant.</p><p>V4’s vektorvejledning anbefaler at definere grafiktype, formlogik, farvesystem, linjeregler og layout. Til et lille ikon angiver du objektet og silhuetten, der gør det genkendeligt. Til et illustrationssystem holder du linje- og udfyldningsregler stabile på tværs af beskrivelser. Til et leveringsikon beder du om en varevogn i kontur med afrundede hjørner, én stor pakkeform og en afdæmpet palet centreret i en kvadratisk komposition. Beskriv geometrien frem for at tilføje fotografiske overfladedetaljer, når flad grafik er det ønskede resultat.</p><p>Generering understøtter prompts på op til 10,000 tegn, et tilfældigt seed, ét til seks billeder og indstillinger for foretrukne farver og baggrundsfarve. Valgfrie kompatible stile eller referencebilleder kan styre det visuelle sprog med flexible- eller precise-matching. En reference erstatter ikke instruktioner om det nye motiv eller layout. Brug én tydelig grafik eller et sammenhængende sæt referencer; nøjagtig farvematching mod en reference er ikke garanteret. Til generering med referencestil bruger du ét til ti PNG-, JPG- eller WebP-billeder, højst 64 MB i alt og under 20 MB hver. Hver reference skal have en korteste side på mindst 256 pixels, en længste side på højst 4,096 pixels og en opløsning på højst 16 megapixels. Brug enten disse referencer eller en kompatibel gemt stil frem for begge.</p><p>En særskilt billede-til-billede-arbejdsgang kan bruge en V4-vektormodel til at skabe SVG fra et eksisterende billede og en tekstlig ændringsanmodning. Den obligatoriske strength-indstilling spænder fra 0 til 1: lavere værdier holder sig tættere på kilden, mens højere værdier tillader større ændringer. Operationen accepterer PNG, JPG, WebP eller SVG inden for de dokumenterede størrelses- og opløsningsgrænser og accepterer ikke V4-stilindstillinger. Denne forskel er vigtig, når du vælger, om et billede skal levere indholdet, som omdannes, eller blot det visuelle udtryk til ny grafik. Til billede-til-billede angiver du PNG, JPG, WebP eller SVG under 20 MB, højst 16 megapixels og med begge sider mellem 256 og 4,096 pixels.</p><p>Den aktuelle V4-genereringsreference udelukker kuraterede stilnavne, negative_prompt, text_layout, artistic_level og no_text. Angiv den ønskede struktur og ordlyd i den positive beskrivelse. Til et logo- eller bogstavresultat undersøger du SVG’en i små og store størrelser for afstande, læselighed og utilsigtede detaljer. Angiv typografisk hierarki og geometriske former udtrykkeligt, og færdiggør og placér derefter vektorgrafikken efter designbeskrivelsen.</p><p>Via Ailoot vælger du dette nøjagtige model-ID i /v1/images/generations og angiver den kreative prompt. Gem hver returneret data-post, uanset om svaret indeholder en URL eller kodet billedindhold, og gem de faktiske bytes med deres returnerede indholdstype. Gem usage og eventuelle medie-task_id sammen med filen, og vurder derefter dens former, bogstavudformning og farveflader i det ønskede design.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgængelig i Ailoot · input og metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Images</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Inputtyper</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Outputtyper</dt><dd><code>image</code></dd></div><div><dt>Outputformat</dt><dd>Billedfil</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>Værdier og grænser</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åkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>recraft/recraft-v4-vector</div><div>Betingelser: Brug præcis denne routingvælger for Ailoot.</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åkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: </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>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Minimum: 1</div><div>Maksimum: 6</div><div>Betingelser: </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>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>1:1, 4:3, 3:4, 16:9, 9:16, auto</div><div>Betingelser: </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\">output_format</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>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>svg</div><div>Betingelser: </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>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: </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\">quality</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>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>auto, low, medium, high, xhigh, max</div><div>Betingelser: </div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer af inputmaterialer</summary><p class=\"note-s\"><b>Tekst til billede</b></p></details><details class=\"note-s\" data-method-contract><summary>Metodeparametre og livscyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrakt</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, prompt</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>n, aspect_ratio, output_format, input_references, quality</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text, image</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>conditions</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>Brug præcis denne routingvælger for Ailoot., quality er en almindelig dokumenteret styringsparameter; udbydere uden en kvalitetsindstilling ignorerer den. Der loves ingen kvalitetsforbedring for den enkelte model.</td></tr></tbody></table></div><p>Livscyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Den faktisk returnerede værdi af task_id eller den valgte bibliotekspost; operation_id er en separat identifikator.</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>Sådan beregnes det endelige beløb</h5><p class=\"note-s\">De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.</p><dl data-price-conditions><dt>Hurtig tilstand</dt><dd>Ikke angivet <span class=\"note-s\">Når hurtig tilstand er valgt</span></dd><dt>flex-tilstand</dt><dd>Ikke angivet <span class=\"note-s\">Når flex-tilstanden er valgt</span></dd><dt>Maksimal ræsonneringsindsats</dt><dd>Ikke angivet <span class=\"note-s\">Når default-justeringen anvendes ved maksimal ræsonneringsindsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Estimerede takster til sammenligning</h4><h4>Priser efter konfiguration</h4><p class=\"note-s\">Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Takstplan</th><th>Forventet mængde</th><th>Afregningsenhed</th><th>Beløb</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser for tokens</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>Grundtakst</td><td data-cell-label=\"Forventet mængde\"><span class=\"card-cell-label\">Forventet mængde</span>—</td><td data-cell-label=\"Afregningsenhed\"><span class=\"card-cell-label\">Afregningsenhed</span>—</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Input · Inputtokens · Estimat kun til sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Output · Outputtokens · Estimat kun til sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cachelæsning · Estimat kun til sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning · Estimat kun til sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning, 1 time · Estimat kun til sammenligning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>outputbillede</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>—</td><td data-cell-label=\"Forventet mængde\"><span class=\"card-cell-label\">Forventet mængde</span>—</td><td data-cell-label=\"Afregningsenhed\"><span class=\"card-cell-label\">Afregningsenhed</span>pr. outputbillede</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Output · outputbillede · Estimat kun til sammenligning</span> <b>$0.16</b> <span class=\"price-unit\">pr. outputbillede</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Anslået genereringsomkostning</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>—</td><td data-cell-label=\"Forventet mængde\"><span class=\"card-cell-label\">Forventet mængde</span>estimat for én generering</td><td data-cell-label=\"Afregningsenhed\"><span class=\"card-cell-label\">Afregningsenhed</span>—</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Output · Anslået genereringsomkostning · Estimat kun til sammenligning</span> <b>$0.16</b> <span class=\"price-unit\">estimat før generering</span></div><p class=\"note-s\">Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. <a href=\"/docs/da/billing/reserve/\">Sådan fungerer reservation og afregning →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelanmodninger</h3><h4>Ailoot Ultra · Images</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-2882-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2882-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · opret én gang, og bevar hele resultatet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiér 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-2882-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2882-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;recraft/recraft-v4-vector&quot;, &quot;prompt&quot;: &quot;A portrait of an Asian woman with neon green lights in the background, shallow depth of field.&quot;}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Hent og gem resultater</h3><h4>Ailoot Ultra · Images</h4><p class=\"note-s\">Hent hvert returneret billede, eller gem dets Base64-indhold</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Behold alle færdige resultater</h5><p class=\"note-s\">Gem hvert færdigt billede; hent hver returneret URL eller afkod dets Base64-indhold.</p><p class=\"note-s\">Behold hele svaret og alle headere, de oprindelige identifikatorer, hvert faktisk output og alle felter til forbrug og afregning. Gem hvert entydigt aktiv, du ejer, og behold alle roller, der henviser til det.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det oprindelige svar skal kontrolleres</h5><p class=\"note-s\">Bevar det oprindelige X-Client-Request-ID samt svaret og headerne. Et ukendt resultat eller et resultat med status result_pending_check giver ikke tilladelse til endnu en oprettelse.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</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>string</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>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fejl og næste trin</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Betingelse</th><th>Næste trin</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Et påkrævet felt, en modelvælger, en type eller en inputrepræsentation er ugyldig.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Undersøg de returnerede valideringsoplysninger, før du forbereder en separat anmodning.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span><code></code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Den oprindelige anmodning eller resultatet er ukendt eller skal kontrolleres.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Bevar de oprindelige identifikatorer og headere; læs kun understøttede status- eller biblioteksposter. Indsend ikke oprettelsesanmodningen igen.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modelaliaser</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=recraft%2Frecraft-v4-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4-vector&amp;fmt=images\"><code>recraft/recraft-v4-vector</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\">Brug metodestierne vist ovenfor.</p><h4>Relaterede kalder-ID’er</h4><p class=\"note-s\"><a href=\"#m=recraft%2Frecraft-v4-vector&amp;route=Ultra&amp;caller=recraft%2Frecraft-v4-vector&amp;fmt=images\"><code>recraft/recraft-v4-vector</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "recraft/recraft-v4-vector",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "recraft/recraft-v4-vector",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|recraft%2Frecraft-v4-vector",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "Et påkrævet felt, en modelvælger, en type eller en inputrepræsentation er ugyldig.",
                "http_status": 400,
                "recovery": "Undersøg de returnerede valideringsoplysninger, før du forbereder en separat anmodning.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Den oprindelige anmodning eller resultatet er ukendt eller skal kontrolleres.",
                "http_status": null,
                "recovery": "Bevar de oprindelige identifikatorer og headere; læs kun understøttede status- eller biblioteksposter. Indsend ikke oprettelsesanmodningen igen.",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar det oprindelige X-Client-Request-ID samt svaret og headerne. Et ukendt resultat eller et resultat med status result_pending_check giver ikke tilladelse til endnu en oprettelse.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_model_discovery_union",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_model_discovery_union",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/43",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "Behold hele svaret og alle headere, de oprindelige identifikatorer, hvert faktisk output og alle felter til forbrug og afregning. Gem hvert entydigt aktiv, du ejer, og behold alle roller, der henviser til det.",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "Brug præcis denne routingvælger for Ailoot.",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maxItems": 1,
                "minItems": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "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": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Brug præcis denne routingvælger for Ailoot.",
              "quality er en almindelig dokumenteret styringsparameter; udbydere uden en kvalitetsindstilling ignorerer den. Der loves ingen kvalitetsforbedring for den enkelte model."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "Den faktisk returnerede værdi af task_id eller den valgte bibliotekspost; operation_id er en separat identifikator.",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "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 output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anslået genereringsomkostning",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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=json.loads('{\"model\": \"recraft/recraft-v4-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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 output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "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.16",
                "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.16",
                "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": "recraft/recraft-v4-vector",
        "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.16",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.16",
            "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.16",
            "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": "recraft/recraft-v4-vector",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "9d3b51603c256230c9c0054a8872d8b8a7e29ec8f9bb73f737f9360de016c726",
    "input_html_sha256": "975464a5db79dbc2937a3149e30fd6f5aeb8738d9216142d138fd4fd93b631e9",
    "private_audit_sha256": "510f8e10597fc230ed37e93c8b922b49006dafa0ab68e96874da4b14e6c29cee",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/da/recraft-recraft-v4-vector/",
    "description": "Recraft V4 Vector skaber redigerbare SVG-logoer, illustrationer og grafiske filer ud fra en kreativ beskrivelse. Det er standardvektorudgaven af V4 med skalerbar geometri, valgfrie stilreferencer og en særskilt dokumenteret billede-til-billede-arbejdsgang.",
    "locale": "da",
    "md_url": "https://ailoot.ai/models/da/recraft-recraft-v4-vector/index.md",
    "title": "Recraft: Recraft V4 Vector — Ailoot",
    "url": "https://ailoot.ai/models/da/recraft-recraft-v4-vector/"
  },
  "rawModel": {
    "about": "Recraft V4 Vector er den SVG-producerende standardudgave af Recraft V4. Den er beregnet til grafik, som afhænger af tydelige former, farveflader og komposition, herunder logoer, ikonsystemer og illustrationer. Producenten beskriver V4 som en designorienteret familie med stærk promptfortolkning i både raster- og vektorarbejde. Denne udgaves leverance er redigerbar SVG-grafik, som kan justeres i en designarbejdsgang, frem for en PNG- eller WebP-bitmap.\n\nDen nøjagtige model er recraftv4_vector, adskilt fra V4 Pro Vector og V4-rastervarianterne. Producentens størrelsesvejledning tillader fjorten forhold mellem bredde og højde til vektoroutput og siger udtrykkeligt, at SVG ikke har faste pixeldimensioner. Vælg grafikkens form med et billedformat, og vælg derefter placering og visningsstørrelse i det endelige design. Rastermodellen V4’s 1K-betegnelse definerer ikke opløsningen for denne SVG-variant.\n\nV4’s vektorvejledning anbefaler at definere grafiktype, formlogik, farvesystem, linjeregler og layout. Til et lille ikon angiver du objektet og silhuetten, der gør det genkendeligt. Til et illustrationssystem holder du linje- og udfyldningsregler stabile på tværs af beskrivelser. Til et leveringsikon beder du om en varevogn i kontur med afrundede hjørner, én stor pakkeform og en afdæmpet palet centreret i en kvadratisk komposition. Beskriv geometrien frem for at tilføje fotografiske overfladedetaljer, når flad grafik er det ønskede resultat.\n\nGenerering understøtter prompts på op til 10,000 tegn, et tilfældigt seed, ét til seks billeder og indstillinger for foretrukne farver og baggrundsfarve. Valgfrie kompatible stile eller referencebilleder kan styre det visuelle sprog med flexible- eller precise-matching. En reference erstatter ikke instruktioner om det nye motiv eller layout. Brug én tydelig grafik eller et sammenhængende sæt referencer; nøjagtig farvematching mod en reference er ikke garanteret. Til generering med referencestil bruger du ét til ti PNG-, JPG- eller WebP-billeder, højst 64 MB i alt og under 20 MB hver. Hver reference skal have en korteste side på mindst 256 pixels, en længste side på højst 4,096 pixels og en opløsning på højst 16 megapixels. Brug enten disse referencer eller en kompatibel gemt stil frem for begge.\n\nEn særskilt billede-til-billede-arbejdsgang kan bruge en V4-vektormodel til at skabe SVG fra et eksisterende billede og en tekstlig ændringsanmodning. Den obligatoriske strength-indstilling spænder fra 0 til 1: lavere værdier holder sig tættere på kilden, mens højere værdier tillader større ændringer. Operationen accepterer PNG, JPG, WebP eller SVG inden for de dokumenterede størrelses- og opløsningsgrænser og accepterer ikke V4-stilindstillinger. Denne forskel er vigtig, når du vælger, om et billede skal levere indholdet, som omdannes, eller blot det visuelle udtryk til ny grafik. Til billede-til-billede angiver du PNG, JPG, WebP eller SVG under 20 MB, højst 16 megapixels og med begge sider mellem 256 og 4,096 pixels.\n\nDen aktuelle V4-genereringsreference udelukker kuraterede stilnavne, negative_prompt, text_layout, artistic_level og no_text. Angiv den ønskede struktur og ordlyd i den positive beskrivelse. Til et logo- eller bogstavresultat undersøger du SVG’en i små og store størrelser for afstande, læselighed og utilsigtede detaljer. Angiv typografisk hierarki og geometriske former udtrykkeligt, og færdiggør og placér derefter vektorgrafikken efter designbeskrivelsen.\n\nVia Ailoot vælger du dette nøjagtige model-ID i /v1/images/generations og angiver den kreative prompt. Gem hver returneret data-post, uanset om svaret indeholder en URL eller kodet billedindhold, og gem de faktiske bytes med deres returnerede indholdstype. Gem usage og eventuelle medie-task_id sammen med filen, og vurder derefter dens former, bogstavudformning og farveflader i det ønskede design.",
    "alias_of": null,
    "aliases": [],
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.16",
            "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.16",
            "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": "De fulde prisoplysninger for konfigurationen findes under detaljer."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "recraft/recraft-v4-vector",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "control_semantics": {
              "other_documented_controls": "Source generic image parsing preserves request JSON. Additional documented controls stay subject to the exact model; missing DTO fields do not create Source refusals.",
              "quality": "The saved common image schema documents this control and says providers without a quality knob ignore it.",
              "style": "Selected generic Source passes JSON fields through but the saved dedicated image request schema does not declare a style field. Its omission here is not a Source ban or a supported per-model promise."
            },
            "errors": [
              {
                "condition": "Et påkrævet felt, en modelvælger, en type eller en inputrepræsentation er ugyldig.",
                "http_status": 400,
                "recovery": "Undersøg de returnerede valideringsoplysninger, før du forbereder en separat anmodning.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Den oprindelige anmodning eller resultatet er ukendt eller skal kontrolleres.",
                "http_status": null,
                "recovery": "Bevar de oprindelige identifikatorer og headere; læs kun understøttede status- eller biblioteksposter. Indsend ikke oprettelsesanmodningen igen.",
                "type": null
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/images/generations"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned signed URL; never construct a token."
              },
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or selected library record; operation_id is a separate identifier",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar det oprindelige X-Client-Request-ID samt svaret og headerne. Et ukendt resultat eller et resultat med status result_pending_check giver ikke tilladelse til endnu en oprettelse.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text",
                  "image"
                ],
                "metadata_authority": "saved_model_discovery_union",
                "mode": "text_to_image",
                "reference_maximum": 1,
                "reference_minimum": 0
              }
            ],
            "model_parameter_metadata": {
              "authority": "saved_model_discovery_union",
              "defaults_not_inferred": {
                "aspect_ratio": null,
                "exact_pixels": null,
                "explanation": "No universal/model default inferred. Omitted output_format uses provider default; dimensions are provider-derived, observed Ming2048 is not a universal default.",
                "n": null,
                "output_format": null,
                "quality": null,
                "resolution": null
              },
              "known_parameter_choices": {
                "aspect_ratio": {
                  "type": "enum",
                  "values": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "auto"
                  ]
                },
                "input_references": {
                  "max": 1,
                  "min": 0,
                  "type": "range"
                },
                "n": {
                  "max": 6,
                  "min": 1,
                  "type": "range"
                },
                "output_format": {
                  "type": "enum",
                  "values": [
                    "svg"
                  ]
                }
              },
              "pointer": "/profiles/43",
              "scope": "Exact saved model metadata. Discovery unions are identified explicitly and are not represented as definitive selected-provider bounds."
            },
            "outputs": {
              "all_results": "Behold hele svaret og alle headere, de oprindelige identifikatorer, hvert faktisk output og alle felter til forbrug og afregning. Gem hvert entydigt aktiv, du ejer, og behold alle roller, der henviser til det.",
              "documented_formats": [
                "svg"
              ],
              "every_actual_output": true,
              "family": "image",
              "fields": [
                {
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "name": "data[].b64_json",
                  "type": "string"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "The exact saved model metadata lists SVG. Preserve the actual returned MIME and unchanged vector bytes; keep every actual output and owned signed image link."
            },
            "parameters": [
              {
                "conditions": "Brug præcis denne routingvælger for Ailoot.",
                "default_known": false,
                "enum": [
                  "recraft/recraft-v4-vector"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "maximum": 6,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "svg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maxItems": 1,
                "minItems": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum": [
                  "auto",
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "enum_known": true,
                "name": "quality",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "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": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "recraft/recraft-v4-vector"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 6,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "svg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "quality": {
                  "enum": [
                    "auto",
                    "low",
                    "medium",
                    "high",
                    "xhigh",
                    "max"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "recraft/recraft-v4-vector",
                "prompt": "A portrait of an Asian woman with neon green lights in the background, shallow depth of field."
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Brug præcis denne routingvælger for Ailoot.",
              "quality er en almindelig dokumenteret styringsparameter; udbydere uden en kvalitetsindstilling ignorerer den. Der loves ingen kvalitetsforbedring for den enkelte model."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "n",
              "aspect_ratio",
              "output_format",
              "input_references",
              "quality"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/images/generations"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned signed URL; never construct a token."
            },
            "status": [
              {
                "http": "GET",
                "id_source": "Den faktisk returnerede værdi af task_id eller den valgte bibliotekspost; operation_id er en separat identifikator.",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "documented_formats": [
              "svg"
            ],
            "every_actual_output": true,
            "family": "image",
            "fields": [
              {
                "name": "data[].url",
                "type": "string"
              },
              {
                "name": "data[].b64_json",
                "type": "string"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "The saved exact model metadata lists SVG. Preserve actual MIME and bytes; storage MIME support alone does not prove completion of the full selected generic output path."
          }
        },
        "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 output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Anslået genereringsomkostning",
            "units": [
              {
                "amount": "0.16",
                "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.16",
                "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=json.loads('{\"model\": \"recraft/recraft-v4-vector\", \"prompt\": \"A portrait of an Asian woman with neon green lights in the background, shallow depth of field.\"}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Use the exact model reference-input range in the saved model metadata; a reference becomes required only for the models whose listed minimum is positive."
        },
        "label": "Images",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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 output image"
            },
            "label": "output image",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "output image",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per output image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "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.16",
                "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.16",
                "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": "recraft/recraft-v4-vector",
        "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.16",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "output image",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per output image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.16",
            "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.16",
            "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": "recraft/recraft-v4-vector",
        "request_model_id": "recraft/recraft-v4-vector",
        "route_label": "Ultra"
      }
    ],
    "name": "Recraft: Recraft V4 Vector",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.16,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.16,
      "varies": false
    },
    "short": "Recraft V4 Vector skaber redigerbare SVG-logoer, illustrationer og grafiske filer ud fra en kreativ beskrivelse. Det er standardvektorudgaven af V4 med skalerbar geometri, valgfrie stilreferencer og en særskilt dokumenteret billede-til-billede-arbejdsgang.",
    "title": "Recraft: Recraft V4 Vector"
  },
  "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": "Recraft V4 Vector skaber redigerbare SVG-logoer, illustrationer og grafiske filer ud fra en kreativ beskrivelse. Det er standardvektorudgaven af V4 med skalerbar geometri, valgfrie stilreferencer og en særskilt dokumenteret billede-til-billede-arbejdsgang.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "dee5d1d024d63a854c153be711a9f1c9b4d173a08a5ce9babfd86a8e51c100d4",
    "renderer_sha256": "2bf9f26ea9bfd57ed53d867671d8f05b41a6ea85089f48039e3365dc2b92ec2c"
  },
  "sourceRevision": "7e22c8b8eb4c71b068e636bd0282efbbe924f0a54bae7c81d1f3473b45c645f8"
}
