{
  "aboutHtml": "<p>FLUX.2 [flex] yra Black Forest Labs vaizdų generavimo ir redagavimo versija, specializuota tipografijai, teksto atvaizdavimui ir smulkių detalių išsaugojimui. Ji naudoja rašytinius scenos nurodymus bei vaizdinius orientyrus vaizdui sukurti. Jos skiriamasis valdiklis – reguliuojamas generavimas: dokumentuotas profilis pateikia inferencijos žingsnius ir nurodymų laikymosi stiprumą, leisdamas vaizdinę užduotį tikslinti nustatymais bei žodžiais.</p><h4>Užrašai ir smulkios detalės</h4><p>Tipografijos užduotis turi prasidėti tikru tekstu. Pacituokite kiekvieną eilutę, apibrėžkite jos vietą ir atskirkite antraštę, papildomą tekstą bei etiketę. Raidžių stilių, mastelį ir spalvą aprašykite scenos atžvilgiu. Originali plakato užduotis gali rodyti kobalto mėlynumo dviratį šviesioje studijoje, didelį pavadinimą virš rėmo ir mažesnę specifikacijos eilutę po juo. Vaizdas turi kartu aiškiai parodyti produktą ir skaitymo tvarką.</p><p>Išsamiam produkto vaizdui įvardykite dalis, lemiančias rezultato naudingumą: ciferblatą, valdiklio žymą, siūlę, medžiagos kraštą arba pakuotės žymėjimą. Pateikite įskaitomą orientyrą ir paaiškinkite, kurią savybę jis nustato. Bendrai panaši scena vis tiek gali pakeisti svarbų simbolį ar komponentą, todėl sugeneruotą detalę lyginkite numatytu rodymo dydžiu. Modelio specializacija yra priežastis pateikti tikslius reikalavimus, o ne garantija, kad korektūra ar vaizdinė patikra tampa nereikalinga.</p><h4>Žingsniai ir nurodymų laikymosi stiprumas turi skirtingą paskirtį</h4><p>Konkretus gamintojo profilis priima nuo vieno iki penkiasdešimties inferencijos žingsnių, numatytasis skaičius – penkiasdešimt. Jo aprašymas daugiau žingsnių sieja su didesniu detalumu ir tikroviškumu. Nurodymų laikymosi stiprumas svyruoja nuo 1.5 iki 10, numatytasis – 5. Didesnis stiprumas gerina užklausos laikymąsi, bet gali mažinti tikroviškumą. Todėl vaizdui su tiksliais dizaino nurodymais ir vaizdui, siekiančiam natūralios fotografinės išvaizdos, šiame profilyje gali reikėti skirtingų pasirinkimų.</p><p>Lygindami nustatymo pakeitimą išlaikykite pastovius tekstą, orientyrus ir išvesties formą. Žiūrėkite į pakeitimą paskatinusią savybę: raidžių formas, daikto vietą ar medžiagos tekstūrą. Nustatymą keiskite dėl konkrečios vaizdinės priežasties, užuot laikę didesnį skaičių automatiškai geresniu. Tai gamintojo generavimo valdikliai; keturių žingsnių distiliuotas [klein] profilis bei standartiniai [pro] ar [max] valdikliai yra kiti modelio pasirinkimai.</p><p>[flex] specifikacijoje užklausos išplėtimas pagal numatytuosius nustatymus įjungtas ir gali būti išjungtas atskiru prompt_upsampling valdikliu. Tai leidžia išsamiai užduočiai prireikus likti pateiktu tekstu. Bendras gamintojo vadovas rekomenduoja pagrindinį objektą ir svarbų veiksmą dėti prieš antrinį dekorą ir aprašo JSON struktūros užklausas greta natūralios kalbos užduočių. Naudokite struktūrą, kuria reikiamus ryšius lengviausia nurodyti.</p><h4>Orientyrais valdomos pataisos</h4><p>Konkrečiame užklausos profilyje yra aštuonios orientyrinių vaizdų pozicijos. Interaktyvi gamintojo eiga atskirai leidžia iki dešimties vaizdų; šie skaičiai aprašo skirtingas sąsajas. Apibrėžkite, ar vaizdas suteikia redaguotiną sceną, produktą, personažą, aprangą arba stilių. Pataisai įvardykite daiktą ir pakeitimą, tada nurodykite išsaugotiną aplinkinę kompoziciją, medžiagas arba šviesą.</p><p>Originali pakuotės užduotis gali naudoti dėžutę iš pirmo vaizdo ir apdailą iš antro, pakeisti priekinę etiketę patvirtintu tekstu ir išlaikyti dėžutės proporcijas. Grupinė kompozicija gali kiekvienam objektui priskirti atskirą orientyrą ir tas priskirtis išlaikyti nuoseklias. Šeimos pavyzdžiai apima daiktų ir fonų keitimą, kompozitingą, teksto pataisas bei stiliaus transformacijas. Prašykite vienos susijusios pataisos su aiškiu tikslu, tada lyginkite redaguotą sritį ir dalis, kurios turėjo išlikti stabilios.</p><h4>Dydis, spalva ir grąžintas vaizdas</h4><p>FLUX.2 vadovas dokumentuoja mažiausiai 64×64 pikselius, 16 kartotinius matmenis ir iki 4 megapikselių išvestį, įprastam naudojimui rekomenduodamas iki 2 megapikselių. Konkreti [flex] specifikacija nurodo JPEG, PNG ir WebP, numatytasis – JPEG. Ji taip pat suteikia pasirenkamą pradinį atsitiktinumo skaičių. Lygindami versijas su pradiniais orientyrais laikykite tikrą modelį, pradinį skaičių bei generavimo nustatymus; vien šeimos pavadinimas neidentifikuoja visos generavimo konfigūracijos.</p><p>Spalvoms jautriame darbe kiekvieną šešioliktainį kodą susiekite su įvardytu daiktu arba teksto elementu. Kompozicijai norimą kraštinių santykį nurodykite vaizdo matmenimis ir palikite pakankamai vietos įskaitomiems užrašams. Bendras vadovas neturi neigiamos užklausos mechanizmo, todėl norimą išvaizdą aprašykite teigiamai: ryškus fokusas, švarus fonas arba aiškiai tuščia sritis tekstui. Daugiakalbiai jo pavyzdžiai palaiko kultūriškai konkrečios užduoties rašymą tinkama kalba, nenustatydami garantuoto fiksuoto kalbų skaičiaus.</p><p>Gamintojo FLUX.2 eiga po apdorojimo grąžina vaizdą ir naudoja laikinas pasirašytas nuorodas su dešimties minučių gavimo langu. Patį vaizdą ir užduotį išsaugokite kartu. Prieš dėdami failą į maketą patikrinkite tipografiją, smulkias detales, orientyrų tapatumą ir vaizdinę stilistiką. Galutinis rezultatas gali būti pasirinktas plakatas, produkto vaizdas arba redaguota kompozicija su tiksliais nustatymais, išsaugotais kitai pataisai.</p>",
  "aboutText": "FLUX.2 [flex] yra Black Forest Labs vaizdų generavimo ir redagavimo versija, specializuota tipografijai, teksto atvaizdavimui ir smulkių detalių išsaugojimui. Ji naudoja rašytinius scenos nurodymus bei vaizdinius orientyrus vaizdui sukurti. Jos skiriamasis valdiklis – reguliuojamas generavimas: dokumentuotas profilis pateikia inferencijos žingsnius ir nurodymų laikymosi stiprumą, leisdamas vaizdinę užduotį tikslinti nustatymais bei žodžiais.\n\n### Užrašai ir smulkios detalės\n\nTipografijos užduotis turi prasidėti tikru tekstu. Pacituokite kiekvieną eilutę, apibrėžkite jos vietą ir atskirkite antraštę, papildomą tekstą bei etiketę. Raidžių stilių, mastelį ir spalvą aprašykite scenos atžvilgiu. Originali plakato užduotis gali rodyti kobalto mėlynumo dviratį šviesioje studijoje, didelį pavadinimą virš rėmo ir mažesnę specifikacijos eilutę po juo. Vaizdas turi kartu aiškiai parodyti produktą ir skaitymo tvarką.\n\nIšsamiam produkto vaizdui įvardykite dalis, lemiančias rezultato naudingumą: ciferblatą, valdiklio žymą, siūlę, medžiagos kraštą arba pakuotės žymėjimą. Pateikite įskaitomą orientyrą ir paaiškinkite, kurią savybę jis nustato. Bendrai panaši scena vis tiek gali pakeisti svarbų simbolį ar komponentą, todėl sugeneruotą detalę lyginkite numatytu rodymo dydžiu. Modelio specializacija yra priežastis pateikti tikslius reikalavimus, o ne garantija, kad korektūra ar vaizdinė patikra tampa nereikalinga.\n\n### Žingsniai ir nurodymų laikymosi stiprumas turi skirtingą paskirtį\n\nKonkretus gamintojo profilis priima nuo vieno iki penkiasdešimties inferencijos žingsnių, numatytasis skaičius – penkiasdešimt. Jo aprašymas daugiau žingsnių sieja su didesniu detalumu ir tikroviškumu. Nurodymų laikymosi stiprumas svyruoja nuo 1.5 iki 10, numatytasis – 5. Didesnis stiprumas gerina užklausos laikymąsi, bet gali mažinti tikroviškumą. Todėl vaizdui su tiksliais dizaino nurodymais ir vaizdui, siekiančiam natūralios fotografinės išvaizdos, šiame profilyje gali reikėti skirtingų pasirinkimų.\n\nLygindami nustatymo pakeitimą išlaikykite pastovius tekstą, orientyrus ir išvesties formą. Žiūrėkite į pakeitimą paskatinusią savybę: raidžių formas, daikto vietą ar medžiagos tekstūrą. Nustatymą keiskite dėl konkrečios vaizdinės priežasties, užuot laikę didesnį skaičių automatiškai geresniu. Tai gamintojo generavimo valdikliai; keturių žingsnių distiliuotas [klein] profilis bei standartiniai [pro] ar [max] valdikliai yra kiti modelio pasirinkimai.\n\n[flex] specifikacijoje užklausos išplėtimas pagal numatytuosius nustatymus įjungtas ir gali būti išjungtas atskiru prompt_upsampling valdikliu. Tai leidžia išsamiai užduočiai prireikus likti pateiktu tekstu. Bendras gamintojo vadovas rekomenduoja pagrindinį objektą ir svarbų veiksmą dėti prieš antrinį dekorą ir aprašo JSON struktūros užklausas greta natūralios kalbos užduočių. Naudokite struktūrą, kuria reikiamus ryšius lengviausia nurodyti.\n\n### Orientyrais valdomos pataisos\n\nKonkrečiame užklausos profilyje yra aštuonios orientyrinių vaizdų pozicijos. Interaktyvi gamintojo eiga atskirai leidžia iki dešimties vaizdų; šie skaičiai aprašo skirtingas sąsajas. Apibrėžkite, ar vaizdas suteikia redaguotiną sceną, produktą, personažą, aprangą arba stilių. Pataisai įvardykite daiktą ir pakeitimą, tada nurodykite išsaugotiną aplinkinę kompoziciją, medžiagas arba šviesą.\n\nOriginali pakuotės užduotis gali naudoti dėžutę iš pirmo vaizdo ir apdailą iš antro, pakeisti priekinę etiketę patvirtintu tekstu ir išlaikyti dėžutės proporcijas. Grupinė kompozicija gali kiekvienam objektui priskirti atskirą orientyrą ir tas priskirtis išlaikyti nuoseklias. Šeimos pavyzdžiai apima daiktų ir fonų keitimą, kompozitingą, teksto pataisas bei stiliaus transformacijas. Prašykite vienos susijusios pataisos su aiškiu tikslu, tada lyginkite redaguotą sritį ir dalis, kurios turėjo išlikti stabilios.\n\n### Dydis, spalva ir grąžintas vaizdas\n\nFLUX.2 vadovas dokumentuoja mažiausiai 64×64 pikselius, 16 kartotinius matmenis ir iki 4 megapikselių išvestį, įprastam naudojimui rekomenduodamas iki 2 megapikselių. Konkreti [flex] specifikacija nurodo JPEG, PNG ir WebP, numatytasis – JPEG. Ji taip pat suteikia pasirenkamą pradinį atsitiktinumo skaičių. Lygindami versijas su pradiniais orientyrais laikykite tikrą modelį, pradinį skaičių bei generavimo nustatymus; vien šeimos pavadinimas neidentifikuoja visos generavimo konfigūracijos.\n\nSpalvoms jautriame darbe kiekvieną šešioliktainį kodą susiekite su įvardytu daiktu arba teksto elementu. Kompozicijai norimą kraštinių santykį nurodykite vaizdo matmenimis ir palikite pakankamai vietos įskaitomiems užrašams. Bendras vadovas neturi neigiamos užklausos mechanizmo, todėl norimą išvaizdą aprašykite teigiamai: ryškus fokusas, švarus fonas arba aiškiai tuščia sritis tekstui. Daugiakalbiai jo pavyzdžiai palaiko kultūriškai konkrečios užduoties rašymą tinkama kalba, nenustatydami garantuoto fiksuoto kalbų skaičiaus.\n\nGamintojo FLUX.2 eiga po apdorojimo grąžina vaizdą ir naudoja laikinas pasirašytas nuorodas su dešimties minučių gavimo langu. Patį vaizdą ir užduotį išsaugokite kartu. Prieš dėdami failą į maketą patikrinkite tipografiją, smulkias detales, orientyrų tapatumą ir vaizdinę stilistiką. Galutinis rezultatas gali būti pasirinktas plakatas, produkto vaizdas arba redaguota kompozicija su tiksliais nustatymais, išsaugotais kitai pataisai.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f9c63f747ae940e8fd3bf256053a8352859769992dd57f70f00bbc92bdc0dcb0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "lt",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Black Forest Labs: FLUX.2 Flex</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Uždaryti\">×</button></div><div class=\"idline\"><span>Black Forest Labs /</span><code>black-forest-labs/flux.2-flex</code><button type=\"button\" id=\"copy-id\">Kopijuoti ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modelio kortelės skyriai\"><button type=\"button\" data-card-jump=\"overview\">Pradžia</button><button type=\"button\" data-card-jump=\"methods\">Įvestys ir metodai</button><button type=\"button\" data-card-jump=\"pricing\">Planai</button><button type=\"button\" data-card-jump=\"examples\">Pavyzdžiai</button><button type=\"button\" data-card-jump=\"results\">Rezultatai</button><button type=\"button\" data-card-jump=\"aliases\">Pseudonimai</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API metodai\"><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|black-forest-labs%2Fflux.2-flex\">Vaizdai</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\">Pradžia</h3><p class=\"mdesc-full\">FLUX.2 [flex] specializuojasi vaizdų tipografijoje ir smulkiose vaizdinėse detalėse, suteikdamas reguliuojamus generavimo žingsnius bei nurodymų laikymosi stiprumą. Naudokite tekstą ir vaizdinius orientyrus plakatams, produktų maketams arba tikslioms pataisoms kurti, derindami nurodymų laikymąsi su tikroviškumu.</p><dl class=\"card-io\" data-card-io><div><dt>Leidžiamos įvestys</dt><dd>Tekstas · Vaizdai</dd></div><div><dt>Rezultatai</dt><dd>Vaizdai</dd></div></dl><details class=\"card-about\"><summary>Apie modelį</summary><p class=\"note-s\" data-model-method-boundary>Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.</p><div class=\"mabout\" id=\"m-about\"><p>FLUX.2 [flex] yra Black Forest Labs vaizdų generavimo ir redagavimo versija, specializuota tipografijai, teksto atvaizdavimui ir smulkių detalių išsaugojimui. Ji naudoja rašytinius scenos nurodymus bei vaizdinius orientyrus vaizdui sukurti. Jos skiriamasis valdiklis – reguliuojamas generavimas: dokumentuotas profilis pateikia inferencijos žingsnius ir nurodymų laikymosi stiprumą, leisdamas vaizdinę užduotį tikslinti nustatymais bei žodžiais.</p><h4>Užrašai ir smulkios detalės</h4><p>Tipografijos užduotis turi prasidėti tikru tekstu. Pacituokite kiekvieną eilutę, apibrėžkite jos vietą ir atskirkite antraštę, papildomą tekstą bei etiketę. Raidžių stilių, mastelį ir spalvą aprašykite scenos atžvilgiu. Originali plakato užduotis gali rodyti kobalto mėlynumo dviratį šviesioje studijoje, didelį pavadinimą virš rėmo ir mažesnę specifikacijos eilutę po juo. Vaizdas turi kartu aiškiai parodyti produktą ir skaitymo tvarką.</p><p>Išsamiam produkto vaizdui įvardykite dalis, lemiančias rezultato naudingumą: ciferblatą, valdiklio žymą, siūlę, medžiagos kraštą arba pakuotės žymėjimą. Pateikite įskaitomą orientyrą ir paaiškinkite, kurią savybę jis nustato. Bendrai panaši scena vis tiek gali pakeisti svarbų simbolį ar komponentą, todėl sugeneruotą detalę lyginkite numatytu rodymo dydžiu. Modelio specializacija yra priežastis pateikti tikslius reikalavimus, o ne garantija, kad korektūra ar vaizdinė patikra tampa nereikalinga.</p><h4>Žingsniai ir nurodymų laikymosi stiprumas turi skirtingą paskirtį</h4><p>Konkretus gamintojo profilis priima nuo vieno iki penkiasdešimties inferencijos žingsnių, numatytasis skaičius – penkiasdešimt. Jo aprašymas daugiau žingsnių sieja su didesniu detalumu ir tikroviškumu. Nurodymų laikymosi stiprumas svyruoja nuo 1.5 iki 10, numatytasis – 5. Didesnis stiprumas gerina užklausos laikymąsi, bet gali mažinti tikroviškumą. Todėl vaizdui su tiksliais dizaino nurodymais ir vaizdui, siekiančiam natūralios fotografinės išvaizdos, šiame profilyje gali reikėti skirtingų pasirinkimų.</p><p>Lygindami nustatymo pakeitimą išlaikykite pastovius tekstą, orientyrus ir išvesties formą. Žiūrėkite į pakeitimą paskatinusią savybę: raidžių formas, daikto vietą ar medžiagos tekstūrą. Nustatymą keiskite dėl konkrečios vaizdinės priežasties, užuot laikę didesnį skaičių automatiškai geresniu. Tai gamintojo generavimo valdikliai; keturių žingsnių distiliuotas [klein] profilis bei standartiniai [pro] ar [max] valdikliai yra kiti modelio pasirinkimai.</p><p>[flex] specifikacijoje užklausos išplėtimas pagal numatytuosius nustatymus įjungtas ir gali būti išjungtas atskiru prompt_upsampling valdikliu. Tai leidžia išsamiai užduočiai prireikus likti pateiktu tekstu. Bendras gamintojo vadovas rekomenduoja pagrindinį objektą ir svarbų veiksmą dėti prieš antrinį dekorą ir aprašo JSON struktūros užklausas greta natūralios kalbos užduočių. Naudokite struktūrą, kuria reikiamus ryšius lengviausia nurodyti.</p><h4>Orientyrais valdomos pataisos</h4><p>Konkrečiame užklausos profilyje yra aštuonios orientyrinių vaizdų pozicijos. Interaktyvi gamintojo eiga atskirai leidžia iki dešimties vaizdų; šie skaičiai aprašo skirtingas sąsajas. Apibrėžkite, ar vaizdas suteikia redaguotiną sceną, produktą, personažą, aprangą arba stilių. Pataisai įvardykite daiktą ir pakeitimą, tada nurodykite išsaugotiną aplinkinę kompoziciją, medžiagas arba šviesą.</p><p>Originali pakuotės užduotis gali naudoti dėžutę iš pirmo vaizdo ir apdailą iš antro, pakeisti priekinę etiketę patvirtintu tekstu ir išlaikyti dėžutės proporcijas. Grupinė kompozicija gali kiekvienam objektui priskirti atskirą orientyrą ir tas priskirtis išlaikyti nuoseklias. Šeimos pavyzdžiai apima daiktų ir fonų keitimą, kompozitingą, teksto pataisas bei stiliaus transformacijas. Prašykite vienos susijusios pataisos su aiškiu tikslu, tada lyginkite redaguotą sritį ir dalis, kurios turėjo išlikti stabilios.</p><h4>Dydis, spalva ir grąžintas vaizdas</h4><p>FLUX.2 vadovas dokumentuoja mažiausiai 64×64 pikselius, 16 kartotinius matmenis ir iki 4 megapikselių išvestį, įprastam naudojimui rekomenduodamas iki 2 megapikselių. Konkreti [flex] specifikacija nurodo JPEG, PNG ir WebP, numatytasis – JPEG. Ji taip pat suteikia pasirenkamą pradinį atsitiktinumo skaičių. Lygindami versijas su pradiniais orientyrais laikykite tikrą modelį, pradinį skaičių bei generavimo nustatymus; vien šeimos pavadinimas neidentifikuoja visos generavimo konfigūracijos.</p><p>Spalvoms jautriame darbe kiekvieną šešioliktainį kodą susiekite su įvardytu daiktu arba teksto elementu. Kompozicijai norimą kraštinių santykį nurodykite vaizdo matmenimis ir palikite pakankamai vietos įskaitomiems užrašams. Bendras vadovas neturi neigiamos užklausos mechanizmo, todėl norimą išvaizdą aprašykite teigiamai: ryškus fokusas, švarus fonas arba aiškiai tuščia sritis tekstui. Daugiakalbiai jo pavyzdžiai palaiko kultūriškai konkrečios užduoties rašymą tinkama kalba, nenustatydami garantuoto fiksuoto kalbų skaičiaus.</p><p>Gamintojo FLUX.2 eiga po apdorojimo grąžina vaizdą ir naudoja laikinas pasirašytas nuorodas su dešimties minučių gavimo langu. Patį vaizdą ir užduotį išsaugokite kartu. Prieš dėdami failą į maketą patikrinkite tipografiją, smulkias detales, orientyrų tapatumą ir vaizdinę stilistiką. Galutinis rezultatas gali būti pasirinktas plakatas, produkto vaizdas arba redaguota kompozicija su tiksliais nustatymais, išsaugotais kitai pataisai.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Prieinama Ailoot · įvestys ir metodai</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Vaizdai</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Įvestis</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Išvestis</dt><dd><code>image</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Laukas</th><th>Tipas</th><th>Reikalavimas</th><th>Reikšmės ir ribos</th><th>Numatyta</th></tr></thead><tbody><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Privaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>black-forest-labs/flux.2-flex</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Privaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Mažiausias ilgis: 1</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9, auto</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">output_format</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>png, jpeg</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>integer</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Mažiausia reikšmė: 1</div><div>Didžiausia reikšmė: 1</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>array</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Mažiausias elementų skaičius: 0</div><div>Didžiausias elementų skaičius: 8</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>object</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Metodo parametrai ir gyvavimo ciklas</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametras</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>content_type</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>application/json</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>model, prompt</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text, image</td></tr></tbody></table></div><p>Gyvavimo ciklas: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Planai</h3><div class=\"card-result-process\" data-billing-basis><h5>Kaip apskaičiuojamas galutinis mokestis</h5><p class=\"note-s\">Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.</p><dl data-price-conditions><dt>Spartusis režimas</dt><dd>Nenurodyta <span class=\"note-s\">Pasirinkus spartųjį režimą</span></dd><dt>Flex režimas</dt><dd>Nenurodyta <span class=\"note-s\">Pasirinkus flex režimą</span></dd><dt>Didžiausios samprotavimo pastangos</dt><dd>Nenurodyta <span class=\"note-s\">Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Numatomi įkainiai palyginimui</h4><h4>Kainos pagal konfigūraciją</h4><p class=\"note-s\">Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigūracija</th><th>Įkainių lentelė</th><th>Numatomas kiekis</th><th>Apskaitos vienetas</th><th>Mokestis</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>Baziniai žetonų įkainiai</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>Bazinis įkainis</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>—</td><td data-cell-label=\"Apskaitos vienetas\"><span class=\"card-cell-label\">Apskaitos vienetas</span>—</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Įvestis · Įvesties tokenai · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Išvestis · Išvesties tokenai · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div></td></tr><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>įvesties vaizdo megapikselis</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>—</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>—</td><td data-cell-label=\"Apskaitos vienetas\"><span class=\"card-cell-label\">Apskaitos vienetas</span>už įvesties vaizdo megapikselį</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Įvestis · įvesties vaizdo megapikselis · Įvertis tik palyginimui</span> <b>$0.12</b> <span class=\"price-unit\">už įvesties vaizdo megapikselį</span></div></td></tr><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>išvesties vaizdo megapikselis</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>—</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>—</td><td data-cell-label=\"Apskaitos vienetas\"><span class=\"card-cell-label\">Apskaitos vienetas</span>už išvesties vaizdo megapikselį</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Išvestis · išvesties vaizdo megapikselis · Įvertis tik palyginimui</span> <b>$0.12</b> <span class=\"price-unit\">už išvesties vaizdo megapikselį</span></div></td></tr><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>Numatoma generavimo kaina</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>—</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>vieno generavimo įvertis</td><td data-cell-label=\"Apskaitos vienetas\"><span class=\"card-cell-label\">Apskaitos vienetas</span>—</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui</span> <b>$0.12</b> <span class=\"price-unit\">įvertis prieš generavimą</span></div><p class=\"note-s\">Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. <a href=\"/docs/lt/billing/reserve/\">Kaip veikia rezervavimas ir atsiskaitymas →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Užklausų pavyzdžiai</h3><h4>Ailoot Ultra · Vaizdai</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodo variantai\"><button class=\"cg-tab\" id=\"model-code-1099-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1099-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopijuoti kodą\"><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-1099-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1099-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np={&#39;model&#39;: &#39;black-forest-labs/flux.2-flex&#39;, &#39;prompt&#39;: &#39;a red panda astronaut floating in space, studio lighting&#39;}\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(&quot;No completed images; retain the full response&quot;)\n    for index, item in enumerate(items):\n        encoded=item.get(&quot;b64_json&quot;)\n        uri=item.get(&quot;url&quot;, &quot;&quot;)\n        if not encoded and uri.startswith(&quot;data:image/&quot;):\n            header, separator, encoded=uri.partition(&quot;,&quot;)\n            if not separator or &quot;;base64&quot; not in header: raise SystemExit(&quot;Unsupported image data URI&quot;)\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(&quot;https://api.ailoot.ai&quot;,uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=&quot;https&quot; or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(&quot;Invalid returned image URL&quot;)\n            owned=parsed.netloc==&quot;api.ailoot.ai&quot; and parsed.path.startswith(&quot;/v1/media/assets/&quot;) and parsed.path.endswith(&quot;/content&quot;)\n            args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,uri]\n            if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n            temporary=Path(f&quot;image-{index}.bin&quot;)\n            subprocess.run(args+[&quot;-o&quot;,str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(&quot;Image has neither bytes nor URL&quot;)\n        if not raw: raise SystemExit(&quot;Empty image result&quot;)\n        ext=&quot;png&quot; if raw.startswith(b&quot;\\x89PNG&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;svg&quot; if raw.lstrip().startswith((b&quot;&lt;svg&quot;,b&quot;&lt;?xml&quot;)) else &quot;bin&quot;\n        Path(f&quot;image-{index}.{ext}&quot;).write_bytes(raw)\n    print(&quot;Every returned image saved; complete response metadata retained&quot;)\nsave_images(json.loads(Path(&quot;result.json&quot;).read_text())[&quot;data&quot;])\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Gauti ir išsaugoti rezultatus</h3><h4>Ailoot Ultra · Vaizdai</h4><p class=\"note-s\">Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Kito turinio skaitymas</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodo variantai\"><button class=\"cg-tab\" id=\"model-code-1100-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1100-panel-0\" aria-selected=\"true\" tabindex=\"0\">Skaityti esamą jums priklausančią medžiagą</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopijuoti kodą\"><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-1100-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1100-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Išsaugoti visus baigtus rezultatus</h5><p class=\"note-s\">Išsaugokite kiekvieną baigtą vaizdą; gaukite turinį iš kiekvieno grąžinto URL arba dekoduokite jo Base64 turinį.</p><p class=\"note-s\">Išsaugokite visą atsakymą ir antraštes, visus faktiškai gautus rezultatus, pradinius grąžintus identifikatorius ir visus naudojimo apskaitos laukus. Atkurkite prieigą prie pradinės operacijos pakartotinai neteikdami kūrimo užklausos.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jei reikia patikrinti pradinį atsakymą</h5><p class=\"note-s\">Išsaugokite grąžintą X-Client-Request-ID duomenims sutikrinti. Tikrinkite tik faktiškai grąžintas task_id/asset_id reikšmes arba jums priklausančią medijos biblioteką; niekada nekurkite užduoties URL iš operacijos ID ir niekada pakartotinai neteikite kūrimo užklausos.</p></div><details class=\"card-about\" data-output-fields><summary>Atsakymo laukai</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Laukas</th><th>Tipas</th></tr></thead><tbody><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">created</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span></td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span></td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span></td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Pseudonimai</h3><h4>Modelių pseudonimai</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=black-forest-labs%2Fflux.2-flex&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux.2-flex&amp;fmt=images\"><code>black-forest-labs/flux.2-flex</code></a></span></p><h4>Metodų kelių pseudonimai</h4><p class=\"note-s\"><code>/v1/images</code></p><h4>Susiję ID iškvietimui</h4><p class=\"note-s\"><a href=\"#m=black-forest-labs%2Fflux.2-flex&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux.2-flex&amp;fmt=images\"><code>black-forest-labs/flux.2-flex</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "black-forest-labs/flux.2-flex",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|black-forest-labs%2Fflux.2-flex",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Išsaugokite grąžintą X-Client-Request-ID duomenims sutikrinti. Tikrinkite tik faktiškai grąžintas task_id/asset_id reikšmes arba jums priklausančią medijos biblioteką; niekada nekurkite užduoties URL iš operacijos ID ir niekada pakartotinai neteikite kūrimo užklausos."
            },
            "outputs": {
              "all_results": "Išsaugokite visą atsakymą ir antraštes, visus faktiškai gautus rezultatus, pradinius grąžintus identifikatorius ir visus naudojimo apskaitos laukus. Atkurkite prieigą prie pradinės operacijos pakartotinai neteikdami kūrimo užklausos.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux.2-flex"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3",
                  "16:9",
                  "9:16",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "png",
                  "jpeg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 8,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3",
                    "16:9",
                    "9:16",
                    "21:9",
                    "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": 8,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux.2-flex"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "png",
                    "jpeg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "black-forest-labs/flux.2-flex",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Numatoma generavimo kaina",
            "units": [
              {
                "amount": "0.12",
                "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.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'black-forest-labs/flux.2-flex', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Vaizdai",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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": "black-forest-labs/flux.2-flex",
        "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.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input_megapixel",
            "label": "input image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per input image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_megapixel",
            "label": "output image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per output image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_megapixel"
          },
          {
            "amount": "0.12",
            "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.12",
            "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": "black-forest-labs/flux.2-flex",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "8ac247fff71fc2108861bb70bcda33cffcd2056ddf90ce2e15fa23d76a091d42",
    "input_html_sha256": "ac91f4c91cdb940ddca7dab25e8678963183dadec2f878b464e5e2a460ce7640",
    "private_audit_sha256": "afe606e7dfce34f186019d22d3c2840b546f62f84ebf17b9924ac458f44a0fe4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/lt/black-forest-labs-flux-2-flex/",
    "description": "FLUX.2 [flex] specializuojasi vaizdų tipografijoje ir smulkiose vaizdinėse detalėse, suteikdamas reguliuojamus generavimo žingsnius bei nurodymų laikymosi stiprumą. Naudokite tekstą ir vaizdinius orientyrus plakatams, produktų maketams arba tikslioms pataisoms kurti, derindami nurodymų laikymąsi su tikroviškumu.",
    "locale": "lt",
    "md_url": "https://ailoot.ai/models/lt/black-forest-labs-flux-2-flex/index.md",
    "title": "Black Forest Labs: FLUX.2 Flex — Ailoot",
    "url": "https://ailoot.ai/models/lt/black-forest-labs-flux-2-flex/"
  },
  "rawModel": {
    "about": "FLUX.2 [flex] yra Black Forest Labs vaizdų generavimo ir redagavimo versija, specializuota tipografijai, teksto atvaizdavimui ir smulkių detalių išsaugojimui. Ji naudoja rašytinius scenos nurodymus bei vaizdinius orientyrus vaizdui sukurti. Jos skiriamasis valdiklis – reguliuojamas generavimas: dokumentuotas profilis pateikia inferencijos žingsnius ir nurodymų laikymosi stiprumą, leisdamas vaizdinę užduotį tikslinti nustatymais bei žodžiais.\n\n### Užrašai ir smulkios detalės\n\nTipografijos užduotis turi prasidėti tikru tekstu. Pacituokite kiekvieną eilutę, apibrėžkite jos vietą ir atskirkite antraštę, papildomą tekstą bei etiketę. Raidžių stilių, mastelį ir spalvą aprašykite scenos atžvilgiu. Originali plakato užduotis gali rodyti kobalto mėlynumo dviratį šviesioje studijoje, didelį pavadinimą virš rėmo ir mažesnę specifikacijos eilutę po juo. Vaizdas turi kartu aiškiai parodyti produktą ir skaitymo tvarką.\n\nIšsamiam produkto vaizdui įvardykite dalis, lemiančias rezultato naudingumą: ciferblatą, valdiklio žymą, siūlę, medžiagos kraštą arba pakuotės žymėjimą. Pateikite įskaitomą orientyrą ir paaiškinkite, kurią savybę jis nustato. Bendrai panaši scena vis tiek gali pakeisti svarbų simbolį ar komponentą, todėl sugeneruotą detalę lyginkite numatytu rodymo dydžiu. Modelio specializacija yra priežastis pateikti tikslius reikalavimus, o ne garantija, kad korektūra ar vaizdinė patikra tampa nereikalinga.\n\n### Žingsniai ir nurodymų laikymosi stiprumas turi skirtingą paskirtį\n\nKonkretus gamintojo profilis priima nuo vieno iki penkiasdešimties inferencijos žingsnių, numatytasis skaičius – penkiasdešimt. Jo aprašymas daugiau žingsnių sieja su didesniu detalumu ir tikroviškumu. Nurodymų laikymosi stiprumas svyruoja nuo 1.5 iki 10, numatytasis – 5. Didesnis stiprumas gerina užklausos laikymąsi, bet gali mažinti tikroviškumą. Todėl vaizdui su tiksliais dizaino nurodymais ir vaizdui, siekiančiam natūralios fotografinės išvaizdos, šiame profilyje gali reikėti skirtingų pasirinkimų.\n\nLygindami nustatymo pakeitimą išlaikykite pastovius tekstą, orientyrus ir išvesties formą. Žiūrėkite į pakeitimą paskatinusią savybę: raidžių formas, daikto vietą ar medžiagos tekstūrą. Nustatymą keiskite dėl konkrečios vaizdinės priežasties, užuot laikę didesnį skaičių automatiškai geresniu. Tai gamintojo generavimo valdikliai; keturių žingsnių distiliuotas [klein] profilis bei standartiniai [pro] ar [max] valdikliai yra kiti modelio pasirinkimai.\n\n[flex] specifikacijoje užklausos išplėtimas pagal numatytuosius nustatymus įjungtas ir gali būti išjungtas atskiru prompt_upsampling valdikliu. Tai leidžia išsamiai užduočiai prireikus likti pateiktu tekstu. Bendras gamintojo vadovas rekomenduoja pagrindinį objektą ir svarbų veiksmą dėti prieš antrinį dekorą ir aprašo JSON struktūros užklausas greta natūralios kalbos užduočių. Naudokite struktūrą, kuria reikiamus ryšius lengviausia nurodyti.\n\n### Orientyrais valdomos pataisos\n\nKonkrečiame užklausos profilyje yra aštuonios orientyrinių vaizdų pozicijos. Interaktyvi gamintojo eiga atskirai leidžia iki dešimties vaizdų; šie skaičiai aprašo skirtingas sąsajas. Apibrėžkite, ar vaizdas suteikia redaguotiną sceną, produktą, personažą, aprangą arba stilių. Pataisai įvardykite daiktą ir pakeitimą, tada nurodykite išsaugotiną aplinkinę kompoziciją, medžiagas arba šviesą.\n\nOriginali pakuotės užduotis gali naudoti dėžutę iš pirmo vaizdo ir apdailą iš antro, pakeisti priekinę etiketę patvirtintu tekstu ir išlaikyti dėžutės proporcijas. Grupinė kompozicija gali kiekvienam objektui priskirti atskirą orientyrą ir tas priskirtis išlaikyti nuoseklias. Šeimos pavyzdžiai apima daiktų ir fonų keitimą, kompozitingą, teksto pataisas bei stiliaus transformacijas. Prašykite vienos susijusios pataisos su aiškiu tikslu, tada lyginkite redaguotą sritį ir dalis, kurios turėjo išlikti stabilios.\n\n### Dydis, spalva ir grąžintas vaizdas\n\nFLUX.2 vadovas dokumentuoja mažiausiai 64×64 pikselius, 16 kartotinius matmenis ir iki 4 megapikselių išvestį, įprastam naudojimui rekomenduodamas iki 2 megapikselių. Konkreti [flex] specifikacija nurodo JPEG, PNG ir WebP, numatytasis – JPEG. Ji taip pat suteikia pasirenkamą pradinį atsitiktinumo skaičių. Lygindami versijas su pradiniais orientyrais laikykite tikrą modelį, pradinį skaičių bei generavimo nustatymus; vien šeimos pavadinimas neidentifikuoja visos generavimo konfigūracijos.\n\nSpalvoms jautriame darbe kiekvieną šešioliktainį kodą susiekite su įvardytu daiktu arba teksto elementu. Kompozicijai norimą kraštinių santykį nurodykite vaizdo matmenimis ir palikite pakankamai vietos įskaitomiems užrašams. Bendras vadovas neturi neigiamos užklausos mechanizmo, todėl norimą išvaizdą aprašykite teigiamai: ryškus fokusas, švarus fonas arba aiškiai tuščia sritis tekstui. Daugiakalbiai jo pavyzdžiai palaiko kultūriškai konkrečios užduoties rašymą tinkama kalba, nenustatydami garantuoto fiksuoto kalbų skaičiaus.\n\nGamintojo FLUX.2 eiga po apdorojimo grąžina vaizdą ir naudoja laikinas pasirašytas nuorodas su dešimties minučių gavimo langu. Patį vaizdą ir užduotį išsaugokite kartu. Prieš dėdami failą į maketą patikrinkite tipografiją, smulkias detales, orientyrų tapatumą ir vaizdinę stilistiką. Galutinis rezultatas gali būti pasirinktas plakatas, produkto vaizdas arba redaguota kompozicija su tiksliais nustatymais, išsaugotais kitai pataisai.",
    "alias_of": null,
    "aliases": [],
    "author": "Black Forest Labs",
    "capabilities": {
      "context_length": 67344,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.12",
            "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.12",
            "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": "Visa konfigūracijos kainodara pateikta išsamioje informacijoje."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "black-forest-labs/flux.2-flex",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Išsaugokite grąžintą X-Client-Request-ID duomenims sutikrinti. Tikrinkite tik faktiškai grąžintas task_id/asset_id reikšmes arba jums priklausančią medijos biblioteką; niekada nekurkite užduoties URL iš operacijos ID ir niekada pakartotinai neteikite kūrimo užklausos."
            },
            "outputs": {
              "all_results": "Išsaugokite visą atsakymą ir antraštes, visus faktiškai gautus rezultatus, pradinius grąžintus identifikatorius ir visus naudojimo apskaitos laukus. Atkurkite prieigą prie pradinės operacijos pakartotinai neteikdami kūrimo užklausos.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "black-forest-labs/flux.2-flex"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3",
                  "16:9",
                  "9:16",
                  "21:9",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "enum": [
                  "png",
                  "jpeg"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 8,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "3:2",
                    "2:3",
                    "16:9",
                    "9:16",
                    "21:9",
                    "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": 8,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "black-forest-labs/flux.2-flex"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "output_format": {
                  "enum": [
                    "png",
                    "jpeg"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "black-forest-labs/flux.2-flex",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "basis": "Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Numatoma generavimo kaina",
            "units": [
              {
                "amount": "0.12",
                "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.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'black-forest-labs/flux.2-flex', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Vaizdai",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image megapixel"
            },
            "label": "input image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input_megapixel",
                "label": "input image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per input image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input_megapixel"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output image megapixel"
            },
            "label": "output image megapixel",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output_megapixel",
                "label": "output image megapixel",
                "native_amount_usd_per_unit": "0.12",
                "native_quantity": 1,
                "public_unit_label": "per output image megapixel",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output_megapixel"
              }
            ]
          },
          {
            "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.12",
                "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.12",
                "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": "black-forest-labs/flux.2-flex",
        "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.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input_megapixel",
            "label": "input image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per input image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input_megapixel"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output_megapixel",
            "label": "output image megapixel",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "public_unit_label": "per output image megapixel",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output_megapixel"
          },
          {
            "amount": "0.12",
            "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.12",
            "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": "black-forest-labs/flux.2-flex",
        "request_model_id": "black-forest-labs/flux.2-flex",
        "route_label": "Ultra"
      }
    ],
    "name": "Black Forest Labs: FLUX.2 Flex",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.12,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.12,
      "varies": false
    },
    "short": "FLUX.2 [flex] specializuojasi vaizdų tipografijoje ir smulkiose vaizdinėse detalėse, suteikdamas reguliuojamus generavimo žingsnius bei nurodymų laikymosi stiprumą. Naudokite tekstą ir vaizdinius orientyrus plakatams, produktų maketams arba tikslioms pataisoms kurti, derindami nurodymų laikymąsi su tikroviškumu."
  },
  "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": "FLUX.2 [flex] specializuojasi vaizdų tipografijoje ir smulkiose vaizdinėse detalėse, suteikdamas reguliuojamus generavimo žingsnius bei nurodymų laikymosi stiprumą. Naudokite tekstą ir vaizdinius orientyrus plakatams, produktų maketams arba tikslioms pataisoms kurti, derindami nurodymų laikymąsi su tikroviškumu.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "dad8cd3e46263218a39aa3fbf6a45ec5958e8a47b4d35930794480e6e4a2dc27",
    "renderer_sha256": "57bd2f8a61f57d341aae369006eca818e3eea645ec43af488ec7b2289eeca772"
  },
  "sourceRevision": "14e1c8701dcc85cff09ee6e7b3a18b0f190270a5796805aa8cc6d47d9b97a1de"
}
