{
  "aboutHtml": "<p>Gyorsabb képalkotó kiadás</p><p>A Seedream 5.0 Flash a ByteDance Seed képgeneráló és -szerkesztő modellje a generálási sebességet előtérbe helyező munkafolyamatokhoz. A gyártó Pro/Flash útmutatója szöveg-kép és egy- vagy többreferenciás kép-kép alkotást is leír. A Flash gyorsabb generálását megkülönbözteti a Pro magasabb képminőségre helyezett hangsúlyától, minden leírásra érvényes rögzített válaszidő megadása nélkül.</p><p>A meghatározó közös funkciók az interaktív szerkesztés, rétegbontás és natív többnyelvű generálás. A szokásos generálás egy kész képet ad vissza. A gyártó Flash folyamata nem támogat kapcsolódó képek sorozatos generálását, webes keresést vagy streamelt képkimenetet. Promptoptimalizálása standard módot használ; a külön gyors optimalizálási vezérlő a Próhoz tartozik, nem a Flashhez.</p><p>Alkotás leírásból és referenciákból</p><p>Add meg a kívánt képet, fő témát, kompozíciót és vizuális megoldást, majd azonosítsd, mit irányít minden referencia. Termékvizuálnál különítsd el a tárgyat rögzítő referenciát a palettát vagy felületanyagot adótól. „Tartsd meg a tárgy sziluettjét és nézőszögét az első képről; a második képet csak a visszafogott háttérpalettához használd” külön szerepet ad a referenciáknak.</p><p>A gyártó tömör promptot ajánl, legfeljebb 300 kínai karakterrel vagy 600 angol szóval. Ez előkészítési ajánlás, nem megadott szigorú szövegbemeneti vágási határ. A döntő követelményeket sorold előre, köztük a kötelező pontos szöveget, kívánt oldalarányt és változatlanul megtartandó részleteket. A kész képet e listához mérd, ne csak összhatására támaszkodj.</p><p>Térben irányított szerkesztés</p><p>A Flash pontokat, befoglaló téglalapokat, nyilakat és szabadkézi jelöléseket használhat a szerkesztés helyének azonosítására. A forrásképpel együtt adj helyet és változást. Belsőtér-koncepciónál jelöld meg a széket, kérj szövetcserét, és nevezd meg a megőrzendő padlót, falat, kameraszöget és közeli tárgyakat. Ha a jelölések csak útmutatók, kifejezetten kérd eltávolításukat a kész képről.</p><p>A gyártó koordinátaalapú szerkesztési útmutatója &lt;point&gt; és &lt;bbox&gt; címkéket használ, a megadott bemeneti képhez viszonyítva 0–999-re normalizált koordinátákkal. A pont x-et és y-t tartalmaz; a téglalap bal felső és jobb alsó koordinátát. Azonosítsd a képszámot és céltárgyat, különösen ha a téglalap több témát tartalmaz. Képek közötti szerkesztésnél különböztesd meg az egyik referenciából átveendő tárgyat és a másik célterületét.</p><p>Az arányos hely meghatározásához a megjelenített kép saját méreteit használd; vászonnagyítás, eltolás vagy böngészőkoordináta nem normalizált képkoordináta. A szerkesztett mellett a védett területeket is írd le. Az eredmény perspektíváját, megvilágítását és környező részleteit vesd össze az eredeti forrással.</p><p>Kompozíció szétválasztása szerkeszthető rétegekre</p><p>A rétegbontás külön mód, amely pontosan egy képet fogad és egy alapképet plusz legfeljebb 16 független réteget ad vissza. Minden réteg alfacsatornás PNG. Prompt megnevezheti a szétválasztandó elemeket, például címet, fő témát és díszítéseket; bontási prompt nélkül a modell automatikusan azonosítja a fő elemeket.</p><p>Az eredmény rétegneveket, leírásokat, rétegsorrendet és elhelyezési téglalapokat tartalmaz. Az alapképet nulla rétegindexszel használd, majd a többi réteget növekvő sorrendben helyezd rá. Az abszolút téglalapok a kimeneti alapképen való elhelyezést, a normalizált téglalapok másik vásznon való arányos elhelyezést írják le. A képfájlokkal együtt őrizd meg e visszaadott elhelyezési metaadatokat, hogy átrendezés előtt rekonstruálható legyen az eredeti kompozíció.</p><p>Plakátmódosításnál válaszd szét a fő grafikát, címet és díszítéseket, majd vizsgáld meg a széleket és minden helyreállított háttérrészt. Átlátszó réteg egyetlen alfacsatornás bemenetként szerkeszthető átlátszó PNG kimenettel. Az átlátszó háttér lehetősége ehhez az egybemenetes képszerkesztési munkafolyamathoz kötődik; a szokásos szöveg-kép generálás külön művelet.</p><p>Többnyelvű kompozíció</p><p>A kínai és angol mellett a gyártó orosz, arab, filippínó, thai, török, koreai, maláj, spanyol, portugál, indonéz, francia, német, vietnámi és japán nyelvhez dokumentál natív prompt- és képszöveg-támogatást. Add meg a pontos jóváhagyott szöveget és olvasási irányt, és azonosítsd az egyes szövegblokkok területét. A végső képen ellenőrizd az ékezeteket, kapcsolt karaktereket, sortöréseket és kis címkéket.</p><p>Referenciafájlok és kimeneti specifikációk</p><p>A képgenerálás legfeljebb 10 referenciát fogad JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC vagy HEIF formátumban. Mindegyik legfeljebb 30 MB lehet, mindkét oldala 14 pixel fölötti, összterülete 196–36 000 000 pixel, oldalaránya 1:16–16:1. A rétegbontás ehelyett egy JPEG vagy PNG képet igényel 262 144–36 000 000 pixellel, legfeljebb 30 MB-tal és ugyanilyen aránytartománnyal.</p><p>A generálás 1K, 1.5K és 2K kimeneti szintet kínál, alapértelmezetten 2K-val, vagy konkrét méreteket 921 600–4 624 220 összpixellel és 1:16–16:1 közötti aránnyal. Egyéni méretnél mindkét megkötés érvényes. A rétegkimenet 1K, 1.5K, 2K vagy auto lehet, alapértelmezetten auto; az alapkép és minden réteg megtartja saját forrásoldalarányát.</p><p>A kész képek JPEG vagy PNG formátumúak. Az alapkép formátuma külön választható, a bontott rétegek viszont alfacsatornás PNG-k maradnak. Az átadás kódolt képadattal vagy 24 órán át megőrzött letöltési linkkel történhet. A tervezett dizájnmunkához ments el minden visszaadott képet és metaadatát. A szöveget, szerkesztett részleteket és rétegilleszkedést a felhasználási méretben ellenőrizd.</p>",
  "aboutText": "Gyorsabb képalkotó kiadás\n\nA Seedream 5.0 Flash a ByteDance Seed képgeneráló és -szerkesztő modellje a generálási sebességet előtérbe helyező munkafolyamatokhoz. A gyártó Pro/Flash útmutatója szöveg-kép és egy- vagy többreferenciás kép-kép alkotást is leír. A Flash gyorsabb generálását megkülönbözteti a Pro magasabb képminőségre helyezett hangsúlyától, minden leírásra érvényes rögzített válaszidő megadása nélkül.\n\nA meghatározó közös funkciók az interaktív szerkesztés, rétegbontás és natív többnyelvű generálás. A szokásos generálás egy kész képet ad vissza. A gyártó Flash folyamata nem támogat kapcsolódó képek sorozatos generálását, webes keresést vagy streamelt képkimenetet. Promptoptimalizálása standard módot használ; a külön gyors optimalizálási vezérlő a Próhoz tartozik, nem a Flashhez.\n\nAlkotás leírásból és referenciákból\n\nAdd meg a kívánt képet, fő témát, kompozíciót és vizuális megoldást, majd azonosítsd, mit irányít minden referencia. Termékvizuálnál különítsd el a tárgyat rögzítő referenciát a palettát vagy felületanyagot adótól. „Tartsd meg a tárgy sziluettjét és nézőszögét az első képről; a második képet csak a visszafogott háttérpalettához használd” külön szerepet ad a referenciáknak.\n\nA gyártó tömör promptot ajánl, legfeljebb 300 kínai karakterrel vagy 600 angol szóval. Ez előkészítési ajánlás, nem megadott szigorú szövegbemeneti vágási határ. A döntő követelményeket sorold előre, köztük a kötelező pontos szöveget, kívánt oldalarányt és változatlanul megtartandó részleteket. A kész képet e listához mérd, ne csak összhatására támaszkodj.\n\nTérben irányított szerkesztés\n\nA Flash pontokat, befoglaló téglalapokat, nyilakat és szabadkézi jelöléseket használhat a szerkesztés helyének azonosítására. A forrásképpel együtt adj helyet és változást. Belsőtér-koncepciónál jelöld meg a széket, kérj szövetcserét, és nevezd meg a megőrzendő padlót, falat, kameraszöget és közeli tárgyakat. Ha a jelölések csak útmutatók, kifejezetten kérd eltávolításukat a kész képről.\n\nA gyártó koordinátaalapú szerkesztési útmutatója <point> és <bbox> címkéket használ, a megadott bemeneti képhez viszonyítva 0–999-re normalizált koordinátákkal. A pont x-et és y-t tartalmaz; a téglalap bal felső és jobb alsó koordinátát. Azonosítsd a képszámot és céltárgyat, különösen ha a téglalap több témát tartalmaz. Képek közötti szerkesztésnél különböztesd meg az egyik referenciából átveendő tárgyat és a másik célterületét.\n\nAz arányos hely meghatározásához a megjelenített kép saját méreteit használd; vászonnagyítás, eltolás vagy böngészőkoordináta nem normalizált képkoordináta. A szerkesztett mellett a védett területeket is írd le. Az eredmény perspektíváját, megvilágítását és környező részleteit vesd össze az eredeti forrással.\n\nKompozíció szétválasztása szerkeszthető rétegekre\n\nA rétegbontás külön mód, amely pontosan egy képet fogad és egy alapképet plusz legfeljebb 16 független réteget ad vissza. Minden réteg alfacsatornás PNG. Prompt megnevezheti a szétválasztandó elemeket, például címet, fő témát és díszítéseket; bontási prompt nélkül a modell automatikusan azonosítja a fő elemeket.\n\nAz eredmény rétegneveket, leírásokat, rétegsorrendet és elhelyezési téglalapokat tartalmaz. Az alapképet nulla rétegindexszel használd, majd a többi réteget növekvő sorrendben helyezd rá. Az abszolút téglalapok a kimeneti alapképen való elhelyezést, a normalizált téglalapok másik vásznon való arányos elhelyezést írják le. A képfájlokkal együtt őrizd meg e visszaadott elhelyezési metaadatokat, hogy átrendezés előtt rekonstruálható legyen az eredeti kompozíció.\n\nPlakátmódosításnál válaszd szét a fő grafikát, címet és díszítéseket, majd vizsgáld meg a széleket és minden helyreállított háttérrészt. Átlátszó réteg egyetlen alfacsatornás bemenetként szerkeszthető átlátszó PNG kimenettel. Az átlátszó háttér lehetősége ehhez az egybemenetes képszerkesztési munkafolyamathoz kötődik; a szokásos szöveg-kép generálás külön művelet.\n\nTöbbnyelvű kompozíció\n\nA kínai és angol mellett a gyártó orosz, arab, filippínó, thai, török, koreai, maláj, spanyol, portugál, indonéz, francia, német, vietnámi és japán nyelvhez dokumentál natív prompt- és képszöveg-támogatást. Add meg a pontos jóváhagyott szöveget és olvasási irányt, és azonosítsd az egyes szövegblokkok területét. A végső képen ellenőrizd az ékezeteket, kapcsolt karaktereket, sortöréseket és kis címkéket.\n\nReferenciafájlok és kimeneti specifikációk\n\nA képgenerálás legfeljebb 10 referenciát fogad JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC vagy HEIF formátumban. Mindegyik legfeljebb 30 MB lehet, mindkét oldala 14 pixel fölötti, összterülete 196–36 000 000 pixel, oldalaránya 1:16–16:1. A rétegbontás ehelyett egy JPEG vagy PNG képet igényel 262 144–36 000 000 pixellel, legfeljebb 30 MB-tal és ugyanilyen aránytartománnyal.\n\nA generálás 1K, 1.5K és 2K kimeneti szintet kínál, alapértelmezetten 2K-val, vagy konkrét méreteket 921 600–4 624 220 összpixellel és 1:16–16:1 közötti aránnyal. Egyéni méretnél mindkét megkötés érvényes. A rétegkimenet 1K, 1.5K, 2K vagy auto lehet, alapértelmezetten auto; az alapkép és minden réteg megtartja saját forrásoldalarányát.\n\nA kész képek JPEG vagy PNG formátumúak. Az alapkép formátuma külön választható, a bontott rétegek viszont alfacsatornás PNG-k maradnak. Az átadás kódolt képadattal vagy 24 órán át megőrzött letöltési linkkel történhet. A tervezett dizájnmunkához ments el minden visszaadott képet és metaadatát. A szöveget, szerkesztett részleteket és rétegilleszkedést a felhasználási méretben ellenőrizd.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "633bff1dea6e1f7b2d875b7e7ed0d9f57aee8f5f107b85a5d681fd07d32c0077",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "hu",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance Seed: Seedream 5.0 Flash</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Bezárás\">×</button></div><div class=\"idline\"><span>ByteDance Seed /</span><code>bytedance-seed/seedream-5-0-flash</code><button type=\"button\" id=\"copy-id\">ID másolása</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkártya szakaszai\"><button type=\"button\" data-card-jump=\"overview\">Kezdő lépések</button><button type=\"button\" data-card-jump=\"methods\">Bemenetek és metódusok</button><button type=\"button\" data-card-jump=\"pricing\">Díjcsomagok</button><button type=\"button\" data-card-jump=\"examples\">Példák</button><button type=\"button\" data-card-jump=\"results\">Eredmények</button><button type=\"button\" data-card-jump=\"aliases\">Álnevek</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metódusok\"><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|bytedance-seed%2Fseedream-5-0-flash\">Képek</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\">Kezdő lépések</h3><p class=\"mdesc-full\">Szöveges feladatleírásból hozzon létre egyetlen kész képet.</p><ul class=\"card-best-for\"><li>Állókép készítése egy termékről</li><li>Vizuális koncepció feltérképezése</li><li>Jelenet illusztrálása</li></ul><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg</dd></div><div><dt>Eredmények</dt><dd>Képek</dd></div></dl><details class=\"card-about\"><summary>A modellről</summary><p class=\"note-s\" data-model-method-boundary>Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.</p><div class=\"mabout\" id=\"m-about\"><p>Gyorsabb képalkotó kiadás</p><p>A Seedream 5.0 Flash a ByteDance Seed képgeneráló és -szerkesztő modellje a generálási sebességet előtérbe helyező munkafolyamatokhoz. A gyártó Pro/Flash útmutatója szöveg-kép és egy- vagy többreferenciás kép-kép alkotást is leír. A Flash gyorsabb generálását megkülönbözteti a Pro magasabb képminőségre helyezett hangsúlyától, minden leírásra érvényes rögzített válaszidő megadása nélkül.</p><p>A meghatározó közös funkciók az interaktív szerkesztés, rétegbontás és natív többnyelvű generálás. A szokásos generálás egy kész képet ad vissza. A gyártó Flash folyamata nem támogat kapcsolódó képek sorozatos generálását, webes keresést vagy streamelt képkimenetet. Promptoptimalizálása standard módot használ; a külön gyors optimalizálási vezérlő a Próhoz tartozik, nem a Flashhez.</p><p>Alkotás leírásból és referenciákból</p><p>Add meg a kívánt képet, fő témát, kompozíciót és vizuális megoldást, majd azonosítsd, mit irányít minden referencia. Termékvizuálnál különítsd el a tárgyat rögzítő referenciát a palettát vagy felületanyagot adótól. „Tartsd meg a tárgy sziluettjét és nézőszögét az első képről; a második képet csak a visszafogott háttérpalettához használd” külön szerepet ad a referenciáknak.</p><p>A gyártó tömör promptot ajánl, legfeljebb 300 kínai karakterrel vagy 600 angol szóval. Ez előkészítési ajánlás, nem megadott szigorú szövegbemeneti vágási határ. A döntő követelményeket sorold előre, köztük a kötelező pontos szöveget, kívánt oldalarányt és változatlanul megtartandó részleteket. A kész képet e listához mérd, ne csak összhatására támaszkodj.</p><p>Térben irányított szerkesztés</p><p>A Flash pontokat, befoglaló téglalapokat, nyilakat és szabadkézi jelöléseket használhat a szerkesztés helyének azonosítására. A forrásképpel együtt adj helyet és változást. Belsőtér-koncepciónál jelöld meg a széket, kérj szövetcserét, és nevezd meg a megőrzendő padlót, falat, kameraszöget és közeli tárgyakat. Ha a jelölések csak útmutatók, kifejezetten kérd eltávolításukat a kész képről.</p><p>A gyártó koordinátaalapú szerkesztési útmutatója &lt;point&gt; és &lt;bbox&gt; címkéket használ, a megadott bemeneti képhez viszonyítva 0–999-re normalizált koordinátákkal. A pont x-et és y-t tartalmaz; a téglalap bal felső és jobb alsó koordinátát. Azonosítsd a képszámot és céltárgyat, különösen ha a téglalap több témát tartalmaz. Képek közötti szerkesztésnél különböztesd meg az egyik referenciából átveendő tárgyat és a másik célterületét.</p><p>Az arányos hely meghatározásához a megjelenített kép saját méreteit használd; vászonnagyítás, eltolás vagy böngészőkoordináta nem normalizált képkoordináta. A szerkesztett mellett a védett területeket is írd le. Az eredmény perspektíváját, megvilágítását és környező részleteit vesd össze az eredeti forrással.</p><p>Kompozíció szétválasztása szerkeszthető rétegekre</p><p>A rétegbontás külön mód, amely pontosan egy képet fogad és egy alapképet plusz legfeljebb 16 független réteget ad vissza. Minden réteg alfacsatornás PNG. Prompt megnevezheti a szétválasztandó elemeket, például címet, fő témát és díszítéseket; bontási prompt nélkül a modell automatikusan azonosítja a fő elemeket.</p><p>Az eredmény rétegneveket, leírásokat, rétegsorrendet és elhelyezési téglalapokat tartalmaz. Az alapképet nulla rétegindexszel használd, majd a többi réteget növekvő sorrendben helyezd rá. Az abszolút téglalapok a kimeneti alapképen való elhelyezést, a normalizált téglalapok másik vásznon való arányos elhelyezést írják le. A képfájlokkal együtt őrizd meg e visszaadott elhelyezési metaadatokat, hogy átrendezés előtt rekonstruálható legyen az eredeti kompozíció.</p><p>Plakátmódosításnál válaszd szét a fő grafikát, címet és díszítéseket, majd vizsgáld meg a széleket és minden helyreállított háttérrészt. Átlátszó réteg egyetlen alfacsatornás bemenetként szerkeszthető átlátszó PNG kimenettel. Az átlátszó háttér lehetősége ehhez az egybemenetes képszerkesztési munkafolyamathoz kötődik; a szokásos szöveg-kép generálás külön művelet.</p><p>Többnyelvű kompozíció</p><p>A kínai és angol mellett a gyártó orosz, arab, filippínó, thai, török, koreai, maláj, spanyol, portugál, indonéz, francia, német, vietnámi és japán nyelvhez dokumentál natív prompt- és képszöveg-támogatást. Add meg a pontos jóváhagyott szöveget és olvasási irányt, és azonosítsd az egyes szövegblokkok területét. A végső képen ellenőrizd az ékezeteket, kapcsolt karaktereket, sortöréseket és kis címkéket.</p><p>Referenciafájlok és kimeneti specifikációk</p><p>A képgenerálás legfeljebb 10 referenciát fogad JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC vagy HEIF formátumban. Mindegyik legfeljebb 30 MB lehet, mindkét oldala 14 pixel fölötti, összterülete 196–36 000 000 pixel, oldalaránya 1:16–16:1. A rétegbontás ehelyett egy JPEG vagy PNG képet igényel 262 144–36 000 000 pixellel, legfeljebb 30 MB-tal és ugyanilyen aránytartománnyal.</p><p>A generálás 1K, 1.5K és 2K kimeneti szintet kínál, alapértelmezetten 2K-val, vagy konkrét méreteket 921 600–4 624 220 összpixellel és 1:16–16:1 közötti aránnyal. Egyéni méretnél mindkét megkötés érvényes. A rétegkimenet 1K, 1.5K, 2K vagy auto lehet, alapértelmezetten auto; az alapkép és minden réteg megtartja saját forrásoldalarányát.</p><p>A kész képek JPEG vagy PNG formátumúak. Az alapkép formátuma külön választható, a bontott rétegek viszont alfacsatornás PNG-k maradnak. Az átadás kódolt képadattal vagy 24 órán át megőrzött letöltési linkkel történhet. A tervezett dizájnmunkához ments el minden visszaadott képet és metaadatát. A szöveget, szerkesztett részleteket és rétegilleszkedést a felhasználási méretben ellenőrizd.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Elérhető az Ailootban · bemenetek és metódusok</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Képek</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code></dd></div><div><dt>Kimenet</dt><dd><code>image</code></dd></div><div><dt>Kimeneti formátum</dt><dd>Képfájl</dd></div><div><dt>Kimenetek száma</dt><dd>1 kimenet</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Mező</th><th>Típus</th><th>Követelmény</th><th>Értékek és korlátok</th><th>Alapértelmezett</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>bytedance-seed/seedream-5-0-flash</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimális hossz: 1</div><div>Feltételek: Nem üres UTF8 szöveges utasítás. Nem vezetünk be kitalált, a gyártó összes modelljére érvényes karakterkorlátot.</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>integer</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>1</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>1</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>url, b64_json</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>boolean</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>false</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Bemeneti anyagok kombinációi</summary><p class=\"note-s\"><b>Szövegből kép</b> · Kötelező: prompt</p></details><details class=\"note-s\" data-method-contract><summary>Metódus paraméterei és életciklusa</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paraméter</th><th>Szerződés</th></tr></thead><tbody><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>content_type</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>application/json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>required</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>model, prompt</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>material_types</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>optional</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>n, response_format, stream</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>n</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>1</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>stream</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>response_format</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>url, b64_json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>reference_images</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>edit</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>output_format_optional</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span></td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>resolution_control</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>null</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>aspect_ratio_control</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>null</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>other_fields</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>elutasítva, kivéve a pontosan rögzített belső szolgáltatói útválasztást</td></tr></tbody></table></div><p>Életciklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése</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><p class=\"note-s\">Generáljon egy képet a szöveges utasításból.</p><p class=\"note-s\">Mentse el az összes adatelemet; az url/b64_json az eredmény kódolási formáját jelöli.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Díjcsomagok</h3><div class=\"card-result-process\" data-billing-basis><h5>A végső díj számítása</h5><p class=\"note-s\">A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.</p><dl data-price-conditions><dt>Gyors mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a gyors mód van kiválasztva</span></dd><dt>Flex mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a flex mód van kiválasztva</span></dd><dt>Maximális gondolkodási ráfordítás</dt><dd>Nincs megadva <span class=\"note-s\">Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik</span></dd></dl></div><div data-declared-tariff-pricing><h4>Becsült díjak összehasonlításhoz</h4><h4>Árak beállításonként</h4><p class=\"note-s\">Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Díjtáblázat</th><th>Előre jelzett mennyiség</th><th>Elszámolási egység</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Tokenek alapdíjai</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>Alapdíj</td><td data-cell-label=\"Előre jelzett mennyiség\"><span class=\"card-cell-label\">Előre jelzett mennyiség</span>—</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>—</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti tokenek · Becslés, csak összehasonlításra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kimenet · Kimeneti tokenek · Becslés, csak összehasonlításra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Gyorsítótár olvasása · Becslés, csak összehasonlításra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba · Becslés, csak összehasonlításra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba, 1 óra · Becslés, csak összehasonlításra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>bemeneti kép</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>—</td><td data-cell-label=\"Előre jelzett mennyiség\"><span class=\"card-cell-label\">Előre jelzett mennyiség</span>—</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>bemeneti képenként</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · bemeneti kép · Becslés, csak összehasonlításra</span> <b>$0</b> <span class=\"price-unit\">bemeneti képenként</span></div></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Ultra</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>—</td><td data-cell-label=\"Előre jelzett mennyiség\"><span class=\"card-cell-label\">Előre jelzett mennyiség</span>—</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>kimeneti képenként</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · képkimenet · Becslés, csak összehasonlításra</span> <b>$0.036</b> <span class=\"price-unit\">kimeneti képenként</span></div></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>A generálás becsült költsége</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>—</td><td data-cell-label=\"Előre jelzett mennyiség\"><span class=\"card-cell-label\">Előre jelzett mennyiség</span>becslés egy generálásra</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>—</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Becsült generálási költség · Becslés, csak összehasonlításra</span> <b>$0.036</b> <span class=\"price-unit\">becslés a generálás előtt</span></div><p class=\"note-s\">Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. <a href=\"/docs/hu/billing/reserve/\">A foglalás és az elszámolás működése →</a></p><div data-declared-reference-pricing><h4>A referencia-díjszabás részletei</h4><p class=\"note-s\">A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Képárazási beállítások</summary><h4>Árak beállításonként</h4><p class=\"note-s\">Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Elszámolási feltételek</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Kimeneti kép</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>Nincs deklarált árazási változat.</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Kimeneti kép</span> <b>$0.036</b> <span class=\"price-unit\">képenként</span></div></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Bemeneti kép</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>Nincs deklarált árazási változat.</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti kép</span> <b>$0</b> <span class=\"price-unit\">képenként</span></div></td></tr></tbody></table></div><p class=\"note-s\" data-reference-basis>Az egyenértékű felsorolások ugyanazt a díjat írják le; nem jelentenek második díjat.</p></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · Képek</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kódváltozatok\"><button class=\"cg-tab\" id=\"model-code-1123-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1123-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1123-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1123-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-1123-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1123-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Node.js SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kód másolása\"><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-1123-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1123-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;bytedance-seed/seedream-5-0-flash&quot;, &quot;prompt&quot;: &quot;A lighthouse on a cliff, watercolor&quot;, &quot;n&quot;: 1, &quot;response_format&quot;: &quot;b64_json&quot;}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\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 class=\"cg-pane\" id=\"model-code-1123-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1123-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\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;)\n\nrequest={&#39;model&#39;: &#39;bytedance-seed/seedream-5-0-flash&#39;, &#39;prompt&#39;: &#39;A lighthouse on a cliff, watercolor&#39;, &#39;n&#39;: 1, &#39;response_format&#39;: &#39;b64_json&#39;}\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.images.generate(**request)\nPath(&quot;sdk-result.txt&quot;).write_text(str(result),encoding=&quot;utf-8&quot;)\nsave_images([{&quot;b64_json&quot;:getattr(item,&quot;b64_json&quot;,None),&quot;url&quot;:getattr(item,&quot;url&quot;,None)} for item in result.data])\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1123-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1123-tab-2\" hidden><pre data-lang=\"js\"><code>import OpenAI from &quot;openai&quot;;\nimport { readFileSync, writeFileSync } from &quot;node:fs&quot;;\nconst key=process.env.AILOOT_API_KEY;\nif(!key) throw new Error(&quot;Set your actual Ailoot API key&quot;);\nconst client=new OpenAI({baseURL:&quot;https://api.ailoot.ai/v1&quot;,apiKey:key,maxRetries:0});\nconst request={&quot;model&quot;: &quot;bytedance-seed/seedream-5-0-flash&quot;, &quot;prompt&quot;: &quot;A lighthouse on a cliff, watercolor&quot;, &quot;n&quot;: 1, &quot;response_format&quot;: &quot;b64_json&quot;};\nconst result=await client.images.generate(request);\nwriteFileSync(&quot;sdk-result.json&quot;,JSON.stringify(result,null,2));\nif(!result.data?.length) throw new Error(&quot;No completed images&quot;);\nfor(let index=0;index&lt;result.data.length;index++) {\n  const item=result.data[index];let encoded=item.b64_json,uri=item.url||&quot;&quot;,raw;\n  if(!encoded &amp;&amp; uri.startsWith(&quot;data:image/&quot;)) {\n    const comma=uri.indexOf(&quot;,&quot;);if(comma&lt;0 || !uri.slice(0,comma).includes(&quot;;base64&quot;)) throw new Error(&quot;Unsupported image data URI&quot;);\n    encoded=uri.slice(comma+1);\n  }\n  if(encoded) {\n    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error(&quot;Invalid Base64&quot;);\n    raw=Buffer.from(encoded,&quot;base64&quot;);\n  } else if(uri) {\n    const u=new URL(uri,&quot;https://api.ailoot.ai&quot;);\n    if(u.protocol!==&quot;https:&quot; || u.username || u.password) throw new Error(&quot;Invalid returned URL&quot;);\n    const owned=u.origin===&quot;https://api.ailoot.ai&quot; &amp;&amp; u.pathname.startsWith(&quot;/v1/media/assets/&quot;) &amp;&amp; u.pathname.endsWith(&quot;/content&quot;);\n    const response=await fetch(u,{headers:owned?{Authorization:&quot;Bearer &quot;+key}:{},redirect:&quot;manual&quot;});\n    if(!response.ok) throw new Error(&quot;Image content download failed: &quot;+response.status);\n    raw=Buffer.from(await response.arrayBuffer());\n  } else throw new Error(&quot;Image has neither bytes nor URL&quot;);\n  if(!raw.length) throw new Error(&quot;Empty image result&quot;);\n  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?&quot;png&quot;:raw[0]===255&amp;&amp;raw[1]===216?&quot;jpg&quot;:raw.toString(&quot;ascii&quot;,0,4)===&quot;RIFF&quot;&amp;&amp;raw.toString(&quot;ascii&quot;,8,12)===&quot;WEBP&quot;?&quot;webp&quot;:raw.toString(&quot;utf8&quot;).trimStart().startsWith(&quot;&lt;svg&quot;)||raw.toString(&quot;utf8&quot;).trimStart().startsWith(&quot;&lt;?xml&quot;)?&quot;svg&quot;:&quot;bin&quot;;\n  writeFileSync(`image-${index}.${ext}`,raw);\n}\nconsole.log(&quot;Every returned image saved; sdk-result.json retains complete metadata&quot;);\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Eredmények fogadása és mentése</h3><h4>Ailoot Ultra · Képek</h4><p class=\"note-s\">Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat</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><div class=\"card-result-process\" data-all-results><h5>Őrizzen meg minden elkészült eredményt</h5><p class=\"note-s\">Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.</p><p class=\"note-s\">Mentsen minden adatelemet. Dekódoljon minden b64_json értéket, vagy töltse le minden visszaadott, aláírt URL tartalmát. A fájlnév kiterjesztését a tényleges MIME-típus/bájtok alapján válassza ki.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">Ha egy képgenerálási vagy képszerkesztési eredmény ellenőrzést igényel, őrizze meg az eredeti operation_id/X-Client-Request-ID értéket és a visszaadott eredményadatokat. A saját, már meglévő eredményeket a médiatárból állítsa helyre a tényleges task_id vagy asset_id értékekkel. Ne küldje be újra a generálási/szerkesztési kérést, és ne állítson össze állapotlekérdezési URL-t az operation_id értékéből.</p></div><details class=\"card-about\" data-output-fields><summary>Válaszmezők</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Mező</th><th>Típus</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">created</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>base64 string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Hibák és következő lépések</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Válasz</th><th>Feltétel</th><th>Következő lépés</th></tr></thead><tbody><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Javítsa a jelzett mezőket egy új létrehozási kérés előtt.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span><code>server_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A visszaadott válasz szerint a művelet vagy az eredmény ellenőrzést igényel</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Őrizze meg az eredetileg visszaadott művelet- vagy feladatazonosítót, a kérés fejléceit és a választ; folytassa az eredeti művelet támogatott lekérdezéseit. Ne küldje be újra a létrehozási kérést.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Álnevek</h3><h4>Modell álnevei</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=bytedance-seed%2Fseedream-5-0-flash&amp;route=Ultra&amp;caller=bytedance-seed%2Fseedream-5-0-flash&amp;fmt=images\"><code>bytedance-seed/seedream-5-0-flash</code></a></span></p><h4>Metódusútvonalak álnevei</h4><p class=\"note-s\">Használja a fent látható metódusútvonalakat.</p><h4>Kapcsolódó modellazonosítók</h4><p class=\"note-s\"><a href=\"#m=bytedance-seed%2Fseedream-5-0-flash&amp;route=Ultra&amp;caller=bytedance-seed%2Fseedream-5-0-flash&amp;fmt=images\"><code>bytedance-seed/seedream-5-0-flash</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance-seed/seedream-5-0-flash",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "bytedance-seed/seedream-5-0-flash",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|bytedance-seed%2Fseedream-5-0-flash",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.",
          "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": "Save every data item. Decode each b64_json or fetch every returned signed URL. Select a filename extension from the actual MIME/bytes.",
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A visszaadott válasz szerint a művelet vagy az eredmény ellenőrzést igényel",
                "http_status": null,
                "recovery": "Őrizze meg az eredetileg visszaadott művelet- vagy feladatazonosítót, a kérés fejléceit és a választ; folytassa az eredeti művelet támogatott lekérdezéseit. Ne küldje be újra a létrehozási kérést.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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": "Ha egy képgenerálási vagy képszerkesztési eredmény ellenőrzést igényel, őrizze meg az eredeti operation_id/X-Client-Request-ID értéket és a visszaadott eredményadatokat. A saját, már meglévő eredményeket a médiatárból állítsa helyre a tényleges task_id vagy asset_id értékekkel. Ne küldje be újra a generálási/szerkesztési kérést, és ne állítson össze állapotlekérdezési URL-t az operation_id értékéből."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_image",
                "reference_images": false,
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_image"
            ],
            "outputs": {
              "all_results": "Mentsen minden adatelemet. Dekódoljon minden b64_json értéket, vagy töltse le minden visszaadott, aláírt URL tartalmát. A fájlnév kiterjesztését a tényleges MIME-típus/bájtok alapján válassza ki.",
              "count": 1,
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": "base64 string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "actual validated raster MIME"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance-seed/seedream-5-0-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Nem üres UTF8 szöveges utasítás. Nem vezetünk be kitalált, a gyártó összes modelljére érvényes karakterkorlátot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": 1,
                "default_known": true,
                "enum": [
                  1
                ],
                "enum_known": true,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "url",
                  "b64_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image edits/references",
              "resolution/size",
              "aspect_ratio",
              "stream=true",
              "n other than1",
              "other fields outside this exact facade profile",
              "output_format field must be omitted"
            ]
          },
          "hints": [
            "Generáljon egy képet a szöveges utasításból.",
            "Mentse el az összes adatelemet; az url/b64_json az eredmény kódolási formáját jelöli."
          ],
          "input": {
            "aspect_ratio_control": null,
            "content_type": "application/json",
            "edit": false,
            "material_types": [
              "text"
            ],
            "n": [
              1
            ],
            "optional": [
              "n",
              "response_format",
              "stream"
            ],
            "other_fields": "elutasítva, kivéve a pontosan rögzített belső szolgáltatói útválasztást",
            "output_format_optional": [],
            "reference_images": false,
            "required": [
              "model",
              "prompt"
            ],
            "resolution_control": null,
            "response_format": [
              "url",
              "b64_json"
            ],
            "stream": [
              false
            ]
          },
          "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": "A ténylegesen visszaadott task_id vagy a médiatár bejegyzése",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If an image generation or edit result requires a check, keep the original operation_id/X-Client-Request-ID and returned result information. Recover existing owned results through the media library using actual task_id or asset_id values. Do not resubmit the generation/edit request or construct a polling URL from operation_id."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_image"
          ],
          "output": {
            "count": 1,
            "family": "image",
            "format": "validated raster MIME",
            "result": "actual owned URL or b64_json"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "bemeneti kép",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per image output"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.036",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "image output",
                "native_amount_usd_per_unit": "0.036",
                "native_quantity": 1,
                "public_unit_label": "per image output",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "A generálás becsült költsége",
            "units": [
              {
                "amount": "0.036",
                "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.036",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"bytedance-seed/seedream-5-0-flash\", \"prompt\": \"A lighthouse on a cliff, watercolor\", \"n\": 1, \"response_format\": \"b64_json\"}')\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": "from openai import OpenAI\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\")\n\nrequest={'model': 'bytedance-seed/seedream-5-0-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.images.generate(**request)\nPath(\"sdk-result.txt\").write_text(str(result),encoding=\"utf-8\")\nsave_images([{\"b64_json\":getattr(item,\"b64_json\",None),\"url\":getattr(item,\"url\",None)} for item in result.data])\n",
            "label": "Python SDK · exact payload/save all outputs",
            "language": "python"
          },
          {
            "code": "import OpenAI from \"openai\";\nimport { readFileSync, writeFileSync } from \"node:fs\";\nconst key=process.env.AILOOT_API_KEY;\nif(!key) throw new Error(\"Set your actual Ailoot API key\");\nconst client=new OpenAI({baseURL:\"https://api.ailoot.ai/v1\",apiKey:key,maxRetries:0});\nconst request={\"model\": \"bytedance-seed/seedream-5-0-flash\", \"prompt\": \"A lighthouse on a cliff, watercolor\", \"n\": 1, \"response_format\": \"b64_json\"};\nconst result=await client.images.generate(request);\nwriteFileSync(\"sdk-result.json\",JSON.stringify(result,null,2));\nif(!result.data?.length) throw new Error(\"No completed images\");\nfor(let index=0;index<result.data.length;index++) {\n  const item=result.data[index];let encoded=item.b64_json,uri=item.url||\"\",raw;\n  if(!encoded && uri.startsWith(\"data:image/\")) {\n    const comma=uri.indexOf(\",\");if(comma<0 || !uri.slice(0,comma).includes(\";base64\")) throw new Error(\"Unsupported image data URI\");\n    encoded=uri.slice(comma+1);\n  }\n  if(encoded) {\n    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error(\"Invalid Base64\");\n    raw=Buffer.from(encoded,\"base64\");\n  } else if(uri) {\n    const u=new URL(uri,\"https://api.ailoot.ai\");\n    if(u.protocol!==\"https:\" || u.username || u.password) throw new Error(\"Invalid returned URL\");\n    const owned=u.origin===\"https://api.ailoot.ai\" && u.pathname.startsWith(\"/v1/media/assets/\") && u.pathname.endsWith(\"/content\");\n    const response=await fetch(u,{headers:owned?{Authorization:\"Bearer \"+key}:{},redirect:\"manual\"});\n    if(!response.ok) throw new Error(\"Image content download failed: \"+response.status);\n    raw=Buffer.from(await response.arrayBuffer());\n  } else throw new Error(\"Image has neither bytes nor URL\");\n  if(!raw.length) throw new Error(\"Empty image result\");\n  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?\"png\":raw[0]===255&&raw[1]===216?\"jpg\":raw.toString(\"ascii\",0,4)===\"RIFF\"&&raw.toString(\"ascii\",8,12)===\"WEBP\"?\"webp\":raw.toString(\"utf8\").trimStart().startsWith(\"<svg\")||raw.toString(\"utf8\").trimStart().startsWith(\"<?xml\")?\"svg\":\"bin\";\n  writeFileSync(`image-${index}.${ext}`,raw);\n}\nconsole.log(\"Every returned image saved; sdk-result.json retains complete metadata\");\n",
            "label": "Node SDK · exact payload/save all outputs",
            "language": "js"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Generate one image from prompt.",
          "Save every data item; url/b64_json are result encodings."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Картинки",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per image output"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.036",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "image output",
                "native_amount_usd_per_unit": "0.036",
                "native_quantity": 1,
                "public_unit_label": "per image output",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.036",
                "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.036",
                "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": "bytedance-seed/seedream-5-0-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.036",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "image output",
            "native_amount_usd_per_unit": "0.036",
            "native_quantity": 1,
            "public_unit_label": "per image output",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.036",
            "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.036",
            "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": "bytedance-seed/seedream-5-0-flash",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "7876fb634270c198ad374afcabf76cba6bd3568e982941248b94b07723d16e38",
    "input_html_sha256": "666d6007ded8fc5c4c8801908189f1ba0a462f12186a328d45ae67704d28d721",
    "private_audit_sha256": "6f06584b62027125adbcf79b13074b9b517f897d1905ae245a362be92c2d1550",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/hu/bytedance-seed-seedream-5-0-flash/",
    "description": "A Seedream 5.0 Flash szövegből és vizuális referenciákból készít és szerkeszt képeket, térben irányított változtatásokkal, többnyelvű képszöveggel és rétegbontással. A ByteDance Seed a Flasht gyorsabb generáláshoz pozicionálja, a minőségre összpontosító Pro kiadástól elkülönítve.",
    "locale": "hu",
    "md_url": "https://ailoot.ai/models/hu/bytedance-seed-seedream-5-0-flash/index.md",
    "title": "ByteDance Seed: Seedream 5.0 Flash — Ailoot",
    "url": "https://ailoot.ai/models/hu/bytedance-seed-seedream-5-0-flash/"
  },
  "rawModel": {
    "about": "Gyorsabb képalkotó kiadás\n\nA Seedream 5.0 Flash a ByteDance Seed képgeneráló és -szerkesztő modellje a generálási sebességet előtérbe helyező munkafolyamatokhoz. A gyártó Pro/Flash útmutatója szöveg-kép és egy- vagy többreferenciás kép-kép alkotást is leír. A Flash gyorsabb generálását megkülönbözteti a Pro magasabb képminőségre helyezett hangsúlyától, minden leírásra érvényes rögzített válaszidő megadása nélkül.\n\nA meghatározó közös funkciók az interaktív szerkesztés, rétegbontás és natív többnyelvű generálás. A szokásos generálás egy kész képet ad vissza. A gyártó Flash folyamata nem támogat kapcsolódó képek sorozatos generálását, webes keresést vagy streamelt képkimenetet. Promptoptimalizálása standard módot használ; a külön gyors optimalizálási vezérlő a Próhoz tartozik, nem a Flashhez.\n\nAlkotás leírásból és referenciákból\n\nAdd meg a kívánt képet, fő témát, kompozíciót és vizuális megoldást, majd azonosítsd, mit irányít minden referencia. Termékvizuálnál különítsd el a tárgyat rögzítő referenciát a palettát vagy felületanyagot adótól. „Tartsd meg a tárgy sziluettjét és nézőszögét az első képről; a második képet csak a visszafogott háttérpalettához használd” külön szerepet ad a referenciáknak.\n\nA gyártó tömör promptot ajánl, legfeljebb 300 kínai karakterrel vagy 600 angol szóval. Ez előkészítési ajánlás, nem megadott szigorú szövegbemeneti vágási határ. A döntő követelményeket sorold előre, köztük a kötelező pontos szöveget, kívánt oldalarányt és változatlanul megtartandó részleteket. A kész képet e listához mérd, ne csak összhatására támaszkodj.\n\nTérben irányított szerkesztés\n\nA Flash pontokat, befoglaló téglalapokat, nyilakat és szabadkézi jelöléseket használhat a szerkesztés helyének azonosítására. A forrásképpel együtt adj helyet és változást. Belsőtér-koncepciónál jelöld meg a széket, kérj szövetcserét, és nevezd meg a megőrzendő padlót, falat, kameraszöget és közeli tárgyakat. Ha a jelölések csak útmutatók, kifejezetten kérd eltávolításukat a kész képről.\n\nA gyártó koordinátaalapú szerkesztési útmutatója <point> és <bbox> címkéket használ, a megadott bemeneti képhez viszonyítva 0–999-re normalizált koordinátákkal. A pont x-et és y-t tartalmaz; a téglalap bal felső és jobb alsó koordinátát. Azonosítsd a képszámot és céltárgyat, különösen ha a téglalap több témát tartalmaz. Képek közötti szerkesztésnél különböztesd meg az egyik referenciából átveendő tárgyat és a másik célterületét.\n\nAz arányos hely meghatározásához a megjelenített kép saját méreteit használd; vászonnagyítás, eltolás vagy böngészőkoordináta nem normalizált képkoordináta. A szerkesztett mellett a védett területeket is írd le. Az eredmény perspektíváját, megvilágítását és környező részleteit vesd össze az eredeti forrással.\n\nKompozíció szétválasztása szerkeszthető rétegekre\n\nA rétegbontás külön mód, amely pontosan egy képet fogad és egy alapképet plusz legfeljebb 16 független réteget ad vissza. Minden réteg alfacsatornás PNG. Prompt megnevezheti a szétválasztandó elemeket, például címet, fő témát és díszítéseket; bontási prompt nélkül a modell automatikusan azonosítja a fő elemeket.\n\nAz eredmény rétegneveket, leírásokat, rétegsorrendet és elhelyezési téglalapokat tartalmaz. Az alapképet nulla rétegindexszel használd, majd a többi réteget növekvő sorrendben helyezd rá. Az abszolút téglalapok a kimeneti alapképen való elhelyezést, a normalizált téglalapok másik vásznon való arányos elhelyezést írják le. A képfájlokkal együtt őrizd meg e visszaadott elhelyezési metaadatokat, hogy átrendezés előtt rekonstruálható legyen az eredeti kompozíció.\n\nPlakátmódosításnál válaszd szét a fő grafikát, címet és díszítéseket, majd vizsgáld meg a széleket és minden helyreállított háttérrészt. Átlátszó réteg egyetlen alfacsatornás bemenetként szerkeszthető átlátszó PNG kimenettel. Az átlátszó háttér lehetősége ehhez az egybemenetes képszerkesztési munkafolyamathoz kötődik; a szokásos szöveg-kép generálás külön művelet.\n\nTöbbnyelvű kompozíció\n\nA kínai és angol mellett a gyártó orosz, arab, filippínó, thai, török, koreai, maláj, spanyol, portugál, indonéz, francia, német, vietnámi és japán nyelvhez dokumentál natív prompt- és képszöveg-támogatást. Add meg a pontos jóváhagyott szöveget és olvasási irányt, és azonosítsd az egyes szövegblokkok területét. A végső képen ellenőrizd az ékezeteket, kapcsolt karaktereket, sortöréseket és kis címkéket.\n\nReferenciafájlok és kimeneti specifikációk\n\nA képgenerálás legfeljebb 10 referenciát fogad JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC vagy HEIF formátumban. Mindegyik legfeljebb 30 MB lehet, mindkét oldala 14 pixel fölötti, összterülete 196–36 000 000 pixel, oldalaránya 1:16–16:1. A rétegbontás ehelyett egy JPEG vagy PNG képet igényel 262 144–36 000 000 pixellel, legfeljebb 30 MB-tal és ugyanilyen aránytartománnyal.\n\nA generálás 1K, 1.5K és 2K kimeneti szintet kínál, alapértelmezetten 2K-val, vagy konkrét méreteket 921 600–4 624 220 összpixellel és 1:16–16:1 közötti aránnyal. Egyéni méretnél mindkét megkötés érvényes. A rétegkimenet 1K, 1.5K, 2K vagy auto lehet, alapértelmezetten auto; az alapkép és minden réteg megtartja saját forrásoldalarányát.\n\nA kész képek JPEG vagy PNG formátumúak. Az alapkép formátuma külön választható, a bontott rétegek viszont alfacsatornás PNG-k maradnak. Az átadás kódolt képadattal vagy 24 órán át megőrzött letöltési linkkel történhet. A tervezett dizájnmunkához ments el minden visszaadott képet és metaadatát. A szöveget, szerkesztett részleteket és rétegilleszkedést a felhasználási méretben ellenőrizd.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance Seed",
    "available": null,
    "canonical_model": "bytedance-seed/seedream-5-0-flash",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.036",
            "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.036",
            "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": "A konfiguráció teljes árazása a részletekben."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "c28268da12f5c8a4b252dcc4",
        "label": "Képárazási beállítások",
        "profiles": [
          {
            "basis": "Az egyenértékű felsorolások ugyanazt a díjat írják le; nem jelentenek második díjat.",
            "dimensions": {
              "conditions": "Nincs deklarált árazási változat."
            },
            "label": "Kimeneti kép",
            "units": [
              {
                "amount": "0.036",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "key": "output_image",
                "label": "Output image",
                "public_unit_label": "per image",
                "quantity": 1,
                "rate_role": "typed_image_reference",
                "side": "out",
                "unit": "image"
              }
            ]
          },
          {
            "basis": "Az egyenértékű felsorolások ugyanazt a díjat írják le; nem jelentenek második díjat.",
            "dimensions": {
              "conditions": "Nincs deklarált árazási változat."
            },
            "label": "Bemeneti kép",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "key": "input_image",
                "label": "Input image",
                "public_unit_label": "per image",
                "quantity": 1,
                "rate_role": "typed_image_reference",
                "side": "in",
                "unit": "image"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "images"
    ],
    "id": "bytedance-seed/seedream-5-0-flash",
    "input": [
      "text"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.",
          "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": "Save every data item. Decode each b64_json or fetch every returned signed URL. Select a filename extension from the actual MIME/bytes.",
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "A visszaadott válasz szerint a művelet vagy az eredmény ellenőrzést igényel",
                "http_status": null,
                "recovery": "Őrizze meg az eredetileg visszaadott művelet- vagy feladatazonosítót, a kérés fejléceit és a választ; folytassa az eredeti művelet támogatott lekérdezéseit. Ne küldje be újra a létrehozási kérést.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "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": "Ha egy képgenerálási vagy képszerkesztési eredmény ellenőrzést igényel, őrizze meg az eredeti operation_id/X-Client-Request-ID értéket és a visszaadott eredményadatokat. A saját, már meglévő eredményeket a médiatárból állítsa helyre a tényleges task_id vagy asset_id értékekkel. Ne küldje be újra a generálási/szerkesztési kérést, és ne állítson össze állapotlekérdezési URL-t az operation_id értékéből."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_image",
                "reference_images": false,
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_image"
            ],
            "outputs": {
              "all_results": "Mentsen minden adatelemet. Dekódoljon minden b64_json értéket, vagy töltse le minden visszaadott, aláírt URL tartalmát. A fájlnév kiterjesztését a tényleges MIME-típus/bájtok alapján válassza ki.",
              "count": 1,
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": "base64 string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "actual validated raster MIME"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance-seed/seedream-5-0-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Nem üres UTF8 szöveges utasítás. Nem vezetünk be kitalált, a gyártó összes modelljére érvényes karakterkorlátot.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": 1,
                "default_known": true,
                "enum": [
                  1
                ],
                "enum_known": true,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "url",
                  "b64_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image edits/references",
              "resolution/size",
              "aspect_ratio",
              "stream=true",
              "n other than1",
              "other fields outside this exact facade profile",
              "output_format field must be omitted"
            ]
          },
          "hints": [
            "Generáljon egy képet a szöveges utasításból.",
            "Mentse el az összes adatelemet; az url/b64_json az eredmény kódolási formáját jelöli."
          ],
          "input": {
            "aspect_ratio_control": null,
            "content_type": "application/json",
            "edit": false,
            "material_types": [
              "text"
            ],
            "n": [
              1
            ],
            "optional": [
              "n",
              "response_format",
              "stream"
            ],
            "other_fields": "elutasítva, kivéve a pontosan rögzített belső szolgáltatói útválasztást",
            "output_format_optional": [],
            "reference_images": false,
            "required": [
              "model",
              "prompt"
            ],
            "resolution_control": null,
            "response_format": [
              "url",
              "b64_json"
            ],
            "stream": [
              false
            ]
          },
          "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": "A ténylegesen visszaadott task_id vagy a médiatár bejegyzése",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If an image generation or edit result requires a check, keep the original operation_id/X-Client-Request-ID and returned result information. Recover existing owned results through the media library using actual task_id or asset_id values. Do not resubmit the generation/edit request or construct a polling URL from operation_id."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_image"
          ],
          "output": {
            "count": 1,
            "family": "image",
            "format": "validated raster MIME",
            "result": "actual owned URL or b64_json"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "bemeneti kép",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per image output"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.036",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "image output",
                "native_amount_usd_per_unit": "0.036",
                "native_quantity": 1,
                "public_unit_label": "per image output",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "A generálás becsült költsége",
            "units": [
              {
                "amount": "0.036",
                "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.036",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"bytedance-seed/seedream-5-0-flash\", \"prompt\": \"A lighthouse on a cliff, watercolor\", \"n\": 1, \"response_format\": \"b64_json\"}')\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": "from openai import OpenAI\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\")\n\nrequest={'model': 'bytedance-seed/seedream-5-0-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.images.generate(**request)\nPath(\"sdk-result.txt\").write_text(str(result),encoding=\"utf-8\")\nsave_images([{\"b64_json\":getattr(item,\"b64_json\",None),\"url\":getattr(item,\"url\",None)} for item in result.data])\n",
            "label": "Python SDK · exact payload/save all outputs",
            "language": "python"
          },
          {
            "code": "import OpenAI from \"openai\";\nimport { readFileSync, writeFileSync } from \"node:fs\";\nconst key=process.env.AILOOT_API_KEY;\nif(!key) throw new Error(\"Set your actual Ailoot API key\");\nconst client=new OpenAI({baseURL:\"https://api.ailoot.ai/v1\",apiKey:key,maxRetries:0});\nconst request={\"model\": \"bytedance-seed/seedream-5-0-flash\", \"prompt\": \"A lighthouse on a cliff, watercolor\", \"n\": 1, \"response_format\": \"b64_json\"};\nconst result=await client.images.generate(request);\nwriteFileSync(\"sdk-result.json\",JSON.stringify(result,null,2));\nif(!result.data?.length) throw new Error(\"No completed images\");\nfor(let index=0;index<result.data.length;index++) {\n  const item=result.data[index];let encoded=item.b64_json,uri=item.url||\"\",raw;\n  if(!encoded && uri.startsWith(\"data:image/\")) {\n    const comma=uri.indexOf(\",\");if(comma<0 || !uri.slice(0,comma).includes(\";base64\")) throw new Error(\"Unsupported image data URI\");\n    encoded=uri.slice(comma+1);\n  }\n  if(encoded) {\n    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error(\"Invalid Base64\");\n    raw=Buffer.from(encoded,\"base64\");\n  } else if(uri) {\n    const u=new URL(uri,\"https://api.ailoot.ai\");\n    if(u.protocol!==\"https:\" || u.username || u.password) throw new Error(\"Invalid returned URL\");\n    const owned=u.origin===\"https://api.ailoot.ai\" && u.pathname.startsWith(\"/v1/media/assets/\") && u.pathname.endsWith(\"/content\");\n    const response=await fetch(u,{headers:owned?{Authorization:\"Bearer \"+key}:{},redirect:\"manual\"});\n    if(!response.ok) throw new Error(\"Image content download failed: \"+response.status);\n    raw=Buffer.from(await response.arrayBuffer());\n  } else throw new Error(\"Image has neither bytes nor URL\");\n  if(!raw.length) throw new Error(\"Empty image result\");\n  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?\"png\":raw[0]===255&&raw[1]===216?\"jpg\":raw.toString(\"ascii\",0,4)===\"RIFF\"&&raw.toString(\"ascii\",8,12)===\"WEBP\"?\"webp\":raw.toString(\"utf8\").trimStart().startsWith(\"<svg\")||raw.toString(\"utf8\").trimStart().startsWith(\"<?xml\")?\"svg\":\"bin\";\n  writeFileSync(`image-${index}.${ext}`,raw);\n}\nconsole.log(\"Every returned image saved; sdk-result.json retains complete metadata\");\n",
            "label": "Node SDK · exact payload/save all outputs",
            "language": "js"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Generate one image from prompt.",
          "Save every data item; url/b64_json are result encodings."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Картинки",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input image"
            },
            "label": "input image",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_input",
                "label": "input image",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "image_input"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per image output"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.036",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_output",
                "label": "image output",
                "native_amount_usd_per_unit": "0.036",
                "native_quantity": 1,
                "public_unit_label": "per image output",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "image_output"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.036",
                "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.036",
                "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": "bytedance-seed/seedream-5-0-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_input",
            "label": "input image",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "image_input"
          },
          {
            "amount": "0.036",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_output",
            "label": "image output",
            "native_amount_usd_per_unit": "0.036",
            "native_quantity": 1,
            "public_unit_label": "per image output",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "image_output"
          },
          {
            "amount": "0.036",
            "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.036",
            "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": "bytedance-seed/seedream-5-0-flash",
        "request_model_id": "bytedance-seed/seedream-5-0-flash",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance Seed: Seedream 5.0 Flash",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.036,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.036,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "actual_successful_output_count": true,
          "input_images_free": true,
          "sequential_generation_charged_per_actual_output": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.036",
            "amount_unit": "usd_per_output_image",
            "conditions": {
              "actual_successful_output_count": true,
              "input_images_free": true,
              "sequential_generation_charged_per_actual_output": true
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_image"
          }
        ]
      }
    ],
    "public_id": "bytedance-seed/seedream-5-0-flash",
    "short": "A Seedream 5.0 Flash szövegből és vizuális referenciákból készít és szerkeszt képeket, térben irányított változtatásokkal, többnyelvű képszöveggel és rétegbontással. A ByteDance Seed a Flasht gyorsabb generáláshoz pozicionálja, a minőségre összpontosító Pro kiadástól elkülönítve."
  },
  "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": "A Seedream 5.0 Flash szövegből és vizuális referenciákból készít és szerkeszt képeket, térben irányított változtatásokkal, többnyelvű képszöveggel és rétegbontással. A ByteDance Seed a Flasht gyorsabb generáláshoz pozicionálja, a minőségre összpontosító Pro kiadástól elkülönítve.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "bf70511d5cdf60872619614acd424cc72a8154e643a194980c1b21bd6ea66384",
    "renderer_sha256": "59b0e30a0b251f9d98bf0bafcc7ef50440c33057c2bf9c9fadabbcaeefffb5bb"
  },
  "sourceRevision": "95b943284899925d15e2f22ced25eb920e99754788da48ccc5d687af6870aa2e"
}
