{
  "aboutHtml": "<p>Vidu Q2 kuria vaizdo įrašą pagal rašytinę sceną, naudodamas viduq2 parenkamą vaizdo generavimo iš teksto profilį. Privalomos įvestys – tikslus modelio identifikatorius ir sceną aprašantis užklausos tekstas. Naudokite jį trumpai gaminio idėjai, bendram vietovės planui ar veikėjo veiksmui, kurio išvaizdą ir judėjimą galima nusakyti žodžiais. Šis sukonfigūruotas metodas generuoja vaizdo įrašą iš teksto; jo apraše identifikatoriui nepriskiriamas atskiras atskaitos vaizdo ar vaizdo redagavimo režimas.</p><p>Aprašą grįskite matoma seka. Nurodykite objektą, vietą, veiksmą, plano stambumą, kameros judėjimą ir galutinę kompoziciją. Gaminio idėjai aprašykite ant stalo esantį objektą, jo medžiagos paviršiumi slenkančią šviesą ir lėtą kameros artėjimą, kuris baigiasi ties atpažįstama detale. Vietovės scenoje prieš artėdami prie akcento parodykite aplinką. Veiksmą pritaikykite pasirinktai klipo trukmei, kad scenai pakaktų laiko numatytai pabaigai.</p><p>Užklausos teksto riba – 2 000 simbolių. Pirmiausia nurodykite esminį objektą ir veiksmą, tada pridėkite norimą rezultatą keičiančias apšvietimo, medžiagos, aplinkos ir kameros detales. Vaizdinį stilių nurodykite užklausos tekste. Q2 skirtame vadove teigiama, kad atskiri style ir movement_amplitude parametrai šiam modeliui neturi poveikio, todėl general arba anime parinktys ir judėjimo amplitudės parinktys nepakeičia aiškaus scenos aprašo.</p><p>Konkretaus modelio trukmės nuostata priima sveikas sekundes nuo vienos iki dešimties. Q2 raiškos pasirinktys yra 540p, 720p ir 1080p, o dokumentuota numatytoji reikšmė – 720p. Trukmę ir raišką rinkitės kartu pagal veiksmą bei paskirtį. Trumpam atskleidimui ir ilgesniam judėjimui reikia skirtingo laiko; ilgesnė prašoma trukmė turi būti naudinga matomai sekai, o ne vien ištempti nepakeistą aprašą. Ruošdami galutinį pateikimą patikrinkite tikrus grąžinto klipo matmenis ir trukmę.</p><p>Dokumentuotos aspect_ratio parinktys yra 16:9, 9:16, 3:4, 4:3 ir 1:1, o numatytoji – 16:9. Vadove Q2 šeimai aiškiai įtraukti 3:4 ir 4:3. Prieš generuodami pasirinkite kadravimą ir aprašykite jam tinkamą kompoziciją: vertikaliame vaizde pagrindinis objektas turi būti aiškiai matomas, o horizontalaus kadro plotį galima skirti aplinkai. Baigiamasis vaizdas turi likti pakankamai aiškus numatytam puslapiui, pristatymui ar vėliau pridedamiems užrašams.</p><p>Seed laukas valdo variaciją. Jo nepateikus arba pateikus 0 parenkama atsitiktinė reikšmė; nenulinė reikšmė parenka dokumentuotą fiksuoto seed parinktį pakartojamam generavimui. Lygindami versijas išsaugokite grąžintą seed kartu su užklausos tekstu ir nuostatomis. Bendra operacija taip pat dokumentuoja audio ir off_peak valdiklius būtent Q3 modeliams. Šios Q3 parinktys nėra šiam Q2 profiliui priskirtos galimybės; užklausą planuokite pagal dokumentuotą tekstinę įvestį ir vaizdo išvestį.</p><p>Generavimas yra asinchroninis. Pateikus užklausą grąžinamas task_id ir pradinė būsena; naujai sukurtai užduočiai naudojama created. Sekdami apdorojimą išsaugokite šį užduoties identifikatorių. Dokumentuota rezultato užklausa sėkmingam rezultatui naudoja state=success ir grąžina creations masyvą. Kiekvieno elemento vaizdo URL yra creations[].url; išsaugokite kiekvieną grąžintą vaizdo įrašą, užuot manę, kad užduotis visada turi tik vieną kūrinį.</p><p>Rezultato dokumentacijoje taip pat pateikiama tikro vaizdo įrašo trukmė, fps ir raiškos plotis bei aukštis. Išsaugokite šias pateiktas reikšmes kartu su užbaigtu klipu, užuot pavyzdžio kadrų dažnį ar matmenis laikę fiksuota Q2 specifikacija. Užduoties sukūrimo atsakyme kartu su užklausos konfigūracija pateikiama credits reikšmė. Išsaugokite šiuos pateiktus užduoties metaduomenis ir užbaigtos užduoties identifikatorių kartu su rezultatu, kad kiekvienas vaizdo įrašas liktų susietas su jo generavimo nuostatomis.</p><p>Peržiūrėkite visą seką pagal pradinį aprašą: objekto išvaizdą, formą, judėjimo kryptį, kameros tęstinumą ir numatytą galutinį vaizdą. Taisydami nurodykite konkrečią aprašo neatitikusią detalę ir išlaikykite pavykusias scenos dalis. Užklausos tekstą, tikslų identifikatorių, nuostatas, užduoties identifikatorių ir užbaigtus vaizdo įrašus laikykite kartu, kad vėlesnis palyginimas būtų grindžiamas tikrais rezultatais.</p>",
  "aboutText": "Vidu Q2 kuria vaizdo įrašą pagal rašytinę sceną, naudodamas viduq2 parenkamą vaizdo generavimo iš teksto profilį. Privalomos įvestys – tikslus modelio identifikatorius ir sceną aprašantis užklausos tekstas. Naudokite jį trumpai gaminio idėjai, bendram vietovės planui ar veikėjo veiksmui, kurio išvaizdą ir judėjimą galima nusakyti žodžiais. Šis sukonfigūruotas metodas generuoja vaizdo įrašą iš teksto; jo apraše identifikatoriui nepriskiriamas atskiras atskaitos vaizdo ar vaizdo redagavimo režimas.\n\nAprašą grįskite matoma seka. Nurodykite objektą, vietą, veiksmą, plano stambumą, kameros judėjimą ir galutinę kompoziciją. Gaminio idėjai aprašykite ant stalo esantį objektą, jo medžiagos paviršiumi slenkančią šviesą ir lėtą kameros artėjimą, kuris baigiasi ties atpažįstama detale. Vietovės scenoje prieš artėdami prie akcento parodykite aplinką. Veiksmą pritaikykite pasirinktai klipo trukmei, kad scenai pakaktų laiko numatytai pabaigai.\n\nUžklausos teksto riba – 2 000 simbolių. Pirmiausia nurodykite esminį objektą ir veiksmą, tada pridėkite norimą rezultatą keičiančias apšvietimo, medžiagos, aplinkos ir kameros detales. Vaizdinį stilių nurodykite užklausos tekste. Q2 skirtame vadove teigiama, kad atskiri style ir movement_amplitude parametrai šiam modeliui neturi poveikio, todėl general arba anime parinktys ir judėjimo amplitudės parinktys nepakeičia aiškaus scenos aprašo.\n\nKonkretaus modelio trukmės nuostata priima sveikas sekundes nuo vienos iki dešimties. Q2 raiškos pasirinktys yra 540p, 720p ir 1080p, o dokumentuota numatytoji reikšmė – 720p. Trukmę ir raišką rinkitės kartu pagal veiksmą bei paskirtį. Trumpam atskleidimui ir ilgesniam judėjimui reikia skirtingo laiko; ilgesnė prašoma trukmė turi būti naudinga matomai sekai, o ne vien ištempti nepakeistą aprašą. Ruošdami galutinį pateikimą patikrinkite tikrus grąžinto klipo matmenis ir trukmę.\n\nDokumentuotos aspect_ratio parinktys yra 16:9, 9:16, 3:4, 4:3 ir 1:1, o numatytoji – 16:9. Vadove Q2 šeimai aiškiai įtraukti 3:4 ir 4:3. Prieš generuodami pasirinkite kadravimą ir aprašykite jam tinkamą kompoziciją: vertikaliame vaizde pagrindinis objektas turi būti aiškiai matomas, o horizontalaus kadro plotį galima skirti aplinkai. Baigiamasis vaizdas turi likti pakankamai aiškus numatytam puslapiui, pristatymui ar vėliau pridedamiems užrašams.\n\nSeed laukas valdo variaciją. Jo nepateikus arba pateikus 0 parenkama atsitiktinė reikšmė; nenulinė reikšmė parenka dokumentuotą fiksuoto seed parinktį pakartojamam generavimui. Lygindami versijas išsaugokite grąžintą seed kartu su užklausos tekstu ir nuostatomis. Bendra operacija taip pat dokumentuoja audio ir off_peak valdiklius būtent Q3 modeliams. Šios Q3 parinktys nėra šiam Q2 profiliui priskirtos galimybės; užklausą planuokite pagal dokumentuotą tekstinę įvestį ir vaizdo išvestį.\n\nGeneravimas yra asinchroninis. Pateikus užklausą grąžinamas task_id ir pradinė būsena; naujai sukurtai užduočiai naudojama created. Sekdami apdorojimą išsaugokite šį užduoties identifikatorių. Dokumentuota rezultato užklausa sėkmingam rezultatui naudoja state=success ir grąžina creations masyvą. Kiekvieno elemento vaizdo URL yra creations[].url; išsaugokite kiekvieną grąžintą vaizdo įrašą, užuot manę, kad užduotis visada turi tik vieną kūrinį.\n\nRezultato dokumentacijoje taip pat pateikiama tikro vaizdo įrašo trukmė, fps ir raiškos plotis bei aukštis. Išsaugokite šias pateiktas reikšmes kartu su užbaigtu klipu, užuot pavyzdžio kadrų dažnį ar matmenis laikę fiksuota Q2 specifikacija. Užduoties sukūrimo atsakyme kartu su užklausos konfigūracija pateikiama credits reikšmė. Išsaugokite šiuos pateiktus užduoties metaduomenis ir užbaigtos užduoties identifikatorių kartu su rezultatu, kad kiekvienas vaizdo įrašas liktų susietas su jo generavimo nuostatomis.\n\nPeržiūrėkite visą seką pagal pradinį aprašą: objekto išvaizdą, formą, judėjimo kryptį, kameros tęstinumą ir numatytą galutinį vaizdą. Taisydami nurodykite konkrečią aprašo neatitikusią detalę ir išlaikykite pavykusias scenos dalis. Užklausos tekstą, tikslų identifikatorių, nuostatas, užduoties identifikatorių ir užbaigtus vaizdo įrašus laikykite kartu, kad vėlesnis palyginimas būtų grindžiamas tikrais rezultatais.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "bc38ab06e14f0ada5a7b88d51ad5b6a9f02a4d024dd2dfcabe69a4aee3f3eee4",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "lt",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Vidu: Q2 Text-to-Video</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Uždaryti\">×</button></div><div class=\"idline\"><span>Vidu /</span><code>viduq2</code><button type=\"button\" id=\"copy-id\">Kopijuoti ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modelio kortelės skyriai\"><button type=\"button\" data-card-jump=\"overview\">Pradžia</button><button type=\"button\" data-card-jump=\"methods\">Įvestys ir metodai</button><button type=\"button\" data-card-jump=\"pricing\">Planai</button><button type=\"button\" data-card-jump=\"examples\">Pavyzdžiai</button><button type=\"button\" data-card-jump=\"results\">Rezultatai</button><button type=\"button\" data-card-jump=\"aliases\">Pseudonimai</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API metodai\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|viduq2\">Vaizdo įrašai</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Pradžia</h3><p class=\"mdesc-full\">Vidu Q2 kuria vaizdo įrašą pagal tekstinį scenos aprašą; trukmė – 1–10 sekundžių, išvesties raiška – 540p, 720p arba 1080p, galimi penki kraštinių santykiai. Šis konkretus viduq2 profilis stilių ir judėjimą nustato pagal užklausos tekstą, o rezultatą grąžina per asinchroninę užduotį.</p><dl class=\"card-io\" data-card-io><div><dt>Leidžiamos įvestys</dt><dd>Tekstas</dd></div><div><dt>Rezultatai</dt><dd>Vaizdo įrašai</dd></div></dl><details class=\"card-about\"><summary>Apie modelį</summary><p class=\"note-s\" data-model-method-boundary>Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.</p><div class=\"mabout\" id=\"m-about\"><p>Vidu Q2 kuria vaizdo įrašą pagal rašytinę sceną, naudodamas viduq2 parenkamą vaizdo generavimo iš teksto profilį. Privalomos įvestys – tikslus modelio identifikatorius ir sceną aprašantis užklausos tekstas. Naudokite jį trumpai gaminio idėjai, bendram vietovės planui ar veikėjo veiksmui, kurio išvaizdą ir judėjimą galima nusakyti žodžiais. Šis sukonfigūruotas metodas generuoja vaizdo įrašą iš teksto; jo apraše identifikatoriui nepriskiriamas atskiras atskaitos vaizdo ar vaizdo redagavimo režimas.</p><p>Aprašą grįskite matoma seka. Nurodykite objektą, vietą, veiksmą, plano stambumą, kameros judėjimą ir galutinę kompoziciją. Gaminio idėjai aprašykite ant stalo esantį objektą, jo medžiagos paviršiumi slenkančią šviesą ir lėtą kameros artėjimą, kuris baigiasi ties atpažįstama detale. Vietovės scenoje prieš artėdami prie akcento parodykite aplinką. Veiksmą pritaikykite pasirinktai klipo trukmei, kad scenai pakaktų laiko numatytai pabaigai.</p><p>Užklausos teksto riba – 2 000 simbolių. Pirmiausia nurodykite esminį objektą ir veiksmą, tada pridėkite norimą rezultatą keičiančias apšvietimo, medžiagos, aplinkos ir kameros detales. Vaizdinį stilių nurodykite užklausos tekste. Q2 skirtame vadove teigiama, kad atskiri style ir movement_amplitude parametrai šiam modeliui neturi poveikio, todėl general arba anime parinktys ir judėjimo amplitudės parinktys nepakeičia aiškaus scenos aprašo.</p><p>Konkretaus modelio trukmės nuostata priima sveikas sekundes nuo vienos iki dešimties. Q2 raiškos pasirinktys yra 540p, 720p ir 1080p, o dokumentuota numatytoji reikšmė – 720p. Trukmę ir raišką rinkitės kartu pagal veiksmą bei paskirtį. Trumpam atskleidimui ir ilgesniam judėjimui reikia skirtingo laiko; ilgesnė prašoma trukmė turi būti naudinga matomai sekai, o ne vien ištempti nepakeistą aprašą. Ruošdami galutinį pateikimą patikrinkite tikrus grąžinto klipo matmenis ir trukmę.</p><p>Dokumentuotos aspect_ratio parinktys yra 16:9, 9:16, 3:4, 4:3 ir 1:1, o numatytoji – 16:9. Vadove Q2 šeimai aiškiai įtraukti 3:4 ir 4:3. Prieš generuodami pasirinkite kadravimą ir aprašykite jam tinkamą kompoziciją: vertikaliame vaizde pagrindinis objektas turi būti aiškiai matomas, o horizontalaus kadro plotį galima skirti aplinkai. Baigiamasis vaizdas turi likti pakankamai aiškus numatytam puslapiui, pristatymui ar vėliau pridedamiems užrašams.</p><p>Seed laukas valdo variaciją. Jo nepateikus arba pateikus 0 parenkama atsitiktinė reikšmė; nenulinė reikšmė parenka dokumentuotą fiksuoto seed parinktį pakartojamam generavimui. Lygindami versijas išsaugokite grąžintą seed kartu su užklausos tekstu ir nuostatomis. Bendra operacija taip pat dokumentuoja audio ir off_peak valdiklius būtent Q3 modeliams. Šios Q3 parinktys nėra šiam Q2 profiliui priskirtos galimybės; užklausą planuokite pagal dokumentuotą tekstinę įvestį ir vaizdo išvestį.</p><p>Generavimas yra asinchroninis. Pateikus užklausą grąžinamas task_id ir pradinė būsena; naujai sukurtai užduočiai naudojama created. Sekdami apdorojimą išsaugokite šį užduoties identifikatorių. Dokumentuota rezultato užklausa sėkmingam rezultatui naudoja state=success ir grąžina creations masyvą. Kiekvieno elemento vaizdo URL yra creations[].url; išsaugokite kiekvieną grąžintą vaizdo įrašą, užuot manę, kad užduotis visada turi tik vieną kūrinį.</p><p>Rezultato dokumentacijoje taip pat pateikiama tikro vaizdo įrašo trukmė, fps ir raiškos plotis bei aukštis. Išsaugokite šias pateiktas reikšmes kartu su užbaigtu klipu, užuot pavyzdžio kadrų dažnį ar matmenis laikę fiksuota Q2 specifikacija. Užduoties sukūrimo atsakyme kartu su užklausos konfigūracija pateikiama credits reikšmė. Išsaugokite šiuos pateiktus užduoties metaduomenis ir užbaigtos užduoties identifikatorių kartu su rezultatu, kad kiekvienas vaizdo įrašas liktų susietas su jo generavimo nuostatomis.</p><p>Peržiūrėkite visą seką pagal pradinį aprašą: objekto išvaizdą, formą, judėjimo kryptį, kameros tęstinumą ir numatytą galutinį vaizdą. Taisydami nurodykite konkrečią aprašo neatitikusią detalę ir išlaikykite pavykusias scenos dalis. Užklausos tekstą, tikslų identifikatorių, nuostatas, užduoties identifikatorių ir užbaigtus vaizdo įrašus laikykite kartu, kad vėlesnis palyginimas būtų grindžiamas tikrais rezultatais.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Prieinama Ailoot · įvestys ir metodai</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Vaizdo įrašai</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Įvestis</dt><dd><code>text</code></dd></div><div><dt>Išvestis</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Laukas</th><th>Tipas</th><th>Reikalavimas</th><th>Reikšmės ir ribos</th><th>Numatyta</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Privaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>viduq2</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Privaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Sąlygos: Aprašykite generuojamą sceną. Dokumentacijoje nurodyta riba yra 2000 simbolių; Ailoot tikrina, ar eilutė netuščia, ir išsaugo tekstą.</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>integer</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Mažiausia reikšmė: 1</div><div>Didžiausia reikšmė: 10</div><div>Sąlygos: Konkretaus viduq2 modelio apraše nurodyta 1–10 sveikų sekundžių. Dokumentacijoje nepateikta šio modelio numatytoji trukmė.</div><div>Vienetas: sekundės</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>Sąlygos: Jei norite atsitiktinumo, praleiskite arba siųskite eilutę &quot;0&quot;. Pateikta nenulinė seed reikšmė parenka dokumentacijoje aprašytą fiksuotos seed reikšmės veikimą; skaitinis intervalas nenurodytas.</div></td><td data-cell-label=\"Numatyta\" data-default=\"unspecified\"><span class=\"card-cell-label\">Numatyta</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>16:9, 9:16, 3:4, 4:3, 1:1</div></td><td data-cell-label=\"Numatyta\" data-default=\"known\"><span class=\"card-cell-label\">Numatyta</span>16:9</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>540p, 720p, 1080p</div><div>Sąlygos: Konkretaus viduq2 modelio sąraše šios pakopos dokumentuotos 1–10 sekundžių trukmei. Bendrame išvardijimo tipe ir lentelėje taip pat minima 360p; jos taikymas prieštarauja tam sąrašui ir čia netvirtinamas.</div></td><td data-cell-label=\"Numatyta\" data-default=\"known\"><span class=\"card-cell-label\">Numatyta</span>720p</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">style</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>general, anime</div><div>Sąlygos: Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad viduq2 jis neturi poveikio.</div></td><td data-cell-label=\"Numatyta\" data-default=\"known\"><span class=\"card-cell-label\">Numatyta</span>general</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">movement_amplitude</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span><code>string</code></td><td data-cell-label=\"Reikalavimas\"><span class=\"card-cell-label\">Reikalavimas</span>Neprivaloma</td><td data-cell-label=\"Reikšmės ir ribos\"><span class=\"card-cell-label\">Reikšmės ir ribos</span><div>auto, small, medium, large</div><div>Sąlygos: Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad q2 modeliams jis neturi poveikio.</div></td><td data-cell-label=\"Numatyta\" data-default=\"known\"><span class=\"card-cell-label\">Numatyta</span>auto</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Įvesties medžiagos deriniai</summary><p class=\"note-s\"><b></b></p></details><details class=\"note-s\" data-method-contract><summary>Metodo parametrai ir gyvavimo ciklas</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametras</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>content_type</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>application/json</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>model, prompt</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>optional</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>duration, seed, aspect_ratio, resolution, style, movement_amplitude</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>additional_properties</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>true</td></tr><tr><th data-cell-label=\"Parametras\" scope=\"row\"><span class=\"card-cell-label\">Parametras</span><code>validation_scope</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>Ailoot tikrina, ar model/prompt eilutės netuščios. Toliau pateikti neprivalomų laukų tipai ir ribos sudaro dokumentuotą užklausos sutartį; kiti užklausos laukai išsaugomi pasirinktam modeliui.</td></tr></tbody></table></div><p>Metodo pseudonimai: <code>/v1/videos/generations</code></p><p>Gyvavimo ciklas: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Sukurkite vieną kartą ir išsaugokite grąžintus viešuosius id bei polling_url.</p><p class=\"note-s\">Periodiškai tikrinkite pradinę operaciją ir skaitykite state; užbaigimą patvirtina success ir jums priklausantis creations[].url rezultatas.</p><p class=\"note-s\">Atsisiųskite vaizdo įrašą iš kiekvieno grąžinto jums priklausančio URL; pagal pavyzdį nespręskite apie fiksuotą rezultatų skaičių, trukmę ar kadrų dažnį.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Planai</h3><div class=\"card-result-process\" data-billing-basis><h5>Kaip apskaičiuojamas galutinis mokestis</h5><p class=\"note-s\">Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.</p><dl data-price-conditions><dt>Spartusis režimas</dt><dd>Nenurodyta <span class=\"note-s\">Pasirinkus spartųjį režimą</span></dd><dt>Flex režimas</dt><dd>Nenurodyta <span class=\"note-s\">Pasirinkus flex režimą</span></dd><dt>Didžiausios samprotavimo pastangos</dt><dd>Nenurodyta <span class=\"note-s\">Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Numatomi įkainiai palyginimui</h4><h4>Kainos pagal konfigūraciją</h4><p class=\"note-s\">Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigūracija</th><th>Įkainių lentelė</th><th>Numatomas kiekis</th><th>Mokestis</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>Baziniai žetonų įkainiai</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>Bazinis įkainis</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>—</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Įvestis · Įvesties tokenai · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Išvestis · Išvesties tokenai · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div><div><span>Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenų</span></div></td></tr><tr><th data-cell-label=\"Konfigūracija\" scope=\"row\"><span class=\"card-cell-label\">Konfigūracija</span>Numatoma generavimo kaina</th><td data-cell-label=\"Įkainių lentelė\"><span class=\"card-cell-label\">Įkainių lentelė</span>—</td><td data-cell-label=\"Numatomas kiekis\"><span class=\"card-cell-label\">Numatomas kiekis</span>vieno generavimo įvertis</td><td data-cell-label=\"Mokestis\"><span class=\"card-cell-label\">Mokestis</span><div><span>Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui</span> <b>$5.12</b> <span class=\"price-unit\">įvertis prieš generavimą</span></div><p class=\"note-s\">Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. <a href=\"/docs/lt/billing/reserve/\">Kaip veikia rezervavimas ir atsiskaitymas →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Užklausų pavyzdžiai</h3><h4>Ailoot Ultra · Vaizdo įrašai</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodo variantai\"><button class=\"cg-tab\" id=\"model-code-2782-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2782-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · sukurkite vaizdo įrašą</button><button class=\"cg-tab\" id=\"model-code-2782-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2782-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · peržiūrėkite pirminę užduotį</button><button class=\"cg-tab\" id=\"model-code-2782-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2782-panel-2\" aria-selected=\"false\" tabindex=\"-1\">curl · atsisiųskite kiekvieną jums priklausantį vaizdo įrašą</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopijuoti kodą\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2782-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2782-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON_REQUEST&#39;\n{&quot;model&quot;:&quot;viduq2&quot;,&quot;prompt&quot;:&quot;In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene.&quot;}\nJSON_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\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2782-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2782-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i:raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use the actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2782-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2782-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nif r.get(&quot;state&quot;)!=&quot;success&quot;:raise SystemExit(&quot;Poll the same original job until its owned result is returned.&quot;)\ncreations=r.get(&quot;creations&quot;)\nif not isinstance(creations,list) or not creations:raise SystemExit(&quot;No completed video creations.&quot;)\nurls=[]\nfor item in creations:\n    value=item.get(&quot;url&quot;) if isinstance(item,dict) else None\n    values=[value] if isinstance(value,str) else value\n    if not isinstance(values,list) or not values:raise SystemExit(&quot;No completed video URL.&quot;)\n    for u in values:\n        if not isinstance(u,str):raise SystemExit(&quot;Invalid returned URL.&quot;)\n        p=urlsplit(u)\n        if p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/media/assets/&quot;) or not p.path.endswith(&quot;/content&quot;) or not p.query:raise SystemExit(&quot;Wait for the actual Ailoot-owned signed result.&quot;)\n        urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; -o &quot;video-${index}.bin&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Gauti ir išsaugoti rezultatus</h3><h4>Ailoot Ultra · Vaizdo įrašai</h4><p class=\"note-s\">JSON išsaugo pirminius state ir creations masyvą, pridėdamas viešus id/provider_task_id/polling_url. Pasirinktų vaizdo įrašų URL prieš paskelbimą yra tušti, o užbaigus tampa Ailoot priklausančiais pasirašytais URL.</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Išsaugoti visus baigtus rezultatus</h5><p class=\"note-s\">Išsaugokite kiekvieną baigtą vaizdo įrašą arba grąžintą failą; gaukite turinį iš kiekvieno faktiškai grąžinto medžiagos URL.</p><p class=\"note-s\">Atsisiųskite kiekvieną tikrą grąžintą URL iš creations[].url; turinio indeksas nurodo vieną tikrą grąžintą rezultatą.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jei reikia patikrinti pradinį atsakymą</h5><p class=\"note-s\">Užfiksuotoje deklaracijoje neišvardyta nė viena galutinė nesėkmės būsena. Išsaugokite pradinį atsakymą, antraštes ir id; gavę bet kurią neatpažintą būseną arba result_pending_check klaidą, tikrinkite tą pačią operaciją; niekada neteikite kūrimo užklausos pakartotinai, kai jos baigtis nežinoma.</p></div><details class=\"card-about\" data-output-fields><summary>Atsakymo laukai</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Laukas</th><th>Tipas</th><th>Reikšmė</th></tr></thead><tbody><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžintas viešas Ailoot užduoties arba operacijos identifikatorius.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Pradinės užduoties identifikatorius, atskiras nuo viešo id.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžintas Ailoot pradinės užduoties duomenų paieškos kelias.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Kūrimo atsakyme esantis pradinis identifikatorius.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Savojo formato užduoties būsena: created reiškia užfiksuotą laukimo būseną, o success – užbaigimą.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">err_code</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Užduoties diagnostikos duomenys; išsaugotoje specifikacijoje neišvardytas klaidų kodų sąrašas.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">creations[].url</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>string|string[]</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Kiekvienas pasirinktas užbaigto vaizdo įrašo URL pakeičiamas Ailoot priklausančiu pasirašytu URL.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">creations[].video.duration</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>number when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžinta vaizdo įrašo trukmė; patikrinkite tikrą užbaigtą rezultatą.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">creations[].video.fps</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>integer when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžintas kadrų dažnis; fiksuotas kadrų dažnis nežadamas.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">creations[].video.resolution.width</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>integer when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžintas išvesties plotis pikseliais.</td></tr><tr><th data-cell-label=\"Laukas\" scope=\"row\"><span class=\"card-cell-label\">Laukas</span><code class=\"card-field-name\">creations[].video.resolution.height</code></th><td data-cell-label=\"Tipas\" data-field-type><span class=\"card-cell-label\">Tipas</span>integer when supplied</td><td data-cell-label=\"Reikšmė\"><span class=\"card-cell-label\">Reikšmė</span>Grąžintas išvesties aukštis pikseliais.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Klaidos ir tolesni veiksmai</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Atsakymas</th><th>Sąlyga</th><th>Kitas žingsnis</th></tr></thead><tbody><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Netinkamas JSON/model, trūkstamos arba tuščios privalomos eilutės, arba netinkamas turinio indeksas.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Negaliojantis Ailoot API raktas.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>403 · <code>permission_error</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>API rakto grupei nesuteikta prieiga prie šio medijos maršruto.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Pradinės užduoties arba pageidaujamo rezultato nėra, arba jis nepriklauso tam pačiam naudotojui, API raktui ir grupei.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>502 · <code>result_pending_check</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Pradinio pateikimo ar būsenos duomenys yra neišsamūs arba jų nepavyksta suderinti; išsaugokite pradinį ID ir neteikite užklausos pakartotinai.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Pradinis susiejimas, maršrutas arba jums priklausanti medija vis dar tikrinami; tęskite tos pradinės operacijos tikrinimą.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr><tr><th data-cell-label=\"Atsakymas\" scope=\"row\"><span class=\"card-cell-label\">Atsakymas</span>503 · <code>server_error</code></th><td data-cell-label=\"Sąlyga\"><span class=\"card-cell-label\">Sąlyga</span>Medijos paslauga arba pradinių užduočių saugykla nepasiekiama.</td><td data-cell-label=\"Kitas žingsnis\"><span class=\"card-cell-label\">Kitas žingsnis</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Pseudonimai</h3><h4>Modelių pseudonimai</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=viduq2&amp;route=Ultra&amp;caller=viduq2&amp;fmt=videos\"><code>viduq2</code></a></span></p><h4>Metodų kelių pseudonimai</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Susiję ID iškvietimui</h4><p class=\"note-s\"><a href=\"#m=viduq2&amp;route=Ultra&amp;caller=viduq2&amp;fmt=videos\"><code>viduq2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "viduq2",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "viduq2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|viduq2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "Netinkamas JSON/model, trūkstamos arba tuščios privalomos eilutės, arba netinkamas turinio indeksas.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Negaliojantis Ailoot API raktas.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "API rakto grupei nesuteikta prieiga prie šio medijos maršruto.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "Pradinės užduoties arba pageidaujamo rezultato nėra, arba jis nepriklauso tam pačiam naudotojui, API raktui ir grupei.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Pradinio pateikimo ar būsenos duomenys yra neišsamūs arba jų nepavyksta suderinti; išsaugokite pradinį ID ir neteikite užklausos pakartotinai.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Pradinis susiejimas, maršrutas arba jums priklausanti medija vis dar tikrinami; tęskite tos pradinės operacijos tikrinimą.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "Medijos paslauga arba pradinių užduočių saugykla nepasiekiama.",
                "http_status": 503,
                "type": "server_error"
              }
            ],
            "ignored_fields": [
              "style",
              "movement_amplitude"
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "success"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [],
              "id_source": "Use the actual returned public id or X-Ailoot-Task-Id and polling_url. Keep task_id/provider_task_id separate; status lookup can retain the original task identity when the native fetch omits it.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "created"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "state_field": "state",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Užfiksuotoje deklaracijoje neišvardyta nė viena galutinė nesėkmės būsena. Išsaugokite pradinį atsakymą, antraštes ir id; gavę bet kurią neatpažintą būseną arba result_pending_check klaidą, tikrinkite tą pačią operaciją; niekada neteikite kūrimo užklausos pakartotinai, kai jos baigtis nežinoma.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ]
            ],
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "additional_media_boundary": "Only creations[].url is selected for owned video delivery. No owned cover-image or callback result flow is established.",
              "all_results": "Atsisiųskite kiekvieną tikrą grąžintą URL iš creations[].url; turinio indeksas nurodo vieną tikrą grąžintą rezultatą.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Grąžintas viešas Ailoot užduoties arba operacijos identifikatorius.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Pradinės užduoties identifikatorius, atskiras nuo viešo id.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Grąžintas Ailoot pradinės užduoties duomenų paieškos kelias.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Kūrimo atsakyme esantis pradinis identifikatorius.",
                  "name": "task_id",
                  "type": "string when supplied"
                },
                {
                  "description": "Savojo formato užduoties būsena: created reiškia užfiksuotą laukimo būseną, o success – užbaigimą.",
                  "name": "state",
                  "type": "string when supplied"
                },
                {
                  "description": "Užduoties diagnostikos duomenys; išsaugotoje specifikacijoje neišvardytas klaidų kodų sąrašas.",
                  "name": "err_code",
                  "type": "string when supplied"
                },
                {
                  "description": "Kiekvienas pasirinktas užbaigto vaizdo įrašo URL pakeičiamas Ailoot priklausančiu pasirašytu URL.",
                  "name": "creations[].url",
                  "type": "string|string[]"
                },
                {
                  "description": "Grąžinta vaizdo įrašo trukmė; patikrinkite tikrą užbaigtą rezultatą.",
                  "name": "creations[].video.duration",
                  "type": "number when supplied"
                },
                {
                  "description": "Grąžintas kadrų dažnis; fiksuotas kadrų dažnis nežadamas.",
                  "name": "creations[].video.fps",
                  "type": "integer when supplied"
                },
                {
                  "description": "Grąžintas išvesties plotis pikseliais.",
                  "name": "creations[].video.resolution.width",
                  "type": "integer when supplied"
                },
                {
                  "description": "Grąžintas išvesties aukštis pikseliais.",
                  "name": "creations[].video.resolution.height",
                  "type": "integer when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Selected video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON išsaugo pirminius state ir creations masyvą, pridėdamas viešus id/provider_task_id/polling_url. Pasirinktų vaizdo įrašų URL prieš paskelbimą yra tušti, o užbaigus tampa Ailoot priklausančiais pasirašytais URL."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "viduq2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Aprašykite generuojamą sceną. Dokumentacijoje nurodyta riba yra 2000 simbolių; Ailoot tikrina, ar eilutė netuščia, ir išsaugo tekstą.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 2000,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Konkretaus viduq2 modelio apraše nurodyta 1–10 sveikų sekundžių. Dokumentacijoje nepateikta šio modelio numatytoji trukmė.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 10,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "sekundės"
              },
              {
                "availability": "source_interface",
                "conditions": "Jei norite atsitiktinumo, praleiskite arba siųskite eilutę \"0\". Pateikta nenulinė seed reikšmė parenka dokumentacijoje aprašytą fiksuotos seed reikšmės veikimą; skaitinis intervalas nenurodytas.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "seed",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "16:9",
                "default_known": true,
                "enum": [
                  "16:9",
                  "9:16",
                  "3:4",
                  "4:3",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Konkretaus viduq2 modelio sąraše šios pakopos dokumentuotos 1–10 sekundžių trukmei. Bendrame išvardijimo tipe ir lentelėje taip pat minima 360p; jos taikymas prieštarauja tam sąrašui ir čia netvirtinamas.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad viduq2 jis neturi poveikio.",
                "default": "general",
                "default_known": true,
                "enum": [
                  "general",
                  "anime"
                ],
                "enum_known": true,
                "name": "style",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad q2 modeliams jis neturi poveikio.",
                "default": "auto",
                "default_known": true,
                "enum": [
                  "auto",
                  "small",
                  "medium",
                  "large"
                ],
                "enum_known": true,
                "name": "movement_amplitude",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Literal viduq2 model with the documented Ailoot videos interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "default": "16:9",
                  "enum": [
                    "16:9",
                    "9:16",
                    "3:4",
                    "4:3",
                    "1:1"
                  ],
                  "type": "string"
                },
                "duration": {
                  "maximum": 10,
                  "minimum": 1,
                  "type": "integer"
                },
                "model": {
                  "const": "viduq2",
                  "minLength": 1,
                  "type": "string"
                },
                "movement_amplitude": {
                  "default": "auto",
                  "enum": [
                    "auto",
                    "small",
                    "medium",
                    "large"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 2000,
                  "minLength": 1,
                  "type": "string"
                },
                "resolution": {
                  "default": "720p",
                  "enum": [
                    "540p",
                    "720p",
                    "1080p"
                  ],
                  "type": "string"
                },
                "seed": {
                  "type": "string"
                },
                "style": {
                  "default": "general",
                  "enum": [
                    "general",
                    "anime"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "The shared enum and table mention 360p, while the model-specific viduq2 resolution description lists 540p/720p/1080p. The method asserts only the explicit model-specific list.",
              "The shared duration example uses a quoted string despite an integer schema. The copyable viduq2 example omits that optional field; an explicit duration follows the documented integer type.",
              "No model-specific default duration, maximum output count, generated-file retention period, cancellation endpoint or terminal failure-state list is established by these saved documents.",
              "The documented fetch uses an id path parameter; the pinned declaration names that same substituted value task_id. The fetch example has no task_id field, which the current client accepts only by retaining the original task identity."
            ],
            "unsupported": [
              "Image-guided input, video editing and extension are not part of this text-to-video method.",
              "The audio and off_peak parameters are documented only for other model selectors, not viduq2.",
              "No live streaming, callback completion or owned cover-image result contract is established here."
            ]
          },
          "hints": [
            "Sukurkite vieną kartą ir išsaugokite grąžintus viešuosius id bei polling_url.",
            "Periodiškai tikrinkite pradinę operaciją ir skaitykite state; užbaigimą patvirtina success ir jums priklausantis creations[].url rezultatas.",
            "Atsisiųskite vaizdo įrašą iš kiekvieno grąžinto jums priklausančio URL; pagal pavyzdį nespręskite apie fiksuotą rezultatų skaičių, trukmę ar kadrų dažnį."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "duration",
              "seed",
              "aspect_ratio",
              "resolution",
              "style",
              "movement_amplitude"
            ],
            "required": [
              "model",
              "prompt"
            ],
            "validation_scope": "Ailoot tikrina, ar model/prompt eilutės netuščios. Toliau pateikti neprivalomų laukų tipai ir ribos sudaro dokumentuotą užklausos sutartį; kiti užklausos laukai išsaugomi pasirinktam modeliui."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "success"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [],
            "id_source": "Use the actual returned public id or X-Ailoot-Task-Id and polling_url. Keep task_id/provider_task_id separate; status lookup can retain the original task identity when the native fetch omits it.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "created"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "state_field": "state",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "The pinned declaration enumerates no terminal failure state. Preserve original response/headers/id and check that same operation for any unrecognized state or result_pending_check error; never resubmit an unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "additional_media_boundary": "Only creations[].url is selected for owned video delivery. No owned cover-image or callback result flow is established.",
            "all_results": "Download every actual returned URL in creations[].url; a content index identifies one real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": "Returned public Ailoot task or operation identifier.",
                "name": "id",
                "type": "string"
              },
              {
                "description": "Original task identifier, separate from the public id.",
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": "Returned Ailoot lookup path for the original task.",
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": "Original identifier present in the creation response.",
                "name": "task_id",
                "type": "string when supplied"
              },
              {
                "description": "Native task state: created for the pinned pending state and success for completion.",
                "name": "state",
                "type": "string when supplied"
              },
              {
                "description": "Task diagnostic; the saved specification declares no enumerated error-code list.",
                "name": "err_code",
                "type": "string when supplied"
              },
              {
                "description": "Every selected completed video URL is replaced with an Ailoot-owned signed URL.",
                "name": "creations[].url",
                "type": "string|string[]"
              },
              {
                "description": "Returned video duration; inspect the actual completed result.",
                "name": "creations[].video.duration",
                "type": "number when supplied"
              },
              {
                "description": "Returned frame rate; no fixed frame rate is promised.",
                "name": "creations[].video.fps",
                "type": "integer when supplied"
              },
              {
                "description": "Returned output width in pixels.",
                "name": "creations[].video.resolution.width",
                "type": "integer when supplied"
              },
              {
                "description": "Returned output height in pixels.",
                "name": "creations[].video.resolution.height",
                "type": "integer when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Selected video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "JSON retains the native state and creations array, with public id/provider_task_id/polling_url added. Selected video URLs are blank before publication and become Ailoot-owned signed URLs after completion."
          }
        },
        "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": "Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Numatoma generavimo kaina",
            "units": [
              {
                "amount": "5.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "5.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"viduq2\",\"prompt\":\"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene.\"}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i:raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use the actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"state\")!=\"success\":raise SystemExit(\"Poll the same original job until its owned result is returned.\")\ncreations=r.get(\"creations\")\nif not isinstance(creations,list) or not creations:raise SystemExit(\"No completed video creations.\")\nurls=[]\nfor item in creations:\n    value=item.get(\"url\") if isinstance(item,dict) else None\n    values=[value] if isinstance(value,str) else value\n    if not isinstance(values,list) or not values:raise SystemExit(\"No completed video URL.\")\n    for u in values:\n        if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n        p=urlsplit(u)\n        if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for the actual Ailoot-owned signed result.\")\n        urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download every owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain the returned public id and polling_url.",
          "Poll the original operation and read state; success and an owned creations[].url result are the completion boundary.",
          "Download every returned owned video URL; do not infer a fixed output count, duration or frame rate from the example."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Vaizdo įrašai",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "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": "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": "5.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "5.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "viduq2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_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": "5.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "5.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "viduq2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b2b5756b18bc610091e1accf331031a0577297276ca1369536fb47bbd2068c2f",
    "input_html_sha256": "ef57713eab60a13c7b3b8ffe8c08f1a5765b35383d654f8e118a2070b248863b",
    "private_audit_sha256": "52feb488a85f41dfadf7a7213561e4af69e8dd75cebf8bbf50061005ce593f65",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/lt/viduq2/",
    "description": "Vidu Q2 kuria vaizdo įrašą pagal tekstinį scenos aprašą; trukmė – 1–10 sekundžių, išvesties raiška – 540p, 720p arba 1080p, galimi penki kraštinių santykiai. Šis konkretus viduq2 profilis stilių ir judėjimą nustato pagal užklausos tekstą, o rezultatą grąžina per asinchroninę užduotį.",
    "locale": "lt",
    "md_url": "https://ailoot.ai/models/lt/viduq2/index.md",
    "title": "Vidu: Q2 Text-to-Video — Ailoot",
    "url": "https://ailoot.ai/models/lt/viduq2/"
  },
  "rawModel": {
    "about": "Vidu Q2 kuria vaizdo įrašą pagal rašytinę sceną, naudodamas viduq2 parenkamą vaizdo generavimo iš teksto profilį. Privalomos įvestys – tikslus modelio identifikatorius ir sceną aprašantis užklausos tekstas. Naudokite jį trumpai gaminio idėjai, bendram vietovės planui ar veikėjo veiksmui, kurio išvaizdą ir judėjimą galima nusakyti žodžiais. Šis sukonfigūruotas metodas generuoja vaizdo įrašą iš teksto; jo apraše identifikatoriui nepriskiriamas atskiras atskaitos vaizdo ar vaizdo redagavimo režimas.\n\nAprašą grįskite matoma seka. Nurodykite objektą, vietą, veiksmą, plano stambumą, kameros judėjimą ir galutinę kompoziciją. Gaminio idėjai aprašykite ant stalo esantį objektą, jo medžiagos paviršiumi slenkančią šviesą ir lėtą kameros artėjimą, kuris baigiasi ties atpažįstama detale. Vietovės scenoje prieš artėdami prie akcento parodykite aplinką. Veiksmą pritaikykite pasirinktai klipo trukmei, kad scenai pakaktų laiko numatytai pabaigai.\n\nUžklausos teksto riba – 2 000 simbolių. Pirmiausia nurodykite esminį objektą ir veiksmą, tada pridėkite norimą rezultatą keičiančias apšvietimo, medžiagos, aplinkos ir kameros detales. Vaizdinį stilių nurodykite užklausos tekste. Q2 skirtame vadove teigiama, kad atskiri style ir movement_amplitude parametrai šiam modeliui neturi poveikio, todėl general arba anime parinktys ir judėjimo amplitudės parinktys nepakeičia aiškaus scenos aprašo.\n\nKonkretaus modelio trukmės nuostata priima sveikas sekundes nuo vienos iki dešimties. Q2 raiškos pasirinktys yra 540p, 720p ir 1080p, o dokumentuota numatytoji reikšmė – 720p. Trukmę ir raišką rinkitės kartu pagal veiksmą bei paskirtį. Trumpam atskleidimui ir ilgesniam judėjimui reikia skirtingo laiko; ilgesnė prašoma trukmė turi būti naudinga matomai sekai, o ne vien ištempti nepakeistą aprašą. Ruošdami galutinį pateikimą patikrinkite tikrus grąžinto klipo matmenis ir trukmę.\n\nDokumentuotos aspect_ratio parinktys yra 16:9, 9:16, 3:4, 4:3 ir 1:1, o numatytoji – 16:9. Vadove Q2 šeimai aiškiai įtraukti 3:4 ir 4:3. Prieš generuodami pasirinkite kadravimą ir aprašykite jam tinkamą kompoziciją: vertikaliame vaizde pagrindinis objektas turi būti aiškiai matomas, o horizontalaus kadro plotį galima skirti aplinkai. Baigiamasis vaizdas turi likti pakankamai aiškus numatytam puslapiui, pristatymui ar vėliau pridedamiems užrašams.\n\nSeed laukas valdo variaciją. Jo nepateikus arba pateikus 0 parenkama atsitiktinė reikšmė; nenulinė reikšmė parenka dokumentuotą fiksuoto seed parinktį pakartojamam generavimui. Lygindami versijas išsaugokite grąžintą seed kartu su užklausos tekstu ir nuostatomis. Bendra operacija taip pat dokumentuoja audio ir off_peak valdiklius būtent Q3 modeliams. Šios Q3 parinktys nėra šiam Q2 profiliui priskirtos galimybės; užklausą planuokite pagal dokumentuotą tekstinę įvestį ir vaizdo išvestį.\n\nGeneravimas yra asinchroninis. Pateikus užklausą grąžinamas task_id ir pradinė būsena; naujai sukurtai užduočiai naudojama created. Sekdami apdorojimą išsaugokite šį užduoties identifikatorių. Dokumentuota rezultato užklausa sėkmingam rezultatui naudoja state=success ir grąžina creations masyvą. Kiekvieno elemento vaizdo URL yra creations[].url; išsaugokite kiekvieną grąžintą vaizdo įrašą, užuot manę, kad užduotis visada turi tik vieną kūrinį.\n\nRezultato dokumentacijoje taip pat pateikiama tikro vaizdo įrašo trukmė, fps ir raiškos plotis bei aukštis. Išsaugokite šias pateiktas reikšmes kartu su užbaigtu klipu, užuot pavyzdžio kadrų dažnį ar matmenis laikę fiksuota Q2 specifikacija. Užduoties sukūrimo atsakyme kartu su užklausos konfigūracija pateikiama credits reikšmė. Išsaugokite šiuos pateiktus užduoties metaduomenis ir užbaigtos užduoties identifikatorių kartu su rezultatu, kad kiekvienas vaizdo įrašas liktų susietas su jo generavimo nuostatomis.\n\nPeržiūrėkite visą seką pagal pradinį aprašą: objekto išvaizdą, formą, judėjimo kryptį, kameros tęstinumą ir numatytą galutinį vaizdą. Taisydami nurodykite konkrečią aprašo neatitikusią detalę ir išlaikykite pavykusias scenos dalis. Užklausos tekstą, tikslų identifikatorių, nuostatas, užduoties identifikatorių ir užbaigtus vaizdo įrašus laikykite kartu, kad vėlesnis palyginimas būtų grindžiamas tikrais rezultatais.",
    "alias_of": null,
    "aliases": [],
    "author": "Vidu",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "5.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "5.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Visa konfigūracijos kainodara pateikta išsamioje informacijoje."
      }
    ],
    "ctx": null,
    "display_name": "Vidu: Q2 Text-to-Video",
    "formats": [
      "videos"
    ],
    "id": "viduq2",
    "input": [
      "text"
    ],
    "kind": "video",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "Netinkamas JSON/model, trūkstamos arba tuščios privalomos eilutės, arba netinkamas turinio indeksas.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Negaliojantis Ailoot API raktas.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "API rakto grupei nesuteikta prieiga prie šio medijos maršruto.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "Pradinės užduoties arba pageidaujamo rezultato nėra, arba jis nepriklauso tam pačiam naudotojui, API raktui ir grupei.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Pradinio pateikimo ar būsenos duomenys yra neišsamūs arba jų nepavyksta suderinti; išsaugokite pradinį ID ir neteikite užklausos pakartotinai.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Pradinis susiejimas, maršrutas arba jums priklausanti medija vis dar tikrinami; tęskite tos pradinės operacijos tikrinimą.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "Medijos paslauga arba pradinių užduočių saugykla nepasiekiama.",
                "http_status": 503,
                "type": "server_error"
              }
            ],
            "ignored_fields": [
              "style",
              "movement_amplitude"
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "success"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [],
              "id_source": "Use the actual returned public id or X-Ailoot-Task-Id and polling_url. Keep task_id/provider_task_id separate; status lookup can retain the original task identity when the native fetch omits it.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "created"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "state_field": "state",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Užfiksuotoje deklaracijoje neišvardyta nė viena galutinė nesėkmės būsena. Išsaugokite pradinį atsakymą, antraštes ir id; gavę bet kurią neatpažintą būseną arba result_pending_check klaidą, tikrinkite tą pačią operaciją; niekada neteikite kūrimo užklausos pakartotinai, kai jos baigtis nežinoma.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ]
            ],
            "operation_modes": [
              "text_to_video"
            ],
            "outputs": {
              "additional_media_boundary": "Only creations[].url is selected for owned video delivery. No owned cover-image or callback result flow is established.",
              "all_results": "Atsisiųskite kiekvieną tikrą grąžintą URL iš creations[].url; turinio indeksas nurodo vieną tikrą grąžintą rezultatą.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Grąžintas viešas Ailoot užduoties arba operacijos identifikatorius.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Pradinės užduoties identifikatorius, atskiras nuo viešo id.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Grąžintas Ailoot pradinės užduoties duomenų paieškos kelias.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Kūrimo atsakyme esantis pradinis identifikatorius.",
                  "name": "task_id",
                  "type": "string when supplied"
                },
                {
                  "description": "Savojo formato užduoties būsena: created reiškia užfiksuotą laukimo būseną, o success – užbaigimą.",
                  "name": "state",
                  "type": "string when supplied"
                },
                {
                  "description": "Užduoties diagnostikos duomenys; išsaugotoje specifikacijoje neišvardytas klaidų kodų sąrašas.",
                  "name": "err_code",
                  "type": "string when supplied"
                },
                {
                  "description": "Kiekvienas pasirinktas užbaigto vaizdo įrašo URL pakeičiamas Ailoot priklausančiu pasirašytu URL.",
                  "name": "creations[].url",
                  "type": "string|string[]"
                },
                {
                  "description": "Grąžinta vaizdo įrašo trukmė; patikrinkite tikrą užbaigtą rezultatą.",
                  "name": "creations[].video.duration",
                  "type": "number when supplied"
                },
                {
                  "description": "Grąžintas kadrų dažnis; fiksuotas kadrų dažnis nežadamas.",
                  "name": "creations[].video.fps",
                  "type": "integer when supplied"
                },
                {
                  "description": "Grąžintas išvesties plotis pikseliais.",
                  "name": "creations[].video.resolution.width",
                  "type": "integer when supplied"
                },
                {
                  "description": "Grąžintas išvesties aukštis pikseliais.",
                  "name": "creations[].video.resolution.height",
                  "type": "integer when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Selected video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON išsaugo pirminius state ir creations masyvą, pridėdamas viešus id/provider_task_id/polling_url. Pasirinktų vaizdo įrašų URL prieš paskelbimą yra tušti, o užbaigus tampa Ailoot priklausančiais pasirašytais URL."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "viduq2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Aprašykite generuojamą sceną. Dokumentacijoje nurodyta riba yra 2000 simbolių; Ailoot tikrina, ar eilutė netuščia, ir išsaugo tekstą.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 2000,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Konkretaus viduq2 modelio apraše nurodyta 1–10 sveikų sekundžių. Dokumentacijoje nepateikta šio modelio numatytoji trukmė.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 10,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "sekundės"
              },
              {
                "availability": "source_interface",
                "conditions": "Jei norite atsitiktinumo, praleiskite arba siųskite eilutę \"0\". Pateikta nenulinė seed reikšmė parenka dokumentacijoje aprašytą fiksuotos seed reikšmės veikimą; skaitinis intervalas nenurodytas.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "seed",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "16:9",
                "default_known": true,
                "enum": [
                  "16:9",
                  "9:16",
                  "3:4",
                  "4:3",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Konkretaus viduq2 modelio sąraše šios pakopos dokumentuotos 1–10 sekundžių trukmei. Bendrame išvardijimo tipe ir lentelėje taip pat minima 360p; jos taikymas prieštarauja tam sąrašui ir čia netvirtinamas.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad viduq2 jis neturi poveikio.",
                "default": "general",
                "default_known": true,
                "enum": [
                  "general",
                  "anime"
                ],
                "enum_known": true,
                "name": "style",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bendra užklausos struktūra priima šį lauką, tačiau dokumentacijoje aiškiai nurodyta, kad q2 modeliams jis neturi poveikio.",
                "default": "auto",
                "default_known": true,
                "enum": [
                  "auto",
                  "small",
                  "medium",
                  "large"
                ],
                "enum_known": true,
                "name": "movement_amplitude",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Literal viduq2 model with the documented Ailoot videos interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "aspect_ratio": {
                  "default": "16:9",
                  "enum": [
                    "16:9",
                    "9:16",
                    "3:4",
                    "4:3",
                    "1:1"
                  ],
                  "type": "string"
                },
                "duration": {
                  "maximum": 10,
                  "minimum": 1,
                  "type": "integer"
                },
                "model": {
                  "const": "viduq2",
                  "minLength": 1,
                  "type": "string"
                },
                "movement_amplitude": {
                  "default": "auto",
                  "enum": [
                    "auto",
                    "small",
                    "medium",
                    "large"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "maxLength": 2000,
                  "minLength": 1,
                  "type": "string"
                },
                "resolution": {
                  "default": "720p",
                  "enum": [
                    "540p",
                    "720p",
                    "1080p"
                  ],
                  "type": "string"
                },
                "seed": {
                  "type": "string"
                },
                "style": {
                  "default": "general",
                  "enum": [
                    "general",
                    "anime"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "The shared enum and table mention 360p, while the model-specific viduq2 resolution description lists 540p/720p/1080p. The method asserts only the explicit model-specific list.",
              "The shared duration example uses a quoted string despite an integer schema. The copyable viduq2 example omits that optional field; an explicit duration follows the documented integer type.",
              "No model-specific default duration, maximum output count, generated-file retention period, cancellation endpoint or terminal failure-state list is established by these saved documents.",
              "The documented fetch uses an id path parameter; the pinned declaration names that same substituted value task_id. The fetch example has no task_id field, which the current client accepts only by retaining the original task identity."
            ],
            "unsupported": [
              "Image-guided input, video editing and extension are not part of this text-to-video method.",
              "The audio and off_peak parameters are documented only for other model selectors, not viduq2.",
              "No live streaming, callback completion or owned cover-image result contract is established here."
            ]
          },
          "hints": [
            "Sukurkite vieną kartą ir išsaugokite grąžintus viešuosius id bei polling_url.",
            "Periodiškai tikrinkite pradinę operaciją ir skaitykite state; užbaigimą patvirtina success ir jums priklausantis creations[].url rezultatas.",
            "Atsisiųskite vaizdo įrašą iš kiekvieno grąžinto jums priklausančio URL; pagal pavyzdį nespręskite apie fiksuotą rezultatų skaičių, trukmę ar kadrų dažnį."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "duration",
              "seed",
              "aspect_ratio",
              "resolution",
              "style",
              "movement_amplitude"
            ],
            "required": [
              "model",
              "prompt"
            ],
            "validation_scope": "Ailoot tikrina, ar model/prompt eilutės netuščios. Toliau pateikti neprivalomų laukų tipai ir ribos sudaro dokumentuotą užklausos sutartį; kiti užklausos laukai išsaugomi pasirinktam modeliui."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "success"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [],
            "id_source": "Use the actual returned public id or X-Ailoot-Task-Id and polling_url. Keep task_id/provider_task_id separate; status lookup can retain the original task identity when the native fetch omits it.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "created"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "state_field": "state",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "The pinned declaration enumerates no terminal failure state. Preserve original response/headers/id and check that same operation for any unrecognized state or result_pending_check error; never resubmit an unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video"
          ],
          "output": {
            "additional_media_boundary": "Only creations[].url is selected for owned video delivery. No owned cover-image or callback result flow is established.",
            "all_results": "Download every actual returned URL in creations[].url; a content index identifies one real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": "Returned public Ailoot task or operation identifier.",
                "name": "id",
                "type": "string"
              },
              {
                "description": "Original task identifier, separate from the public id.",
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": "Returned Ailoot lookup path for the original task.",
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": "Original identifier present in the creation response.",
                "name": "task_id",
                "type": "string when supplied"
              },
              {
                "description": "Native task state: created for the pinned pending state and success for completion.",
                "name": "state",
                "type": "string when supplied"
              },
              {
                "description": "Task diagnostic; the saved specification declares no enumerated error-code list.",
                "name": "err_code",
                "type": "string when supplied"
              },
              {
                "description": "Every selected completed video URL is replaced with an Ailoot-owned signed URL.",
                "name": "creations[].url",
                "type": "string|string[]"
              },
              {
                "description": "Returned video duration; inspect the actual completed result.",
                "name": "creations[].video.duration",
                "type": "number when supplied"
              },
              {
                "description": "Returned frame rate; no fixed frame rate is promised.",
                "name": "creations[].video.fps",
                "type": "integer when supplied"
              },
              {
                "description": "Returned output width in pixels.",
                "name": "creations[].video.resolution.width",
                "type": "integer when supplied"
              },
              {
                "description": "Returned output height in pixels.",
                "name": "creations[].video.resolution.height",
                "type": "integer when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Selected video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "JSON retains the native state and creations array, with public id/provider_task_id/polling_url added. Selected video URLs are blank before publication and become Ailoot-owned signed URLs after completion."
          }
        },
        "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": "Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Numatoma generavimo kaina",
            "units": [
              {
                "amount": "5.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "5.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"viduq2\",\"prompt\":\"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene.\"}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i:raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use the actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"state\")!=\"success\":raise SystemExit(\"Poll the same original job until its owned result is returned.\")\ncreations=r.get(\"creations\")\nif not isinstance(creations,list) or not creations:raise SystemExit(\"No completed video creations.\")\nurls=[]\nfor item in creations:\n    value=item.get(\"url\") if isinstance(item,dict) else None\n    values=[value] if isinstance(value,str) else value\n    if not isinstance(values,list) or not values:raise SystemExit(\"No completed video URL.\")\n    for u in values:\n        if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n        p=urlsplit(u)\n        if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for the actual Ailoot-owned signed result.\")\n        urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download every owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain the returned public id and polling_url.",
          "Poll the original operation and read state; success and an owned creations[].url result are the completion boundary.",
          "Download every returned owned video URL; do not infer a fixed output count, duration or frame rate from the example."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Vaizdo įrašai",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "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": "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": "5.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "5.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "viduq2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_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": "5.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "5.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "viduq2",
        "request_model_id": "viduq2",
        "route_label": "Ultra"
      }
    ],
    "name": "Vidu: Q2 Text-to-Video",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 5.12,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 5.12,
      "varies": false
    },
    "short": "Vidu Q2 kuria vaizdo įrašą pagal tekstinį scenos aprašą; trukmė – 1–10 sekundžių, išvesties raiška – 540p, 720p arba 1080p, galimi penki kraštinių santykiai. Šis konkretus viduq2 profilis stilių ir judėjimą nustato pagal užklausos tekstą, o rezultatą grąžina per asinchroninę užduotį."
  },
  "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": "Vidu Q2 kuria vaizdo įrašą pagal tekstinį scenos aprašą; trukmė – 1–10 sekundžių, išvesties raiška – 540p, 720p arba 1080p, galimi penki kraštinių santykiai. Šis konkretus viduq2 profilis stilių ir judėjimą nustato pagal užklausos tekstą, o rezultatą grąžina per asinchroninę užduotį.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "996426169374bab66a7b9af1449251d6b1c78017d37fb9fa79d37388639ebecc",
    "renderer_sha256": "57bd2f8a61f57d341aae369006eca818e3eea645ec43af488ec7b2289eeca772"
  },
  "sourceRevision": "5cefd7dcf88db92957a2cee4fb2a70184b393b5cf57bf6968f90644a35df34eb"
}
