{
  "aboutHtml": "<p>A Seedance 2.0 Fast a ByteDance Seed Seedance 2.0 családjának sebességközpontú változata. Közös videó- és hanggenerálást, valamint szövegből, képekből, videóból és hangból összeállított multimodális feladatleírást támogat. Alkotói képességei közé új referenciaalapú jelenetek, meglévő felvételek szerkesztése és jelenethosszabbítás tartozik, dokumentált kimeneti szintjei pedig 480p és 720p.</p><h4>Multimodális referencia: szerepek rendelése az anyagokhoz</h4><p>Kép adhat szereplőt, terméket, kompozíciót vagy vizuális feldolgozást. Referenciavideó cselekményt, kameramozgást vagy effektet. Referenciahang hangszínt, zenei dallamot vagy párbeszédtartalmat. Magyarázd el, az egyes források mely részét szeretnéd átvinni az új jelenetbe; a referencia hasznosabb, ha konkrét alkotói szerepe van.</p><p>Például: „Az Image 1 kerámialámpáját használd termékként. Kövesd a Video 1 lassú kamerakörözését, de helyezd a lámpát egy csendes olvasósarokba. A zenei hangulathoz az Audio 1-et használd.” A kívánt kimenet a kiválasztott megjelenést, mozgást és hangi irányt összekapcsoló új jelenet, nem a referenciák minden részletének meghatározatlan utánzása.</p><p>A dokumentált kombinációk között kép és hang, kép és videó, videó és hang, valamint mindhárom együtt szerepel. A csak szöveg és hang, illetve a csak hang bemenet nem támogatott. A modell szöveg–videó és első képkockából vagy első–utolsó képkockapárból induló képvezérelt generálást is támogat. Ha a pontos végpont központi része a feladatnak, a dedikált végpont-munkafolyamatot használd; egy referenciakép végpontként való leírása omni-reference promptban közvetett vezérlés.</p><h4>Meglévő videó szerkesztése</h4><p>A modell elemeket adhat hozzá, távolíthat el vagy módosíthat, alanyt cserélhet, és jelenetrészeket rajzolhat újra vagy javíthat. Azonosítsd a forrásvideót, megváltoztatandó tárgyat és megtartandó elemeket. Hozzáadásnál írd le, hol és mikor jelenik meg. Eltávolításnál a teljes klipben következetesen azonosítsd a tárgyat.</p><p>Gyakorlati szerkesztési feladatként egy bemutató egyszerű palackja lecserélhető az Image 1 palackjára, miközben a Video 1 kézmozgásának, hátterének és kameraútjának megtartását kéred. A cserét és a stabilan maradni kívánt területeket is ellenőrizd. A világos megőrzési utasítások könnyebben értékelhetővé teszik a kívánt szerkesztést, mint a felvétel általános „javításának” kérése.</p><h4>Klipek hosszabbítása és összekapcsolása</h4><p>A Seedance 2.0 Fast előre vagy visszafelé hosszabbítást és két-három klip generált átmenetekkel való összekapcsolását támogatja. Hosszabbításnál add meg, hogy az új cselekmény a megadott videó előtt vagy után történik-e, és írd le. Összekapcsolásnál a kívánt sorrendben add a klipeket, és magyarázd el az őket összekötő vizuális eseményt.</p><p>Egy egyszerű hosszabbítás általában az eredeti felvétel körül kialakított új folytatást adja vissza, nem feltételezi a teljes forrásklip megismétlését. Ha a kimenetnek tartalmaznia kell az eredeti szegmenst, ezt mondd ki a feladatban. Két-három videó közötti átmenet kitöltésekor a dokumentált munkafolyamat eredeti és újonnan generált tartalmat kombinálhat. Ez hasznos egy tág terméknézet és egy részletkép célszerű kameramozgással való összekapcsolásához.</p><h4>Kimenet és változatok közötti különbségek</h4><p>A dokumentált Fast-kimenet MP4, 24 fps, 480p vagy 720p, 8 bites színmélység és 4–15 másodperces klip. Támogatott képarányok: 21:9, 16:9, 4:3, 1:1, 3:4 és 9:16. A standard Seedance 2.0 külön 1080p és 4K kimenetet sorol fel; ezek a szintek nem részei a Fast-specifikációnak. A 2.0 család támogatja az utolsó generált képkocka visszaadását, de nem támogatja a külön Draft-előnézet módot.</p><p>A felvétellel hang is generálható, vagy elhagyható néma kliphez. A generált hang mono. A dokumentált promptnyelvek között angol, spanyol, indonéz, portugál és japán szerepel. Párbeszéden belül tartsd következetesen a beszélt nyelvet; az útmutató tulajdonnevek kivételével nem ajánlja a nyelvek keverését. Beszédes jelenethez nevezd meg a beszélőt, tedd idézőjelbe a sort, majd add meg az előadást és releváns hangeffekteket. A kért előadás illeszkedjen a kiválasztott kliphosszhoz.</p><h4>Referenciák előkészítése és bemeneti korlátok</h4><p>A dokumentált referenciakorlát legfeljebb kilenc kép, három videó és három hangklip. Valódi emberi arcot tartalmazó referenciaképek vagy videók közvetlen feltöltése ebben a dokumentált gyártói leírásban nem elfogadott; portrémunkához a támogatott portréanyag-munkafolyamat használatos. Minden videó- vagy hangklipnek 2–15 másodpercesnek kell lennie; a videók együttes hossza legfeljebb 15 másodperc, a hangoké külön legfeljebb 15 másodperc. A videóreferenciák MP4-et vagy MOV-ot használnak 24–60 fps-sel, és egyenként nem haladhatják meg a 200 MB-ot. A hangreferenciák WAV-ot vagy MP3-at használnak, egyenként legfeljebb 15 MB-tal. A felsorolt képformátumok JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC és HEIF. Minden kép 30 MB-nál kisebb legyen; a teljes kéréstörzs korlátja 64 MB. A dokumentált referenciabemenetnél a képszélesség és -magasság szigorúan 300 és 6000 pixel közötti, a szélesség–magasság arány szigorúan 0.4 és 2.5 közötti. A referenciavideók mindkét mérete 300–6000 pixel és aránya 0.4–2.5 lehet, a határokat beleértve, összesen 407 696–8 295 044 pixellel. Az MP4 vagy MOV videók H.264/AVC vagy H.265/HEVC videót és AAC vagy MP3 hangot használnak.</p><p>Rendezd sorba az anyagokat, és következetesen Image 1, Video 1 vagy Audio 1 néven hivatkozz rájuk. Az anyagszám mellett használd a látható alany nevét vagy megkülönböztető jellemzőjét. A végpontképek kivágását igazítsd a tervezett videóarányhoz, mert az eltérés levághatja a képet vagy zavaró képkivágás-váltást okozhat. A feladatleírás a továbbviendő jellemzőkre, generálandó eseményre és változatlanul maradó elemekre összpontosítson; a hosszú prompt szétszórhatja az utasításokat, és megoldatlanul hagyhat másodlagos részleteket.</p><h4>Snitttervezés, szöveg és ismert viselkedések</h4><p>Az összetett feladatot Shot 1, Shot 2 és Shot 3 formában szervezd, mindegyikhez világos alannyal, művelettel, pozícióval és hanggal. Az útmutató snittenként egy kameramozgást ajánl, és a pontos snittenkénti időbélyegeket instabilnak nevezi. Minden karakternek adj állandó címkét és néhány megkülönböztető jellemzőt; ha az arcazonosság fontos, kombinált karakterkörbeforgatási lap helyett külön tiszta portré- és teljes alakos referenciát használj.</p><p>A modell közönséges szöveget, köztük szlogeneket, feliratokat és szövegbuborékokat generálhat, színük, stílusuk, pozíciójuk és belépésük irányításával. A gyakori karakterek előnyösebbek a ritka karaktereknél vagy speciális szimbólumoknál. Mozgás közben ellenőrizd a betűket. A nem kívánt feliratok, logók és duplikált karakterek dokumentált viselkedések; az explicit korlátok és tiszta referenciák csökkenthetik őket, de nem garantálják hiányukat. Négynél több referencia-személy használatát stabilitási kockázatként említi, nem szigorú fájlszámkorlátként.</p><p>Az ismételt hosszabbítások halmozhatják a képminőség-romlást, és a csatlakozás ugorhat vagy visszaléphet. Korlátozd az egymásra épített folytatásokat, és a szerkesztésben vizsgáld meg a csatlakozást. A referencia hangszíne elcsúszhat, a narráció kattintással végződhet, a kínai többkiejtésű vagy ritka karakterek pedig hibásan hangozhatnak el. Ellenőrizd a kimondott sort és záróhangot; rövid hangkiúsztatás segíthet a levágáson. Ezek az ellenőrzések az alkotói eredmény előkészítésének részei, különösen ha a történetet a beszéd vagy a karakterfolytonosság hordozza.</p>",
  "aboutText": "A Seedance 2.0 Fast a ByteDance Seed Seedance 2.0 családjának sebességközpontú változata. Közös videó- és hanggenerálást, valamint szövegből, képekből, videóból és hangból összeállított multimodális feladatleírást támogat. Alkotói képességei közé új referenciaalapú jelenetek, meglévő felvételek szerkesztése és jelenethosszabbítás tartozik, dokumentált kimeneti szintjei pedig 480p és 720p.\n\n### Multimodális referencia: szerepek rendelése az anyagokhoz\n\nKép adhat szereplőt, terméket, kompozíciót vagy vizuális feldolgozást. Referenciavideó cselekményt, kameramozgást vagy effektet. Referenciahang hangszínt, zenei dallamot vagy párbeszédtartalmat. Magyarázd el, az egyes források mely részét szeretnéd átvinni az új jelenetbe; a referencia hasznosabb, ha konkrét alkotói szerepe van.\n\nPéldául: „Az Image 1 kerámialámpáját használd termékként. Kövesd a Video 1 lassú kamerakörözését, de helyezd a lámpát egy csendes olvasósarokba. A zenei hangulathoz az Audio 1-et használd.” A kívánt kimenet a kiválasztott megjelenést, mozgást és hangi irányt összekapcsoló új jelenet, nem a referenciák minden részletének meghatározatlan utánzása.\n\nA dokumentált kombinációk között kép és hang, kép és videó, videó és hang, valamint mindhárom együtt szerepel. A csak szöveg és hang, illetve a csak hang bemenet nem támogatott. A modell szöveg–videó és első képkockából vagy első–utolsó képkockapárból induló képvezérelt generálást is támogat. Ha a pontos végpont központi része a feladatnak, a dedikált végpont-munkafolyamatot használd; egy referenciakép végpontként való leírása omni-reference promptban közvetett vezérlés.\n\n### Meglévő videó szerkesztése\n\nA modell elemeket adhat hozzá, távolíthat el vagy módosíthat, alanyt cserélhet, és jelenetrészeket rajzolhat újra vagy javíthat. Azonosítsd a forrásvideót, megváltoztatandó tárgyat és megtartandó elemeket. Hozzáadásnál írd le, hol és mikor jelenik meg. Eltávolításnál a teljes klipben következetesen azonosítsd a tárgyat.\n\nGyakorlati szerkesztési feladatként egy bemutató egyszerű palackja lecserélhető az Image 1 palackjára, miközben a Video 1 kézmozgásának, hátterének és kameraútjának megtartását kéred. A cserét és a stabilan maradni kívánt területeket is ellenőrizd. A világos megőrzési utasítások könnyebben értékelhetővé teszik a kívánt szerkesztést, mint a felvétel általános „javításának” kérése.\n\n### Klipek hosszabbítása és összekapcsolása\n\nA Seedance 2.0 Fast előre vagy visszafelé hosszabbítást és két-három klip generált átmenetekkel való összekapcsolását támogatja. Hosszabbításnál add meg, hogy az új cselekmény a megadott videó előtt vagy után történik-e, és írd le. Összekapcsolásnál a kívánt sorrendben add a klipeket, és magyarázd el az őket összekötő vizuális eseményt.\n\nEgy egyszerű hosszabbítás általában az eredeti felvétel körül kialakított új folytatást adja vissza, nem feltételezi a teljes forrásklip megismétlését. Ha a kimenetnek tartalmaznia kell az eredeti szegmenst, ezt mondd ki a feladatban. Két-három videó közötti átmenet kitöltésekor a dokumentált munkafolyamat eredeti és újonnan generált tartalmat kombinálhat. Ez hasznos egy tág terméknézet és egy részletkép célszerű kameramozgással való összekapcsolásához.\n\n### Kimenet és változatok közötti különbségek\n\nA dokumentált Fast-kimenet MP4, 24 fps, 480p vagy 720p, 8 bites színmélység és 4–15 másodperces klip. Támogatott képarányok: 21:9, 16:9, 4:3, 1:1, 3:4 és 9:16. A standard Seedance 2.0 külön 1080p és 4K kimenetet sorol fel; ezek a szintek nem részei a Fast-specifikációnak. A 2.0 család támogatja az utolsó generált képkocka visszaadását, de nem támogatja a külön Draft-előnézet módot.\n\nA felvétellel hang is generálható, vagy elhagyható néma kliphez. A generált hang mono. A dokumentált promptnyelvek között angol, spanyol, indonéz, portugál és japán szerepel. Párbeszéden belül tartsd következetesen a beszélt nyelvet; az útmutató tulajdonnevek kivételével nem ajánlja a nyelvek keverését. Beszédes jelenethez nevezd meg a beszélőt, tedd idézőjelbe a sort, majd add meg az előadást és releváns hangeffekteket. A kért előadás illeszkedjen a kiválasztott kliphosszhoz.\n\n### Referenciák előkészítése és bemeneti korlátok\n\nA dokumentált referenciakorlát legfeljebb kilenc kép, három videó és három hangklip. Valódi emberi arcot tartalmazó referenciaképek vagy videók közvetlen feltöltése ebben a dokumentált gyártói leírásban nem elfogadott; portrémunkához a támogatott portréanyag-munkafolyamat használatos. Minden videó- vagy hangklipnek 2–15 másodpercesnek kell lennie; a videók együttes hossza legfeljebb 15 másodperc, a hangoké külön legfeljebb 15 másodperc. A videóreferenciák MP4-et vagy MOV-ot használnak 24–60 fps-sel, és egyenként nem haladhatják meg a 200 MB-ot. A hangreferenciák WAV-ot vagy MP3-at használnak, egyenként legfeljebb 15 MB-tal. A felsorolt képformátumok JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC és HEIF. Minden kép 30 MB-nál kisebb legyen; a teljes kéréstörzs korlátja 64 MB. A dokumentált referenciabemenetnél a képszélesség és -magasság szigorúan 300 és 6000 pixel közötti, a szélesség–magasság arány szigorúan 0.4 és 2.5 közötti. A referenciavideók mindkét mérete 300–6000 pixel és aránya 0.4–2.5 lehet, a határokat beleértve, összesen 407 696–8 295 044 pixellel. Az MP4 vagy MOV videók H.264/AVC vagy H.265/HEVC videót és AAC vagy MP3 hangot használnak.\n\nRendezd sorba az anyagokat, és következetesen Image 1, Video 1 vagy Audio 1 néven hivatkozz rájuk. Az anyagszám mellett használd a látható alany nevét vagy megkülönböztető jellemzőjét. A végpontképek kivágását igazítsd a tervezett videóarányhoz, mert az eltérés levághatja a képet vagy zavaró képkivágás-váltást okozhat. A feladatleírás a továbbviendő jellemzőkre, generálandó eseményre és változatlanul maradó elemekre összpontosítson; a hosszú prompt szétszórhatja az utasításokat, és megoldatlanul hagyhat másodlagos részleteket.\n\n### Snitttervezés, szöveg és ismert viselkedések\n\nAz összetett feladatot Shot 1, Shot 2 és Shot 3 formában szervezd, mindegyikhez világos alannyal, művelettel, pozícióval és hanggal. Az útmutató snittenként egy kameramozgást ajánl, és a pontos snittenkénti időbélyegeket instabilnak nevezi. Minden karakternek adj állandó címkét és néhány megkülönböztető jellemzőt; ha az arcazonosság fontos, kombinált karakterkörbeforgatási lap helyett külön tiszta portré- és teljes alakos referenciát használj.\n\nA modell közönséges szöveget, köztük szlogeneket, feliratokat és szövegbuborékokat generálhat, színük, stílusuk, pozíciójuk és belépésük irányításával. A gyakori karakterek előnyösebbek a ritka karaktereknél vagy speciális szimbólumoknál. Mozgás közben ellenőrizd a betűket. A nem kívánt feliratok, logók és duplikált karakterek dokumentált viselkedések; az explicit korlátok és tiszta referenciák csökkenthetik őket, de nem garantálják hiányukat. Négynél több referencia-személy használatát stabilitási kockázatként említi, nem szigorú fájlszámkorlátként.\n\nAz ismételt hosszabbítások halmozhatják a képminőség-romlást, és a csatlakozás ugorhat vagy visszaléphet. Korlátozd az egymásra épített folytatásokat, és a szerkesztésben vizsgáld meg a csatlakozást. A referencia hangszíne elcsúszhat, a narráció kattintással végződhet, a kínai többkiejtésű vagy ritka karakterek pedig hibásan hangozhatnak el. Ellenőrizd a kimondott sort és záróhangot; rövid hangkiúsztatás segíthet a levágáson. Ezek az ellenőrzések az alkotói eredmény előkészítésének részei, különösen ha a történetet a beszéd vagy a karakterfolytonosság hordozza.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "0d0a82a5976e7a5f133f816f5a4e48db8cca0bebc5ecdc6ff9c3176908d92fa3",
    "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: Seedance 2.0 Fast</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Bezárás\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-2.0-fast</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|videos|/v1/videos|bytedance%2Fseedance-2.0-fast\">Videó</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\">A ByteDance Seedance 2.0 Fast hang–videó jeleneteket készít szövegből, képekből, videó- és hangreferenciákból. Sebességközpontú változata mozgás- és stílusátvitelt, videószerkesztést, valamint előre vagy visszafelé hosszabbítást támogat dokumentált 480p és 720p kimenettel.</p><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg · Képek · Hang</dd></div><div><dt>Eredmények</dt><dd>Videó</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>A Seedance 2.0 Fast a ByteDance Seed Seedance 2.0 családjának sebességközpontú változata. Közös videó- és hanggenerálást, valamint szövegből, képekből, videóból és hangból összeállított multimodális feladatleírást támogat. Alkotói képességei közé új referenciaalapú jelenetek, meglévő felvételek szerkesztése és jelenethosszabbítás tartozik, dokumentált kimeneti szintjei pedig 480p és 720p.</p><h4>Multimodális referencia: szerepek rendelése az anyagokhoz</h4><p>Kép adhat szereplőt, terméket, kompozíciót vagy vizuális feldolgozást. Referenciavideó cselekményt, kameramozgást vagy effektet. Referenciahang hangszínt, zenei dallamot vagy párbeszédtartalmat. Magyarázd el, az egyes források mely részét szeretnéd átvinni az új jelenetbe; a referencia hasznosabb, ha konkrét alkotói szerepe van.</p><p>Például: „Az Image 1 kerámialámpáját használd termékként. Kövesd a Video 1 lassú kamerakörözését, de helyezd a lámpát egy csendes olvasósarokba. A zenei hangulathoz az Audio 1-et használd.” A kívánt kimenet a kiválasztott megjelenést, mozgást és hangi irányt összekapcsoló új jelenet, nem a referenciák minden részletének meghatározatlan utánzása.</p><p>A dokumentált kombinációk között kép és hang, kép és videó, videó és hang, valamint mindhárom együtt szerepel. A csak szöveg és hang, illetve a csak hang bemenet nem támogatott. A modell szöveg–videó és első képkockából vagy első–utolsó képkockapárból induló képvezérelt generálást is támogat. Ha a pontos végpont központi része a feladatnak, a dedikált végpont-munkafolyamatot használd; egy referenciakép végpontként való leírása omni-reference promptban közvetett vezérlés.</p><h4>Meglévő videó szerkesztése</h4><p>A modell elemeket adhat hozzá, távolíthat el vagy módosíthat, alanyt cserélhet, és jelenetrészeket rajzolhat újra vagy javíthat. Azonosítsd a forrásvideót, megváltoztatandó tárgyat és megtartandó elemeket. Hozzáadásnál írd le, hol és mikor jelenik meg. Eltávolításnál a teljes klipben következetesen azonosítsd a tárgyat.</p><p>Gyakorlati szerkesztési feladatként egy bemutató egyszerű palackja lecserélhető az Image 1 palackjára, miközben a Video 1 kézmozgásának, hátterének és kameraútjának megtartását kéred. A cserét és a stabilan maradni kívánt területeket is ellenőrizd. A világos megőrzési utasítások könnyebben értékelhetővé teszik a kívánt szerkesztést, mint a felvétel általános „javításának” kérése.</p><h4>Klipek hosszabbítása és összekapcsolása</h4><p>A Seedance 2.0 Fast előre vagy visszafelé hosszabbítást és két-három klip generált átmenetekkel való összekapcsolását támogatja. Hosszabbításnál add meg, hogy az új cselekmény a megadott videó előtt vagy után történik-e, és írd le. Összekapcsolásnál a kívánt sorrendben add a klipeket, és magyarázd el az őket összekötő vizuális eseményt.</p><p>Egy egyszerű hosszabbítás általában az eredeti felvétel körül kialakított új folytatást adja vissza, nem feltételezi a teljes forrásklip megismétlését. Ha a kimenetnek tartalmaznia kell az eredeti szegmenst, ezt mondd ki a feladatban. Két-három videó közötti átmenet kitöltésekor a dokumentált munkafolyamat eredeti és újonnan generált tartalmat kombinálhat. Ez hasznos egy tág terméknézet és egy részletkép célszerű kameramozgással való összekapcsolásához.</p><h4>Kimenet és változatok közötti különbségek</h4><p>A dokumentált Fast-kimenet MP4, 24 fps, 480p vagy 720p, 8 bites színmélység és 4–15 másodperces klip. Támogatott képarányok: 21:9, 16:9, 4:3, 1:1, 3:4 és 9:16. A standard Seedance 2.0 külön 1080p és 4K kimenetet sorol fel; ezek a szintek nem részei a Fast-specifikációnak. A 2.0 család támogatja az utolsó generált képkocka visszaadását, de nem támogatja a külön Draft-előnézet módot.</p><p>A felvétellel hang is generálható, vagy elhagyható néma kliphez. A generált hang mono. A dokumentált promptnyelvek között angol, spanyol, indonéz, portugál és japán szerepel. Párbeszéden belül tartsd következetesen a beszélt nyelvet; az útmutató tulajdonnevek kivételével nem ajánlja a nyelvek keverését. Beszédes jelenethez nevezd meg a beszélőt, tedd idézőjelbe a sort, majd add meg az előadást és releváns hangeffekteket. A kért előadás illeszkedjen a kiválasztott kliphosszhoz.</p><h4>Referenciák előkészítése és bemeneti korlátok</h4><p>A dokumentált referenciakorlát legfeljebb kilenc kép, három videó és három hangklip. Valódi emberi arcot tartalmazó referenciaképek vagy videók közvetlen feltöltése ebben a dokumentált gyártói leírásban nem elfogadott; portrémunkához a támogatott portréanyag-munkafolyamat használatos. Minden videó- vagy hangklipnek 2–15 másodpercesnek kell lennie; a videók együttes hossza legfeljebb 15 másodperc, a hangoké külön legfeljebb 15 másodperc. A videóreferenciák MP4-et vagy MOV-ot használnak 24–60 fps-sel, és egyenként nem haladhatják meg a 200 MB-ot. A hangreferenciák WAV-ot vagy MP3-at használnak, egyenként legfeljebb 15 MB-tal. A felsorolt képformátumok JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC és HEIF. Minden kép 30 MB-nál kisebb legyen; a teljes kéréstörzs korlátja 64 MB. A dokumentált referenciabemenetnél a képszélesség és -magasság szigorúan 300 és 6000 pixel közötti, a szélesség–magasság arány szigorúan 0.4 és 2.5 közötti. A referenciavideók mindkét mérete 300–6000 pixel és aránya 0.4–2.5 lehet, a határokat beleértve, összesen 407 696–8 295 044 pixellel. Az MP4 vagy MOV videók H.264/AVC vagy H.265/HEVC videót és AAC vagy MP3 hangot használnak.</p><p>Rendezd sorba az anyagokat, és következetesen Image 1, Video 1 vagy Audio 1 néven hivatkozz rájuk. Az anyagszám mellett használd a látható alany nevét vagy megkülönböztető jellemzőjét. A végpontképek kivágását igazítsd a tervezett videóarányhoz, mert az eltérés levághatja a képet vagy zavaró képkivágás-váltást okozhat. A feladatleírás a továbbviendő jellemzőkre, generálandó eseményre és változatlanul maradó elemekre összpontosítson; a hosszú prompt szétszórhatja az utasításokat, és megoldatlanul hagyhat másodlagos részleteket.</p><h4>Snitttervezés, szöveg és ismert viselkedések</h4><p>Az összetett feladatot Shot 1, Shot 2 és Shot 3 formában szervezd, mindegyikhez világos alannyal, művelettel, pozícióval és hanggal. Az útmutató snittenként egy kameramozgást ajánl, és a pontos snittenkénti időbélyegeket instabilnak nevezi. Minden karakternek adj állandó címkét és néhány megkülönböztető jellemzőt; ha az arcazonosság fontos, kombinált karakterkörbeforgatási lap helyett külön tiszta portré- és teljes alakos referenciát használj.</p><p>A modell közönséges szöveget, köztük szlogeneket, feliratokat és szövegbuborékokat generálhat, színük, stílusuk, pozíciójuk és belépésük irányításával. A gyakori karakterek előnyösebbek a ritka karaktereknél vagy speciális szimbólumoknál. Mozgás közben ellenőrizd a betűket. A nem kívánt feliratok, logók és duplikált karakterek dokumentált viselkedések; az explicit korlátok és tiszta referenciák csökkenthetik őket, de nem garantálják hiányukat. Négynél több referencia-személy használatát stabilitási kockázatként említi, nem szigorú fájlszámkorlátként.</p><p>Az ismételt hosszabbítások halmozhatják a képminőség-romlást, és a csatlakozás ugorhat vagy visszaléphet. Korlátozd az egymásra épített folytatásokat, és a szerkesztésben vizsgáld meg a csatlakozást. A referencia hangszíne elcsúszhat, a narráció kattintással végződhet, a kínai többkiejtésű vagy ritka karakterek pedig hibásan hangozhatnak el. Ellenőrizd a kimondott sort és záróhangot; rövid hangkiúsztatás segíthet a levágáson. Ezek az ellenőrzések az alkotói eredmény előkészítésének részei, különösen ha a történetet a beszéd vagy a karakterfolytonosság hordozza.</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 · Videó</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code>, <code>image</code>, <code>audio</code></dd></div><div><dt>Kimenet</dt><dd><code>video</code></dd></div><div><dt>Kimeneti formátum</dt><dd>eredeti MP4-bájtok; normalizálás és átkódolás nélkül</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/seedance-2.0-fast</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></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\">duration</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>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Minimum: 1</div><div>Maximum: 600</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\">resolution</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>480p, 720p</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\">aspect_ratio</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>1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21</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\">generate_audio</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, true</div><div>Feltételek: A generate_audio elhagyása a hangot tartalmazó árat, a false pedig a hang nélküli árat választja ki. Az eredmény has_audio mezőjében ellenőrizze, hogy érkezett-e hangsáv.</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\">frame_images</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>array</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>Minimális elemszám: 1</div><div>Maximális elemszám: 2</div><div>Bemeneti tartalom: Képkockaobjektumok tömbje. Mindegyikben type=image_url, url mezőt tartalmazó image_url és frame_type=first_frame vagy last_frame szerepel. Minden szerep legfeljebb egyszer fordulhat elő. Használjon nyilvános HTTPS URL-címeket.</div><div>Pontos kulcsok: type, image_url, frame_type</div><div>Feltételek: Ezek a kulcsok minden képkockaobjektumra vonatkoznak. Kizárólag szöveges kérésnél hagyja el a frame_images mezőt.</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\">input_references</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>array</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>Bemeneti tartalom: Kép- vagy hangreferencia-objektumok tömbje. A type értéke image_url vagy audio_url legyen, és adja meg a hozzá tartozó, url mezőt tartalmazó URL-objektumot. A videóreferenciák továbbra sem árazhatók.</div><div>Feltételek: A referenciaanyagokkal dolgozó módhoz hagyja el a frame_images mezőt. Használjon nyilvános HTTPS URL-címeket.</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\">size</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>480x480, 480x640, 480x854, 640x480, 854x480, 1120x480, 720x720, 720x960, 720x1280, 720x1680, 960x720, 1280x720, 1680x720</div><div>Minta: ^[1-9][0-9]*x[1-9][0-9]*$</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\">seed</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>Minimum: -9 223 372 036 854 775 808</div><div>Maximum: 9 223 372 036 854 775 807</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\">callback_url</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>Minta: ^https://</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\">session_id</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></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\">trace</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</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></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\">user</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></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</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 videó</b> · Írott utasítás. · Kötelező: model, prompt, duration</p><p class=\"note-s\"><code>Adjon meg szöveges utasítást és támogatott, egész másodpercekben megadott időtartamot. Használjon pontosan felsorolt méretet, vagy olyan felbontást és képarányt, amely felsorolt méreteket eredményez.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Típus: string · bytedance/seedance-2.0-fast</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Típus: string · Maximális UTF-8 bájtszám: 10 000 · Nem csak szóközből álló tartalom szükséges: Igen</p><p class=\"note-s\"><b>Képből videó</b> · Írott utasítás és egy képkockakép. · Kötelező: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>A frame_images objektumok tömbje, type=image_url, url mezőt tartalmazó image_url és frame_type mezőkkel. Használjon nyilvános HTTPS kép-URL-címet; a first_frame és last_frame külön-külön egyszer szerepelhet. Használjon felsorolt kimeneti méretet vagy azzal összeegyeztethető méreteket. Ne adjon hozzá videóreferenciákat.</code></p><p class=\"note-s\">Pontos kulcsok: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Típus: string · bytedance/seedance-2.0-fast</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Típus: string · Maximális UTF-8 bájtszám: 10 000 · Nem csak szóközből álló tartalom szükséges: Igen</p><p class=\"note-s\"><b>Reference to video</b> · Írott utasítás és kép- vagy hangreferenciák. · Kötelező: model, prompt, duration, input_references</p><p class=\"note-s\"><code>Az input_references egy tömb. Minden objektum type=image_url vagy type=audio_url mezőt és egy hozzá tartozó, url mezőt tartalmazó URL-objektumot tartalmaz. Használjon nyilvános HTTPS hivatkozásokat. A referenciaanyagokkal dolgozó mód kiválasztásához hagyja el a frame_images mezőt. A videóreferenciák nem árazhatók.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Típus: string · bytedance/seedance-2.0-fast</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Típus: string · Maximális UTF-8 bájtszám: 10 000 · Nem csak szóközből álló tartalom szükséges: Igen</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, duration</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, image, audio</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>additional_properties</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>optional_controls</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Életciklus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></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>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>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=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</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>Videótoken ára</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>1K videótokenenként</td><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>Ebben az árképzési kulcsban nincs további feltétel megadva.</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Videótoken ára · Becslés, csak összehasonlításra</span> <b>$0.0084</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Videótoken ára</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>1K videótokenenként</td><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>bemenet: videóbemenettel</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>reference · Videótoken ára · Becslés, csak összehasonlításra</span> <b>$0.00495</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Videótoken ára</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>1K videótokenenként</td><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>hang: hang nélkül</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Videótoken ára · Becslés, csak összehasonlításra</span> <b>$0.0084</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></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=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</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.18144</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>Videóbeállítások árhivatkozásai</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>Videótoken ára</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>Ebben az árképzési kulcsban nincs további feltétel megadva.</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Videótoken ára</span> <b>$0.0084</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Videótoken ára</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>hang: hang nélkül</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Kimenet · Videótoken ára</span> <b>$0.0084</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Videótoken ára</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>bemenet: videóbemenettel</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>reference · Videótoken ára</span> <b>$0.00495</b> <span class=\"price-unit\">1K videótokenenként</span></div><p class=\"note-s\">A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · Videó</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-1134-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1134-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · hozz létre videót</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-1134-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1134-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;model&quot;:&quot;bytedance/seedance-2.0-fast&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;duration&quot;:4,&quot;resolution&quot;:&quot;480p&quot;,&quot;size&quot;:&quot;480x480&quot;,&quot;generate_audio&quot;:false}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\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 · Videó</h4><p class=\"note-s\">aláírt saját tartalom-URL-címek</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Feladatállapot ellenőrzése</h5><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-1135-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1135-panel-0\" aria-selected=\"true\" tabindex=\"0\">Az eredeti művelet állapotának lekérése GET-tel</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-1135-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1135-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>További tartalomlekérések</summary><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-1136-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1136-panel-0\" aria-selected=\"true\" tabindex=\"0\">Mentsen minden elkészült, Önhöz tartozó kimenetet</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-1136-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1136-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_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><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 videót és visszaadott fájlt; töltse le az összes ténylegesen visszaadott médiafájl URL-jének tartalmát.</p><p class=\"note-s\">Őrizze meg az összes ténylegesen visszaadott, Önhöz tartozó kimenetet és a hozzájuk visszaadott mért metaadatokat.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">503 result_pending_check + eredeti azonosító + X-Should-Retry:false; az eredeti kérést soha ne ismételje meg</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><th>Jelentés</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>E videó nullától induló pozíciója a kimeneti listában.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Aláírt HTTPS letöltési URL ehhez az elkészült videóhoz.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Az eredeti videóbájtok SHA-256 lenyomata; null, ha nem érhető el.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Az eredeti videófájl mérete bájtban; null, ha nem érhető el.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>A videó mért időtartama ezredmásodpercben; null, ha nem érhető el.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>A videó szélessége pixelben; null, ha nem érhető el.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>A videó magassága pixelben; null, ha nem érhető el.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Videókodek-azonosító; null, ha nincs rögzítve.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>boolean | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Jelzi, hogy a videó tartalmaz-e hangsávot; null, ha nem mérték meg.</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string | null</td><td data-cell-label=\"Jelentés\"><span class=\"card-cell-label\">Jelentés</span>Hangkodek-azonosító; null, ha nincs azonosító rögzítve.</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>404 · <code>not_found_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A videóhoz való hozzáférés nem érhető el, vagy ez a videóazonosító nem található.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Ellenőrizze a videóhoz való hozzáférést. Meglévő videónál használja annak eredeti nyilvános azonosítóját és ugyanazt az API-kulcsot.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Az API-kulcs nem egyezik a hitelesített fiókkal.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Beküldés előtt ellenőrizze az API-kulcsot és a fiók hozzáférését.</td></tr><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>A kérés nem olvasható, vagy a letöltési index érvénytelen.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Javítsa a kérés törzsét. Letöltéshez az eredeti feladat által visszaadott kimeneti indexet válasszon.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A kiválasztott videóbeállítás nem árazható.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Válasszon támogatott videóbeállítást, és adja meg az ahhoz kötelező opciókat a javított kérés beküldése előtt.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A videóbemenet vagy az eredeti folytatási feladat érvénytelen.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Használjon érvényes HTTPS bemeneteket. Folytatáshoz adja meg az elkészült eredeti videó nyilvános azonosítóját ugyanazzal az API-kulccsal.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>402 · <code>billing_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A rendelkezésre álló egyenleg vagy a limitek nem teszik lehetővé az összeg zárolását.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Új kérés elküldése előtt ellenőrizze a rendelkezésre álló egyenleget és a limiteket.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>503 · <code>server_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A videó ellenőrzése, tárolása vagy a szolgáltatás elérése átmenetileg nem áll rendelkezésre.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Várja meg, amíg a szolgáltatás elérhető lesz. Ha már van videóazonosítója, az eredeti feladatot ellenőrizze újabb generálás létrehozása helyett.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Az eredeti videóeredményt és a díjat ellenőrizni kell.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Őrizze meg a visszaadott videóazonosítót, és ellenőrizze azt a feladatot. Az ellenőrzés ideje alatt ne küldjön helyettesítő generálási kérést.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A meglévő videó letöltése átmenetileg nem érhető el.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Ellenőrizze később ugyanazt a videófeladatot, és töltse le annak meglévő kimenetét. Egy új generálás külön műveletet hoz létre.</td></tr><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>A videótartalom nincs közzétéve.</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Ellenőrizze az eredeti feladat állapotát. Akkor töltse le, amikor completed állapotot jelent; ha failed állapotot jelent, kövesse a díjellenőrzési értesítését.</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%2Fseedance-2.0-fast&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0-fast&amp;fmt=videos\"><code>bytedance/seedance-2.0-fast</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%2Fseedance-2.0-fast&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0-fast&amp;fmt=videos\"><code>bytedance/seedance-2.0-fast</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-2.0-fast",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-2.0-fast",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-2.0-fast",
      "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": "Őrizze meg az összes ténylegesen visszaadott, Önhöz tartozó kimenetet és a hozzájuk visszaadott mért metaadatokat.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "A videóhoz való hozzáférés nem érhető el, vagy ez a videóazonosító nem található.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ellenőrizze a videóhoz való hozzáférést. Meglévő videónál használja annak eredeti nyilvános azonosítóját és ugyanazt az API-kulcsot.",
                "type": "not_found_error"
              },
              {
                "condition": "Az API-kulcs nem egyezik a hitelesített fiókkal.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Beküldés előtt ellenőrizze az API-kulcsot és a fiók hozzáférését.",
                "type": "authentication_error"
              },
              {
                "condition": "A kérés nem olvasható, vagy a letöltési index érvénytelen.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Javítsa a kérés törzsét. Letöltéshez az eredeti feladat által visszaadott kimeneti indexet válasszon.",
                "type": "invalid_request_error"
              },
              {
                "condition": "A kiválasztott videóbeállítás nem árazható.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Válasszon támogatott videóbeállítást, és adja meg az ahhoz kötelező opciókat a javított kérés beküldése előtt.",
                "type": "price_unavailable"
              },
              {
                "condition": "A videóbemenet vagy az eredeti folytatási feladat érvénytelen.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Használjon érvényes HTTPS bemeneteket. Folytatáshoz adja meg az elkészült eredeti videó nyilvános azonosítóját ugyanazzal az API-kulccsal.",
                "type": "invalid_request_error"
              },
              {
                "condition": "A rendelkezésre álló egyenleg vagy a limitek nem teszik lehetővé az összeg zárolását.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Új kérés elküldése előtt ellenőrizze a rendelkezésre álló egyenleget és a limiteket.",
                "type": "billing_error"
              },
              {
                "condition": "A videó ellenőrzése, tárolása vagy a szolgáltatás elérése átmenetileg nem áll rendelkezésre.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Várja meg, amíg a szolgáltatás elérhető lesz. Ha már van videóazonosítója, az eredeti feladatot ellenőrizze újabb generálás létrehozása helyett.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Az eredeti videóeredményt és a díjat ellenőrizni kell.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Őrizze meg a visszaadott videóazonosítót, és ellenőrizze azt a feladatot. Az ellenőrzés ideje alatt ne küldjön helyettesítő generálási kérést.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "A meglévő videó letöltése átmenetileg nem érhető el.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ellenőrizze később ugyanazt a videófeladatot, és töltse le annak meglévő kimenetét. Egy új generálás külön műveletet hoz létre.",
                "type": "server_error"
              },
              {
                "condition": "A videótartalom nincs közzétéve.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ellenőrizze az eredeti feladat állapotát. Akkor töltse le, amikor completed állapotot jelent; ha failed állapotot jelent, kövesse a díjellenőrzési értesítését.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + eredeti azonosító + X-Should-Retry:false; az eredeti kérést soha ne ismételje meg"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Adjon meg szöveges utasítást és támogatott, egész másodpercekben megadott időtartamot. Használjon pontosan felsorolt méretet, vagy olyan felbontást és képarányt, amely felsorolt méreteket eredményez.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Írott utasítás."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "A frame_images objektumok tömbje, type=image_url, url mezőt tartalmazó image_url és frame_type mezőkkel. Használjon nyilvános HTTPS kép-URL-címet; a first_frame és last_frame külön-külön egyszer szerepelhet. Használjon felsorolt kimeneti méretet vagy azzal összeegyeztethető méreteket. Ne adjon hozzá videóreferenciákat.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Írott utasítás és egy képkockakép."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Az input_references egy tömb. Minden objektum type=image_url vagy type=audio_url mezőt és egy hozzá tartozó, url mezőt tartalmazó URL-objektumot tartalmaz. Használjon nyilvános HTTPS hivatkozásokat. A referenciaanyagokkal dolgozó mód kiválasztásához hagyja el a frame_images mezőt. A videóreferenciák nem árazhatók.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Írott utasítás és kép- vagy hangreferenciák."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "E videó nullától induló pozíciója a kimeneti listában.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Aláírt HTTPS letöltési URL ehhez az elkészült videóhoz.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Az eredeti videóbájtok SHA-256 lenyomata; null, ha nem érhető el.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Az eredeti videófájl mérete bájtban; null, ha nem érhető el.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "A videó mért időtartama ezredmásodpercben; null, ha nem érhető el.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "A videó szélessége pixelben; null, ha nem érhető el.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "A videó magassága pixelben; null, ha nem érhető el.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Videókodek-azonosító; null, ha nincs rögzítve.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Jelzi, hogy a videó tartalmaz-e hangsávot; null, ha nem mérték meg.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Hangkodek-azonosító; null, ha nincs azonosító rögzítve.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "aláírt saját tartalom-URL-címek",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0-fast"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0-fast"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "A generate_audio elhagyása a hangot tartalmazó árat, a false pedig a hang nélküli árat választja ki. Az eredmény has_audio mezőjében ellenőrizze, hogy érkezett-e hangsáv.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Ezek a kulcsok minden képkockaobjektumra vonatkoznak. Kizárólag szöveges kérésnél hagyja el a frame_images mezőt.",
                "content": "Képkockaobjektumok tömbje. Mindegyikben type=image_url, url mezőt tartalmazó image_url és frame_type=first_frame vagy last_frame szerepel. Minden szerep legfeljebb egyszer fordulhat elő. Használjon nyilvános HTTPS URL-címeket.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "A referenciaanyagokkal dolgozó módhoz hagyja el a frame_images mezőt. Használjon nyilvános HTTPS URL-címeket.",
                "content": "Kép- vagy hangreferencia-objektumok tömbje. A type értéke image_url vagy audio_url legyen, és adja meg a hozzá tartozó, url mezőt tartalmazó URL-objektumot. A videóreferenciák továbbra sem árazhatók.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0-fast"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "bemenet: videóbemenettel",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.00495000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.00000495",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "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.18144",
                "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.18144",
                "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}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0-fast\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "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"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.00495000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.00000495",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.18144",
                "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.18144",
                "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/seedance-2.0-fast",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_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.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.00495000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.00000495",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.18144",
            "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.18144",
            "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/seedance-2.0-fast",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "70ae1359aa30ae53a9d2b8a8935ab32db45d6a20e73648b94ef8806cffdeebc9",
    "input_html_sha256": "a0c71113779841d110096a280e892aab543ff09b1ca905ef83bf1c37c8baf763",
    "private_audit_sha256": "5812565f8371fd5f00ebc7af3b6df6745550c86918cc814ec6a8ab677153a6c9",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/hu/bytedance-seedance-2-0-fast/",
    "description": "A ByteDance Seedance 2.0 Fast hang–videó jeleneteket készít szövegből, képekből, videó- és hangreferenciákból. Sebességközpontú változata mozgás- és stílusátvitelt, videószerkesztést, valamint előre vagy visszafelé hosszabbítást támogat dokumentált 480p és 720p kimenettel.",
    "locale": "hu",
    "md_url": "https://ailoot.ai/models/hu/bytedance-seedance-2-0-fast/index.md",
    "title": "ByteDance: Seedance 2.0 Fast — Ailoot",
    "url": "https://ailoot.ai/models/hu/bytedance-seedance-2-0-fast/"
  },
  "rawModel": {
    "about": "A Seedance 2.0 Fast a ByteDance Seed Seedance 2.0 családjának sebességközpontú változata. Közös videó- és hanggenerálást, valamint szövegből, képekből, videóból és hangból összeállított multimodális feladatleírást támogat. Alkotói képességei közé új referenciaalapú jelenetek, meglévő felvételek szerkesztése és jelenethosszabbítás tartozik, dokumentált kimeneti szintjei pedig 480p és 720p.\n\n### Multimodális referencia: szerepek rendelése az anyagokhoz\n\nKép adhat szereplőt, terméket, kompozíciót vagy vizuális feldolgozást. Referenciavideó cselekményt, kameramozgást vagy effektet. Referenciahang hangszínt, zenei dallamot vagy párbeszédtartalmat. Magyarázd el, az egyes források mely részét szeretnéd átvinni az új jelenetbe; a referencia hasznosabb, ha konkrét alkotói szerepe van.\n\nPéldául: „Az Image 1 kerámialámpáját használd termékként. Kövesd a Video 1 lassú kamerakörözését, de helyezd a lámpát egy csendes olvasósarokba. A zenei hangulathoz az Audio 1-et használd.” A kívánt kimenet a kiválasztott megjelenést, mozgást és hangi irányt összekapcsoló új jelenet, nem a referenciák minden részletének meghatározatlan utánzása.\n\nA dokumentált kombinációk között kép és hang, kép és videó, videó és hang, valamint mindhárom együtt szerepel. A csak szöveg és hang, illetve a csak hang bemenet nem támogatott. A modell szöveg–videó és első képkockából vagy első–utolsó képkockapárból induló képvezérelt generálást is támogat. Ha a pontos végpont központi része a feladatnak, a dedikált végpont-munkafolyamatot használd; egy referenciakép végpontként való leírása omni-reference promptban közvetett vezérlés.\n\n### Meglévő videó szerkesztése\n\nA modell elemeket adhat hozzá, távolíthat el vagy módosíthat, alanyt cserélhet, és jelenetrészeket rajzolhat újra vagy javíthat. Azonosítsd a forrásvideót, megváltoztatandó tárgyat és megtartandó elemeket. Hozzáadásnál írd le, hol és mikor jelenik meg. Eltávolításnál a teljes klipben következetesen azonosítsd a tárgyat.\n\nGyakorlati szerkesztési feladatként egy bemutató egyszerű palackja lecserélhető az Image 1 palackjára, miközben a Video 1 kézmozgásának, hátterének és kameraútjának megtartását kéred. A cserét és a stabilan maradni kívánt területeket is ellenőrizd. A világos megőrzési utasítások könnyebben értékelhetővé teszik a kívánt szerkesztést, mint a felvétel általános „javításának” kérése.\n\n### Klipek hosszabbítása és összekapcsolása\n\nA Seedance 2.0 Fast előre vagy visszafelé hosszabbítást és két-három klip generált átmenetekkel való összekapcsolását támogatja. Hosszabbításnál add meg, hogy az új cselekmény a megadott videó előtt vagy után történik-e, és írd le. Összekapcsolásnál a kívánt sorrendben add a klipeket, és magyarázd el az őket összekötő vizuális eseményt.\n\nEgy egyszerű hosszabbítás általában az eredeti felvétel körül kialakított új folytatást adja vissza, nem feltételezi a teljes forrásklip megismétlését. Ha a kimenetnek tartalmaznia kell az eredeti szegmenst, ezt mondd ki a feladatban. Két-három videó közötti átmenet kitöltésekor a dokumentált munkafolyamat eredeti és újonnan generált tartalmat kombinálhat. Ez hasznos egy tág terméknézet és egy részletkép célszerű kameramozgással való összekapcsolásához.\n\n### Kimenet és változatok közötti különbségek\n\nA dokumentált Fast-kimenet MP4, 24 fps, 480p vagy 720p, 8 bites színmélység és 4–15 másodperces klip. Támogatott képarányok: 21:9, 16:9, 4:3, 1:1, 3:4 és 9:16. A standard Seedance 2.0 külön 1080p és 4K kimenetet sorol fel; ezek a szintek nem részei a Fast-specifikációnak. A 2.0 család támogatja az utolsó generált képkocka visszaadását, de nem támogatja a külön Draft-előnézet módot.\n\nA felvétellel hang is generálható, vagy elhagyható néma kliphez. A generált hang mono. A dokumentált promptnyelvek között angol, spanyol, indonéz, portugál és japán szerepel. Párbeszéden belül tartsd következetesen a beszélt nyelvet; az útmutató tulajdonnevek kivételével nem ajánlja a nyelvek keverését. Beszédes jelenethez nevezd meg a beszélőt, tedd idézőjelbe a sort, majd add meg az előadást és releváns hangeffekteket. A kért előadás illeszkedjen a kiválasztott kliphosszhoz.\n\n### Referenciák előkészítése és bemeneti korlátok\n\nA dokumentált referenciakorlát legfeljebb kilenc kép, három videó és három hangklip. Valódi emberi arcot tartalmazó referenciaképek vagy videók közvetlen feltöltése ebben a dokumentált gyártói leírásban nem elfogadott; portrémunkához a támogatott portréanyag-munkafolyamat használatos. Minden videó- vagy hangklipnek 2–15 másodpercesnek kell lennie; a videók együttes hossza legfeljebb 15 másodperc, a hangoké külön legfeljebb 15 másodperc. A videóreferenciák MP4-et vagy MOV-ot használnak 24–60 fps-sel, és egyenként nem haladhatják meg a 200 MB-ot. A hangreferenciák WAV-ot vagy MP3-at használnak, egyenként legfeljebb 15 MB-tal. A felsorolt képformátumok JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC és HEIF. Minden kép 30 MB-nál kisebb legyen; a teljes kéréstörzs korlátja 64 MB. A dokumentált referenciabemenetnél a képszélesség és -magasság szigorúan 300 és 6000 pixel közötti, a szélesség–magasság arány szigorúan 0.4 és 2.5 közötti. A referenciavideók mindkét mérete 300–6000 pixel és aránya 0.4–2.5 lehet, a határokat beleértve, összesen 407 696–8 295 044 pixellel. Az MP4 vagy MOV videók H.264/AVC vagy H.265/HEVC videót és AAC vagy MP3 hangot használnak.\n\nRendezd sorba az anyagokat, és következetesen Image 1, Video 1 vagy Audio 1 néven hivatkozz rájuk. Az anyagszám mellett használd a látható alany nevét vagy megkülönböztető jellemzőjét. A végpontképek kivágását igazítsd a tervezett videóarányhoz, mert az eltérés levághatja a képet vagy zavaró képkivágás-váltást okozhat. A feladatleírás a továbbviendő jellemzőkre, generálandó eseményre és változatlanul maradó elemekre összpontosítson; a hosszú prompt szétszórhatja az utasításokat, és megoldatlanul hagyhat másodlagos részleteket.\n\n### Snitttervezés, szöveg és ismert viselkedések\n\nAz összetett feladatot Shot 1, Shot 2 és Shot 3 formában szervezd, mindegyikhez világos alannyal, művelettel, pozícióval és hanggal. Az útmutató snittenként egy kameramozgást ajánl, és a pontos snittenkénti időbélyegeket instabilnak nevezi. Minden karakternek adj állandó címkét és néhány megkülönböztető jellemzőt; ha az arcazonosság fontos, kombinált karakterkörbeforgatási lap helyett külön tiszta portré- és teljes alakos referenciát használj.\n\nA modell közönséges szöveget, köztük szlogeneket, feliratokat és szövegbuborékokat generálhat, színük, stílusuk, pozíciójuk és belépésük irányításával. A gyakori karakterek előnyösebbek a ritka karaktereknél vagy speciális szimbólumoknál. Mozgás közben ellenőrizd a betűket. A nem kívánt feliratok, logók és duplikált karakterek dokumentált viselkedések; az explicit korlátok és tiszta referenciák csökkenthetik őket, de nem garantálják hiányukat. Négynél több referencia-személy használatát stabilitási kockázatként említi, nem szigorú fájlszámkorlátként.\n\nAz ismételt hosszabbítások halmozhatják a képminőség-romlást, és a csatlakozás ugorhat vagy visszaléphet. Korlátozd az egymásra épített folytatásokat, és a szerkesztésben vizsgáld meg a csatlakozást. A referencia hangszíne elcsúszhat, a narráció kattintással végződhet, a kínai többkiejtésű vagy ritka karakterek pedig hibásan hangozhatnak el. Ellenőrizd a kimondott sort és záróhangot; rövid hangkiúsztatás segíthet a levágáson. Ezek az ellenőrzések az alkotói eredmény előkészítésének részei, különösen ha a történetet a beszéd vagy a karakterfolytonosság hordozza.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-2.0-fast",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.18144",
            "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.18144",
            "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": "24999f354c53561f1fcfc3f1",
        "label": "Videóbeállítások árhivatkozásai",
        "profiles": [
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "Ebben az árképzési kulcsban nincs további feltétel megadva."
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.0084",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "hang: hang nélkül"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.0084",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "bemenet: videóbemenettel"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.00495",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-2.0-fast",
    "input": [
      "text",
      "image",
      "audio"
    ],
    "kind": "video",
    "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": "Őrizze meg az összes ténylegesen visszaadott, Önhöz tartozó kimenetet és a hozzájuk visszaadott mért metaadatokat.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "A videóhoz való hozzáférés nem érhető el, vagy ez a videóazonosító nem található.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Ellenőrizze a videóhoz való hozzáférést. Meglévő videónál használja annak eredeti nyilvános azonosítóját és ugyanazt az API-kulcsot.",
                "type": "not_found_error"
              },
              {
                "condition": "Az API-kulcs nem egyezik a hitelesített fiókkal.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Beküldés előtt ellenőrizze az API-kulcsot és a fiók hozzáférését.",
                "type": "authentication_error"
              },
              {
                "condition": "A kérés nem olvasható, vagy a letöltési index érvénytelen.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Javítsa a kérés törzsét. Letöltéshez az eredeti feladat által visszaadott kimeneti indexet válasszon.",
                "type": "invalid_request_error"
              },
              {
                "condition": "A kiválasztott videóbeállítás nem árazható.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Válasszon támogatott videóbeállítást, és adja meg az ahhoz kötelező opciókat a javított kérés beküldése előtt.",
                "type": "price_unavailable"
              },
              {
                "condition": "A videóbemenet vagy az eredeti folytatási feladat érvénytelen.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Használjon érvényes HTTPS bemeneteket. Folytatáshoz adja meg az elkészült eredeti videó nyilvános azonosítóját ugyanazzal az API-kulccsal.",
                "type": "invalid_request_error"
              },
              {
                "condition": "A rendelkezésre álló egyenleg vagy a limitek nem teszik lehetővé az összeg zárolását.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Új kérés elküldése előtt ellenőrizze a rendelkezésre álló egyenleget és a limiteket.",
                "type": "billing_error"
              },
              {
                "condition": "A videó ellenőrzése, tárolása vagy a szolgáltatás elérése átmenetileg nem áll rendelkezésre.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Várja meg, amíg a szolgáltatás elérhető lesz. Ha már van videóazonosítója, az eredeti feladatot ellenőrizze újabb generálás létrehozása helyett.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Az eredeti videóeredményt és a díjat ellenőrizni kell.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Őrizze meg a visszaadott videóazonosítót, és ellenőrizze azt a feladatot. Az ellenőrzés ideje alatt ne küldjön helyettesítő generálási kérést.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "A meglévő videó letöltése átmenetileg nem érhető el.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ellenőrizze később ugyanazt a videófeladatot, és töltse le annak meglévő kimenetét. Egy új generálás külön műveletet hoz létre.",
                "type": "server_error"
              },
              {
                "condition": "A videótartalom nincs közzétéve.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Ellenőrizze az eredeti feladat állapotát. Akkor töltse le, amikor completed állapotot jelent; ha failed állapotot jelent, kövesse a díjellenőrzési értesítését.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + eredeti azonosító + X-Should-Retry:false; az eredeti kérést soha ne ismételje meg"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Adjon meg szöveges utasítást és támogatott, egész másodpercekben megadott időtartamot. Használjon pontosan felsorolt méretet, vagy olyan felbontást és képarányt, amely felsorolt méreteket eredményez.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Írott utasítás."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "A frame_images objektumok tömbje, type=image_url, url mezőt tartalmazó image_url és frame_type mezőkkel. Használjon nyilvános HTTPS kép-URL-címet; a first_frame és last_frame külön-külön egyszer szerepelhet. Használjon felsorolt kimeneti méretet vagy azzal összeegyeztethető méreteket. Ne adjon hozzá videóreferenciákat.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Írott utasítás és egy képkockakép."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-fast"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Az input_references egy tömb. Minden objektum type=image_url vagy type=audio_url mezőt és egy hozzá tartozó, url mezőt tartalmazó URL-objektumot tartalmaz. Használjon nyilvános HTTPS hivatkozásokat. A referenciaanyagokkal dolgozó mód kiválasztásához hagyja el a frame_images mezőt. A videóreferenciák nem árazhatók.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Írott utasítás és kép- vagy hangreferenciák."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "E videó nullától induló pozíciója a kimeneti listában.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Aláírt HTTPS letöltési URL ehhez az elkészült videóhoz.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Az eredeti videóbájtok SHA-256 lenyomata; null, ha nem érhető el.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Az eredeti videófájl mérete bájtban; null, ha nem érhető el.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "A videó mért időtartama ezredmásodpercben; null, ha nem érhető el.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "A videó szélessége pixelben; null, ha nem érhető el.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "A videó magassága pixelben; null, ha nem érhető el.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Videókodek-azonosító; null, ha nincs rögzítve.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Jelzi, hogy a videó tartalmaz-e hangsávot; null, ha nem mérték meg.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Hangkodek-azonosító; null, ha nincs azonosító rögzítve.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "aláírt saját tartalom-URL-címek",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0-fast"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0-fast"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "A generate_audio elhagyása a hangot tartalmazó árat, a false pedig a hang nélküli árat választja ki. Az eredmény has_audio mezőjében ellenőrizze, hogy érkezett-e hangsáv.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Ezek a kulcsok minden képkockaobjektumra vonatkoznak. Kizárólag szöveges kérésnél hagyja el a frame_images mezőt.",
                "content": "Képkockaobjektumok tömbje. Mindegyikben type=image_url, url mezőt tartalmazó image_url és frame_type=first_frame vagy last_frame szerepel. Minden szerep legfeljebb egyszer fordulhat elő. Használjon nyilvános HTTPS URL-címeket.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "A referenciaanyagokkal dolgozó módhoz hagyja el a frame_images mezőt. Használjon nyilvános HTTPS URL-címeket.",
                "content": "Kép- vagy hangreferencia-objektumok tömbje. A type értéke image_url vagy audio_url legyen, és adja meg a hozzá tartozó, url mezőt tartalmazó URL-objektumot. A videóreferenciák továbbra sem árazhatók.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0-fast"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "A videótoken díjtétele az elsődleges árreferencia. A kiemelt, másodpercenkénti becslések külön árreferenciák, nem jelentenek további díjat.",
            "dimensions": {
              "conditions": "bemenet: videóbemenettel",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Videótoken ára",
            "units": [
              {
                "amount": "0.00495000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.00000495",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "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.18144",
                "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.18144",
                "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}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0-fast\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "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"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.00495000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.00000495",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0084000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000084",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.18144",
                "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.18144",
                "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/seedance-2.0-fast",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_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.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.00495000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.00000495",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.18144",
            "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.18144",
            "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/seedance-2.0-fast",
        "request_model_id": "bytedance/seedance-2.0-fast",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.0 Fast",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.18144,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.18144,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-fast-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000112",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-fast-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-fast-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000066",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-fast-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000084",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0084000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000084",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000084",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.004950000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000004950",
            "key": "video_tokens_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000004950",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-2.0-fast",
    "short": "A ByteDance Seedance 2.0 Fast hang–videó jeleneteket készít szövegből, képekből, videó- és hangreferenciákból. Sebességközpontú változata mozgás- és stílusátvitelt, videószerkesztést, valamint előre vagy visszafelé hosszabbítást támogat dokumentált 480p és 720p kimenettel."
  },
  "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 ByteDance Seedance 2.0 Fast hang–videó jeleneteket készít szövegből, képekből, videó- és hangreferenciákból. Sebességközpontú változata mozgás- és stílusátvitelt, videószerkesztést, valamint előre vagy visszafelé hosszabbítást támogat dokumentált 480p és 720p kimenettel.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "ae81318099645f79875e739698131ce7651b336da22314565fad5e0ea024dd52",
    "raw_model_js_projection_sha256": "48ab5d47df2538f6af16756e15741e436ba007bd122b9a4a9ebe5582fb4b717f",
    "raw_model_json_sha256": "ae81318099645f79875e739698131ce7651b336da22314565fad5e0ea024dd52",
    "renderer_sha256": "59b0e30a0b251f9d98bf0bafcc7ef50440c33057c2bf9c9fadabbcaeefffb5bb"
  },
  "sourceRevision": "42e5d89fc550dbb0ec9573c4b33ce4366e0488cf21759c5ec0e5c679fdee963a"
}
