{
  "aboutHtml": "<p>Vidu Q2 viduq2 арқылы таңдалатын мәтіннен бейне жасау профилімен жазбаша көріністен бейне жасайды. Міндетті кірістері — модельдің дәл идентификаторы және көріністі сипаттайтын мәтіндік сұрау. Оны сыртқы түрі мен қозғалысын сөзбен белгілеуге болатын қысқа тауар тұжырымына, орынның жалпы көрінісіне немесе кейіпкер әрекетіне пайдаланыңыз. Бұл бапталған әдіс мәтіннен бейне жасайды; оның сипаттамасы селекторға бөлек референс кескін немесе бейне өңдеу режимін тағайындамайды.</p><p>Тапсырманы көрінетін реттілікке негіздеңіз. Нысанды, орынды, әрекетті, план ірілігін, камера қозғалысын және соңғы композицияны көрсетіңіз. Тауар тұжырымы үшін үстелдегі затты, оның материалының үстімен жылжыған жарықты және танылатын бөлшекке дейін баяу жақындаған камераны сипаттаңыз. Орын көрінісінде назар нүктесіне жылжымас бұрын ортаны көрсетіңіз. Көріністің көзделген аяқталуына уақыт қалуы үшін әрекетті таңдалған клип ұзақтығына сәйкестендіріңіз.</p><p>Мәтіндік сұраудың шегі — 2 000 таңба. Алдымен негізгі нысан мен әрекетті, содан соң қажетті нәтижені өзгертетін жарық, материал, орта және камера туралы мәліметтерді қосыңыз. Визуалды стильді мәтінде көрсетіңіз. Q2-ге арналған нұсқаулықта бөлек style және movement_amplitude параметрлері бұл модельге әсер етпейтіні айтылған, сондықтан general немесе anime алдын ала баптауы мен қозғалыс амплитудасы опциялары анық көрініс сипаттамасын алмастырмайды.</p><p>Модельге арналған ұзақтық баптауы бірден онға дейінгі бүтін секундтарды қабылдайды. Q2 ажыратымдылық нұсқалары — 540p, 720p және 1080p, құжатталған әдепкісі — 720p. Ұзақтық пен ажыратымдылықты әрекетке және қолданылатын орынға сай бірге таңдаңыз. Қысқа ашып көрсету мен ұзағырақ қозғалысқа әртүрлі уақыт қажет; сұралған ұзақтықты арттыру өзгеріссіз тапсырманы жай созбай, көрінетін реттілікке қызмет етуі керек. Соңғы орналастыруға дайындағанда қайтарылған клиптің нақты өлшемдері мен ұзақтығын тексеріңіз.</p><p>Құжатталған aspect_ratio нұсқалары: 16:9, 9:16, 3:4, 4:3 және 1:1, әдепкісі — 16:9. Нұсқаулық Q2 тобы үшін 3:4 және 4:3 арақатынастарын нақты қамтиды. Генерациядан бұрын кадрды таңдап, соған сай композицияны сипаттаңыз: тік көріністе негізгі нысанды анық сақтаңыз немесе айналадағы ортаны көрсету үшін көлденең кадрдың енін пайдаланыңыз. Қажетті бетке, таныстырылымға немесе кейін жазу қосуға жарайтындай соңғы көріністі айқын қалдырыңыз.</p><p>seed өрісі нұсқалардың өзгеруін басқарады. Оны бермеу немесе 0 беру кездейсоқ мәнді таңдайды; нөлден өзге мән нәтижені қайталап алуға арналған құжатталған бекітілген seed опциясын таңдайды. Нұсқаларды салыстырғанда қайтарылған seed мәнін мәтінмен және баптаулармен бірге сақтаңыз. Ортақ операцияның құжаттамасында audio және off_peak баптаулары да арнайы Q3 модельдері үшін көрсетілген. Бұл Q3 опциялары осы Q2 профиліне тағайындалған мүмкіндіктер емес; сұрауды оның құжатталған мәтін кірісі мен бейне шығысына сүйеніп жоспарлаңыз.</p><p>Генерация асинхронды жүреді. Жіберу task_id және бастапқы күйді қайтарады, жаңа жасалған тапсырма үшін created қолданылады. Өңдеуді қадағалағанда осы тапсырма идентификаторын сақтаңыз. Құжатталған нәтиже сұрауы сәтті нәтиже үшін state=success пайдаланып, creations массивін қайтарады. Әр элементтің бейне URL мекенжайы creations[].url ішінде орналасады; тапсырмада әрдайым дәл бір нәтиже болады деп ойламай, қайтарылған әр бейнені сақтаңыз.</p><p>Нәтиже құжаттамасы нақты бейненің ұзақтығын, fps мәнін, кадрдың ені мен биіктігін де хабарлайды. Мысалдағы кадр жиілігін немесе өлшемдерді тұрақты Q2 сипаттамасы деп қабылдамай, осы хабарланған мәндерді дайын клиппен бірге сақтаңыз. Тапсырма жасау жауабында сұрау конфигурациясымен бірге credits мәні беріледі. Әр бейне өз генерация баптауларымен байланысты қалуы үшін осы хабарланған тапсырма метадеректерін және аяқталған тапсырманың идентификаторын нәтижемен бірге сақтаңыз.</p><p>Бүкіл реттілікті бастапқы тапсырмамен салыстырыңыз: нысанның сыртқы түрін, зат пішінін, қозғалыс бағытын, камера қозғалысының сабақтастығын және көзделген соңғы көріністі тексеріңіз. Түзету үшін тапсырмаға сәйкес келмеген нақты бөлшекті атап, көріністің сәтті бөліктерін сақтаңыз. Кейінгі салыстыру нақты материалдарға негізделуі үшін мәтіндік сұрауды, дәл селекторды, баптауларды, тапсырма идентификаторын және дайын бейнелерді бірге сақтаңыз.</p>",
  "aboutText": "Vidu Q2 viduq2 арқылы таңдалатын мәтіннен бейне жасау профилімен жазбаша көріністен бейне жасайды. Міндетті кірістері — модельдің дәл идентификаторы және көріністі сипаттайтын мәтіндік сұрау. Оны сыртқы түрі мен қозғалысын сөзбен белгілеуге болатын қысқа тауар тұжырымына, орынның жалпы көрінісіне немесе кейіпкер әрекетіне пайдаланыңыз. Бұл бапталған әдіс мәтіннен бейне жасайды; оның сипаттамасы селекторға бөлек референс кескін немесе бейне өңдеу режимін тағайындамайды.\n\nТапсырманы көрінетін реттілікке негіздеңіз. Нысанды, орынды, әрекетті, план ірілігін, камера қозғалысын және соңғы композицияны көрсетіңіз. Тауар тұжырымы үшін үстелдегі затты, оның материалының үстімен жылжыған жарықты және танылатын бөлшекке дейін баяу жақындаған камераны сипаттаңыз. Орын көрінісінде назар нүктесіне жылжымас бұрын ортаны көрсетіңіз. Көріністің көзделген аяқталуына уақыт қалуы үшін әрекетті таңдалған клип ұзақтығына сәйкестендіріңіз.\n\nМәтіндік сұраудың шегі — 2 000 таңба. Алдымен негізгі нысан мен әрекетті, содан соң қажетті нәтижені өзгертетін жарық, материал, орта және камера туралы мәліметтерді қосыңыз. Визуалды стильді мәтінде көрсетіңіз. Q2-ге арналған нұсқаулықта бөлек style және movement_amplitude параметрлері бұл модельге әсер етпейтіні айтылған, сондықтан general немесе anime алдын ала баптауы мен қозғалыс амплитудасы опциялары анық көрініс сипаттамасын алмастырмайды.\n\nМодельге арналған ұзақтық баптауы бірден онға дейінгі бүтін секундтарды қабылдайды. Q2 ажыратымдылық нұсқалары — 540p, 720p және 1080p, құжатталған әдепкісі — 720p. Ұзақтық пен ажыратымдылықты әрекетке және қолданылатын орынға сай бірге таңдаңыз. Қысқа ашып көрсету мен ұзағырақ қозғалысқа әртүрлі уақыт қажет; сұралған ұзақтықты арттыру өзгеріссіз тапсырманы жай созбай, көрінетін реттілікке қызмет етуі керек. Соңғы орналастыруға дайындағанда қайтарылған клиптің нақты өлшемдері мен ұзақтығын тексеріңіз.\n\nҚұжатталған aspect_ratio нұсқалары: 16:9, 9:16, 3:4, 4:3 және 1:1, әдепкісі — 16:9. Нұсқаулық Q2 тобы үшін 3:4 және 4:3 арақатынастарын нақты қамтиды. Генерациядан бұрын кадрды таңдап, соған сай композицияны сипаттаңыз: тік көріністе негізгі нысанды анық сақтаңыз немесе айналадағы ортаны көрсету үшін көлденең кадрдың енін пайдаланыңыз. Қажетті бетке, таныстырылымға немесе кейін жазу қосуға жарайтындай соңғы көріністі айқын қалдырыңыз.\n\nseed өрісі нұсқалардың өзгеруін басқарады. Оны бермеу немесе 0 беру кездейсоқ мәнді таңдайды; нөлден өзге мән нәтижені қайталап алуға арналған құжатталған бекітілген seed опциясын таңдайды. Нұсқаларды салыстырғанда қайтарылған seed мәнін мәтінмен және баптаулармен бірге сақтаңыз. Ортақ операцияның құжаттамасында audio және off_peak баптаулары да арнайы Q3 модельдері үшін көрсетілген. Бұл Q3 опциялары осы Q2 профиліне тағайындалған мүмкіндіктер емес; сұрауды оның құжатталған мәтін кірісі мен бейне шығысына сүйеніп жоспарлаңыз.\n\nГенерация асинхронды жүреді. Жіберу task_id және бастапқы күйді қайтарады, жаңа жасалған тапсырма үшін created қолданылады. Өңдеуді қадағалағанда осы тапсырма идентификаторын сақтаңыз. Құжатталған нәтиже сұрауы сәтті нәтиже үшін state=success пайдаланып, creations массивін қайтарады. Әр элементтің бейне URL мекенжайы creations[].url ішінде орналасады; тапсырмада әрдайым дәл бір нәтиже болады деп ойламай, қайтарылған әр бейнені сақтаңыз.\n\nНәтиже құжаттамасы нақты бейненің ұзақтығын, fps мәнін, кадрдың ені мен биіктігін де хабарлайды. Мысалдағы кадр жиілігін немесе өлшемдерді тұрақты Q2 сипаттамасы деп қабылдамай, осы хабарланған мәндерді дайын клиппен бірге сақтаңыз. Тапсырма жасау жауабында сұрау конфигурациясымен бірге credits мәні беріледі. Әр бейне өз генерация баптауларымен байланысты қалуы үшін осы хабарланған тапсырма метадеректерін және аяқталған тапсырманың идентификаторын нәтижемен бірге сақтаңыз.\n\nБүкіл реттілікті бастапқы тапсырмамен салыстырыңыз: нысанның сыртқы түрін, зат пішінін, қозғалыс бағытын, камера қозғалысының сабақтастығын және көзделген соңғы көріністі тексеріңіз. Түзету үшін тапсырмаға сәйкес келмеген нақты бөлшекті атап, көріністің сәтті бөліктерін сақтаңыз. Кейінгі салыстыру нақты материалдарға негізделуі үшін мәтіндік сұрауды, дәл селекторды, баптауларды, тапсырма идентификаторын және дайын бейнелерді бірге сақтаңыз.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "89f4206e3284d0d617081199f1ae96f9e046825e4a1eb315f74da21c98d7beae",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "kk",
  "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=\"Жабу\">×</button></div><div class=\"idline\"><span>Vidu /</span><code>viduq2</code><button type=\"button\" id=\"copy-id\">ID көшіру</button></div><nav class=\"card-jump-nav\" aria-label=\"Модель карточкасының бөлімдері\"><button type=\"button\" data-card-jump=\"overview\">Бастау</button><button type=\"button\" data-card-jump=\"methods\">Кіріс деректері мен әдістер</button><button type=\"button\" data-card-jump=\"pricing\">Тарифтер</button><button type=\"button\" data-card-jump=\"examples\">Мысалдар</button><button type=\"button\" data-card-jump=\"results\">Нәтижелер</button><button type=\"button\" data-card-jump=\"aliases\">Балама атаулар</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API әдістері\"><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\">Бейне</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\">Бастау</h3><p class=\"mdesc-full\">Vidu Q2 мәтіндік көрініс тапсырмасынан бейне жасайды: ұзақтығы 1–10 секунд, шығыс ажыратымдылығы 540p, 720p немесе 1080p және бес арақатынас қолжетімді. Осы нақты viduq2 профилі стиль мен қозғалыс үшін мәтіндік сұрауды пайдаланып, нәтижені асинхронды тапсырма арқылы қайтарады.</p><dl class=\"card-io\" data-card-io><div><dt>Қабылданатын кіріс деректері</dt><dd>Мәтін</dd></div><div><dt>Нәтижелер</dt><dd>Бейне</dd></div></dl><details class=\"card-about\"><summary>Модель туралы</summary><p class=\"note-s\" data-model-method-boundary>Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.</p><div class=\"mabout\" id=\"m-about\"><p>Vidu Q2 viduq2 арқылы таңдалатын мәтіннен бейне жасау профилімен жазбаша көріністен бейне жасайды. Міндетті кірістері — модельдің дәл идентификаторы және көріністі сипаттайтын мәтіндік сұрау. Оны сыртқы түрі мен қозғалысын сөзбен белгілеуге болатын қысқа тауар тұжырымына, орынның жалпы көрінісіне немесе кейіпкер әрекетіне пайдаланыңыз. Бұл бапталған әдіс мәтіннен бейне жасайды; оның сипаттамасы селекторға бөлек референс кескін немесе бейне өңдеу режимін тағайындамайды.</p><p>Тапсырманы көрінетін реттілікке негіздеңіз. Нысанды, орынды, әрекетті, план ірілігін, камера қозғалысын және соңғы композицияны көрсетіңіз. Тауар тұжырымы үшін үстелдегі затты, оның материалының үстімен жылжыған жарықты және танылатын бөлшекке дейін баяу жақындаған камераны сипаттаңыз. Орын көрінісінде назар нүктесіне жылжымас бұрын ортаны көрсетіңіз. Көріністің көзделген аяқталуына уақыт қалуы үшін әрекетті таңдалған клип ұзақтығына сәйкестендіріңіз.</p><p>Мәтіндік сұраудың шегі — 2 000 таңба. Алдымен негізгі нысан мен әрекетті, содан соң қажетті нәтижені өзгертетін жарық, материал, орта және камера туралы мәліметтерді қосыңыз. Визуалды стильді мәтінде көрсетіңіз. Q2-ге арналған нұсқаулықта бөлек style және movement_amplitude параметрлері бұл модельге әсер етпейтіні айтылған, сондықтан general немесе anime алдын ала баптауы мен қозғалыс амплитудасы опциялары анық көрініс сипаттамасын алмастырмайды.</p><p>Модельге арналған ұзақтық баптауы бірден онға дейінгі бүтін секундтарды қабылдайды. Q2 ажыратымдылық нұсқалары — 540p, 720p және 1080p, құжатталған әдепкісі — 720p. Ұзақтық пен ажыратымдылықты әрекетке және қолданылатын орынға сай бірге таңдаңыз. Қысқа ашып көрсету мен ұзағырақ қозғалысқа әртүрлі уақыт қажет; сұралған ұзақтықты арттыру өзгеріссіз тапсырманы жай созбай, көрінетін реттілікке қызмет етуі керек. Соңғы орналастыруға дайындағанда қайтарылған клиптің нақты өлшемдері мен ұзақтығын тексеріңіз.</p><p>Құжатталған aspect_ratio нұсқалары: 16:9, 9:16, 3:4, 4:3 және 1:1, әдепкісі — 16:9. Нұсқаулық Q2 тобы үшін 3:4 және 4:3 арақатынастарын нақты қамтиды. Генерациядан бұрын кадрды таңдап, соған сай композицияны сипаттаңыз: тік көріністе негізгі нысанды анық сақтаңыз немесе айналадағы ортаны көрсету үшін көлденең кадрдың енін пайдаланыңыз. Қажетті бетке, таныстырылымға немесе кейін жазу қосуға жарайтындай соңғы көріністі айқын қалдырыңыз.</p><p>seed өрісі нұсқалардың өзгеруін басқарады. Оны бермеу немесе 0 беру кездейсоқ мәнді таңдайды; нөлден өзге мән нәтижені қайталап алуға арналған құжатталған бекітілген seed опциясын таңдайды. Нұсқаларды салыстырғанда қайтарылған seed мәнін мәтінмен және баптаулармен бірге сақтаңыз. Ортақ операцияның құжаттамасында audio және off_peak баптаулары да арнайы Q3 модельдері үшін көрсетілген. Бұл Q3 опциялары осы Q2 профиліне тағайындалған мүмкіндіктер емес; сұрауды оның құжатталған мәтін кірісі мен бейне шығысына сүйеніп жоспарлаңыз.</p><p>Генерация асинхронды жүреді. Жіберу task_id және бастапқы күйді қайтарады, жаңа жасалған тапсырма үшін created қолданылады. Өңдеуді қадағалағанда осы тапсырма идентификаторын сақтаңыз. Құжатталған нәтиже сұрауы сәтті нәтиже үшін state=success пайдаланып, creations массивін қайтарады. Әр элементтің бейне URL мекенжайы creations[].url ішінде орналасады; тапсырмада әрдайым дәл бір нәтиже болады деп ойламай, қайтарылған әр бейнені сақтаңыз.</p><p>Нәтиже құжаттамасы нақты бейненің ұзақтығын, fps мәнін, кадрдың ені мен биіктігін де хабарлайды. Мысалдағы кадр жиілігін немесе өлшемдерді тұрақты Q2 сипаттамасы деп қабылдамай, осы хабарланған мәндерді дайын клиппен бірге сақтаңыз. Тапсырма жасау жауабында сұрау конфигурациясымен бірге credits мәні беріледі. Әр бейне өз генерация баптауларымен байланысты қалуы үшін осы хабарланған тапсырма метадеректерін және аяқталған тапсырманың идентификаторын нәтижемен бірге сақтаңыз.</p><p>Бүкіл реттілікті бастапқы тапсырмамен салыстырыңыз: нысанның сыртқы түрін, зат пішінін, қозғалыс бағытын, камера қозғалысының сабақтастығын және көзделген соңғы көріністі тексеріңіз. Түзету үшін тапсырмаға сәйкес келмеген нақты бөлшекті атап, көріністің сәтті бөліктерін сақтаңыз. Кейінгі салыстыру нақты материалдарға негізделуі үшін мәтіндік сұрауды, дәл селекторды, баптауларды, тапсырма идентификаторын және дайын бейнелерді бірге сақтаңыз.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Бейне</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Кіріс</dt><dd><code>text</code></dd></div><div><dt>Шығыс</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Өріс</th><th>Түрі</th><th>Талап</th><th>Мәндер мен шектеулер</th><th>Әдепкі</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>viduq2</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>Шарттар: Жасалатын көріністі сипаттаңыз. Құжатта көрсетілген шек — 2000 таңба; Ailoot жолдың бос еместігін тексеріп, мәтінді сақтайды.</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>integer</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>Ең азы: 1</div><div>Ең көбі: 10</div><div>Шарттар: viduq2 моделіне арналған сипаттамада 1–10 бүтін секунд көрсетілген. Модельге тән әдепкі ұзақтық құжатталмаған.</div><div>Бірлік: секунд</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>Шарттар: Кездейсоқ нәтиже үшін өрісті қоспаңыз немесе &quot;0&quot; жолын жіберіңіз. Нөлден өзге seed мәні берілсе, құжатталған тұрақты seed тәртібі таңдалады; сандық аралық көрсетілмеген.</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>16:9, 9:16, 3:4, 4:3, 1:1</div></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>16:9</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>540p, 720p, 1080p</div><div>Шарттар: viduq2 моделіне арналған тізімде бұл деңгейлер 1–10 секунд үшін құжатталған. Ортақ санамаланған мәндер мен кестеде 360p де аталады; оның қолданылуы сол тізімге қайшы келеді және мұнда расталмайды.</div></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>720p</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">style</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>general, anime</div><div>Шарттар: Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның viduq2 үшін әсер етпейтіні тікелей көрсетілген.</div></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>general</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">movement_amplitude</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>auto, small, medium, large</div><div>Шарттар: Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның q2 модельдеріне әсер етпейтіні тікелей көрсетілген.</div></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>auto</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Кіріс материалдарының үйлесімдері</summary><p class=\"note-s\"><b></b></p></details><details class=\"note-s\" data-method-contract><summary>Әдіс параметрлері мен өмірлік циклі</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Параметр талаптары</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>model, prompt</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>duration, seed, aspect_ratio, resolution, style, movement_amplitude</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>additional_properties</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>true</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>validation_scope</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>Ailoot model/prompt жолдарының бос еместігін тексереді. Төмендегі міндетті емес түрлер мен шектер сұраудың құжатталған шарттарын құрайды; сұраудың басқа өрістері таңдалған модель үшін сақталады.</td></tr></tbody></table></div><p>Әдістің балама атаулары: <code>/v1/videos/generations</code></p><p>Өмірлік цикл: <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\">Бір рет жасап, қайтарылған ашық id және polling_url мәндерін сақтаңыз.</p><p class=\"note-s\">Бастапқы операцияны мезгіл-мезгіл сұрап, state өрісін оқыңыз; success күйі мен иелігіңіздегі creations[].url нәтижесі аяқталу межесін белгілейді.</p><p class=\"note-s\">Қайтарылған, иелігіңіздегі әрбір бейненің URL мекенжайы бойынша файлды жүктеп алыңыз; мысалға қарап нәтиже саны, ұзақтығы немесе кадр жиілігі тұрақты деп тұжырымдамаңыз.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифтер</h3><div class=\"card-result-process\" data-billing-basis><h5>Қорытынды төлем қалай есептеледі</h5><p class=\"note-s\">Көрсетілген тарифтер генерация басталғанға дейінгі құнын бағалауға арналған. Соңғы төлем бастапқы генерация үшін тіркелген құннан есептеледі. Нәтиженің өлшенген ұзақтығы мен болжамды көлемдер төлемге негіз болатын түпкілікті көлем болып саналмайды.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.</p><dl data-price-conditions><dt>Жылдам режим</dt><dd>Көрсетілмеген <span class=\"note-s\">Жылдам режим таңдалғанда</span></dd><dt>Икемді режим</dt><dd>Көрсетілмеген <span class=\"note-s\">flex режимі таңдалғанда</span></dd><dt>Ой қорытудың ең жоғары деңгейі</dt><dd>Көрсетілмеген <span class=\"note-s\">Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда</span></dd></dl></div><div data-declared-tariff-pricing><h4>Салыстыруға арналған болжамды мөлшерлемелер</h4><h4>Баптаулар бойынша бағалар</h4><p class=\"note-s\">Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Баптау</th><th>Мөлшерлемелер кестесі</th><th>Болжамды мөлшер</th><th>Төлем</th></tr></thead><tbody><tr><th data-cell-label=\"Баптау\" scope=\"row\"><span class=\"card-cell-label\">Баптау</span>Токендердің базалық тарифтері</th><td data-cell-label=\"Мөлшерлемелер кестесі\"><span class=\"card-cell-label\">Мөлшерлемелер кестесі</span>Негізгі мөлшерлеме</td><td data-cell-label=\"Болжамды мөлшер\"><span class=\"card-cell-label\">Болжамды мөлшер</span>—</td><td data-cell-label=\"Төлем\"><span class=\"card-cell-label\">Төлем</span><div><span>Кіріс · Кіріс токендері · Тек салыстыруға арналған бағалау</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Шығыс · Шығыс токендері · Тек салыстыруға арналған бағалау</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшті оқу · Тек салыстыруға арналған бағалау</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу · Тек салыстыруға арналған бағалау</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу, 1 сағ · Тек салыстыруға арналған бағалау</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div></td></tr><tr><th data-cell-label=\"Баптау\" scope=\"row\"><span class=\"card-cell-label\">Баптау</span>Генерацияның болжамды құны</th><td data-cell-label=\"Мөлшерлемелер кестесі\"><span class=\"card-cell-label\">Мөлшерлемелер кестесі</span>—</td><td data-cell-label=\"Болжамды мөлшер\"><span class=\"card-cell-label\">Болжамды мөлшер</span>бір генерацияға арналған болжам</td><td data-cell-label=\"Төлем\"><span class=\"card-cell-label\">Төлем</span><div><span>Шығыс · Генерацияның болжамды құны · Тек салыстыруға арналған бағалау</span> <b>$5.12</b> <span class=\"price-unit\">жасауға дейінгі бағалау</span></div><p class=\"note-s\">Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. <a href=\"/docs/kk/billing/reserve/\">Резервтеу мен төлемді есептеу тәртібі →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Сұрау мысалдары</h3><h4>Ailoot Ultra · Бейне</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Код нұсқалары\"><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 · бейне құрыңыз</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 · бастапқы тапсырманы оқыңыз</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 · өзіңізге тиесілі барлық бейнені жүктеп алыңыз</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Кодты көшіру\"><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\">Нәтижелерді алу және сақтау</h3><h4>Ailoot Ultra · Бейне</h4><p class=\"note-s\">JSON төл state және creations массивін сақтайды, оған ашық id/provider_task_id/polling_url қосылады. Таңдалған бейне URL мекенжайлары жарияланғанға дейін бос болады, ал аяқталғаннан кейін Ailoot иелігіндегі қолтаңбасы бар 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>Барлық дайын нәтижені сақтау</h5><p class=\"note-s\">Әр дайын бейнені немесе қайтарылған файлды сақтаңыз; нақты қайтарылған әр материал URL арқылы мазмұнды алыңыз.</p><p class=\"note-s\">creations[].url ішіндегі нақты қайтарылған әрбір URL бойынша файлды жүктеп алыңыз; мазмұн индексі бір нақты қайтарылған шығыс нәтижесін анықтайды.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Бастапқы жауапты тексеру қажет болса</h5><p class=\"note-s\">Бекітілген декларацияда түпкілікті сәтсіздік күйі көрсетілмеген. Бастапқы жауапты, тақырыптарды және id мәнін сақтап, танылмаған күй немесе result_pending_check қатесі кезінде сол операцияны тексеріңіз; нәтижесі белгісіз жасау сұрауын ешқашан қайта жібермеңіз.</p></div><details class=\"card-about\" data-output-fields><summary>Жауап өрістері</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Өріс</th><th>Түрі</th><th>Мағынасы</th></tr></thead><tbody><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Қайтарылған ашық Ailoot тапсырмасының немесе операциясының идентификаторы.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Ашық id мәнінен бөлек бастапқы тапсырма идентификаторы.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бастапқы тапсырма үшін қайтарылған Ailoot іздеп алу жолы.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Жасау жауабында бар бастапқы идентификатор.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Төл тапсырма күйі: бекітілген күту күйі үшін created, ал аяқталу үшін success.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">err_code</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Тапсырма диагностикасы; сақталған сипаттамада санамаланған қате кодтарының тізімі көрсетілмеген.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">creations[].url</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string|string[]</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Таңдалған әрбір аяқталған бейненің URL мекенжайы Ailoot иелігіндегі қолтаңбасы бар URL мекенжайымен ауыстырылады.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">creations[].video.duration</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>number when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Қайтарылған бейненің ұзақтығы; нақты аяқталған нәтижені тексеріңіз.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">creations[].video.fps</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Қайтарылған кадр жиілігі; тұрақты кадр жиілігіне уәде берілмейді.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">creations[].video.resolution.width</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін ені.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">creations[].video.resolution.height</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer when supplied</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін биіктігі.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Қателер және келесі қадамдар</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Жауап</th><th>Шарт</th><th>Келесі қадам</th></tr></thead><tbody><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>JSON немесе модель жарамсыз, міндетті жолдар жоқ не бос немесе мазмұн индексі қате.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Ailoot API кілті жарамсыз.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>403 · <code>permission_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>API кілтінің тобына бұл медиа маршрутын пайдалануға рұқсат берілмеген.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Бастапқы тапсырма немесе сұралған нәтиже жоқ не сол пайдаланушыға, API кілтіне немесе топқа тиесілі емес.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>502 · <code>result_pending_check</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Бастапқы жіберу немесе күй туралы мәлімет толық емес не оларды өзара сәйкестендіру мүмкін емес; бастапқы ID мәнін сақтап, қайта жібермеңіз.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Бастапқы байланыс, маршрут немесе иелігіңіздегі медиа әлі тексерілуде; сол бастапқы операцияны тексеруді жалғастырыңыз.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>503 · <code>server_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Медиа қызметі немесе бастапқы тапсырмалар қоймасы қолжетімді емес.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Балама атаулар</h3><h4>Модельдердің балама атаулары</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>Әдіс жолдарының балама атаулары</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Шақыруға арналған байланысты ID</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": "Көрсетілген тарифтер генерация басталғанға дейінгі құнын бағалауға арналған. Соңғы төлем бастапқы генерация үшін тіркелген құннан есептеледі. Нәтиженің өлшенген ұзақтығы мен болжамды көлемдер төлемге негіз болатын түпкілікті көлем болып саналмайды.",
          "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": "JSON немесе модель жарамсыз, міндетті жолдар жоқ не бос немесе мазмұн индексі қате.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Ailoot API кілті жарамсыз.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "API кілтінің тобына бұл медиа маршрутын пайдалануға рұқсат берілмеген.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "Бастапқы тапсырма немесе сұралған нәтиже жоқ не сол пайдаланушыға, API кілтіне немесе топқа тиесілі емес.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Бастапқы жіберу немесе күй туралы мәлімет толық емес не оларды өзара сәйкестендіру мүмкін емес; бастапқы ID мәнін сақтап, қайта жібермеңіз.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Бастапқы байланыс, маршрут немесе иелігіңіздегі медиа әлі тексерілуде; сол бастапқы операцияны тексеруді жалғастырыңыз.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "Медиа қызметі немесе бастапқы тапсырмалар қоймасы қолжетімді емес.",
                "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": "Бекітілген декларацияда түпкілікті сәтсіздік күйі көрсетілмеген. Бастапқы жауапты, тақырыптарды және id мәнін сақтап, танылмаған күй немесе result_pending_check қатесі кезінде сол операцияны тексеріңіз; нәтижесі белгісіз жасау сұрауын ешқашан қайта жібермеңіз.",
              "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": "creations[].url ішіндегі нақты қайтарылған әрбір URL бойынша файлды жүктеп алыңыз; мазмұн индексі бір нақты қайтарылған шығыс нәтижесін анықтайды.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Қайтарылған ашық Ailoot тапсырмасының немесе операциясының идентификаторы.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Ашық id мәнінен бөлек бастапқы тапсырма идентификаторы.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Бастапқы тапсырма үшін қайтарылған Ailoot іздеп алу жолы.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Жасау жауабында бар бастапқы идентификатор.",
                  "name": "task_id",
                  "type": "string when supplied"
                },
                {
                  "description": "Төл тапсырма күйі: бекітілген күту күйі үшін created, ал аяқталу үшін success.",
                  "name": "state",
                  "type": "string when supplied"
                },
                {
                  "description": "Тапсырма диагностикасы; сақталған сипаттамада санамаланған қате кодтарының тізімі көрсетілмеген.",
                  "name": "err_code",
                  "type": "string when supplied"
                },
                {
                  "description": "Таңдалған әрбір аяқталған бейненің URL мекенжайы Ailoot иелігіндегі қолтаңбасы бар URL мекенжайымен ауыстырылады.",
                  "name": "creations[].url",
                  "type": "string|string[]"
                },
                {
                  "description": "Қайтарылған бейненің ұзақтығы; нақты аяқталған нәтижені тексеріңіз.",
                  "name": "creations[].video.duration",
                  "type": "number when supplied"
                },
                {
                  "description": "Қайтарылған кадр жиілігі; тұрақты кадр жиілігіне уәде берілмейді.",
                  "name": "creations[].video.fps",
                  "type": "integer when supplied"
                },
                {
                  "description": "Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін ені.",
                  "name": "creations[].video.resolution.width",
                  "type": "integer when supplied"
                },
                {
                  "description": "Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін биіктігі.",
                  "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 төл state және creations массивін сақтайды, оған ашық id/provider_task_id/polling_url қосылады. Таңдалған бейне URL мекенжайлары жарияланғанға дейін бос болады, ал аяқталғаннан кейін Ailoot иелігіндегі қолтаңбасы бар 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": "Жасалатын көріністі сипаттаңыз. Құжатта көрсетілген шек — 2000 таңба; Ailoot жолдың бос еместігін тексеріп, мәтінді сақтайды.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 2000,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "viduq2 моделіне арналған сипаттамада 1–10 бүтін секунд көрсетілген. Модельге тән әдепкі ұзақтық құжатталмаған.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 10,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "секунд"
              },
              {
                "availability": "source_interface",
                "conditions": "Кездейсоқ нәтиже үшін өрісті қоспаңыз немесе \"0\" жолын жіберіңіз. Нөлден өзге seed мәні берілсе, құжатталған тұрақты seed тәртібі таңдалады; сандық аралық көрсетілмеген.",
                "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": "viduq2 моделіне арналған тізімде бұл деңгейлер 1–10 секунд үшін құжатталған. Ортақ санамаланған мәндер мен кестеде 360p де аталады; оның қолданылуы сол тізімге қайшы келеді және мұнда расталмайды.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның viduq2 үшін әсер етпейтіні тікелей көрсетілген.",
                "default": "general",
                "default_known": true,
                "enum": [
                  "general",
                  "anime"
                ],
                "enum_known": true,
                "name": "style",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның q2 модельдеріне әсер етпейтіні тікелей көрсетілген.",
                "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": [
            "Бір рет жасап, қайтарылған ашық id және polling_url мәндерін сақтаңыз.",
            "Бастапқы операцияны мезгіл-мезгіл сұрап, state өрісін оқыңыз; success күйі мен иелігіңіздегі creations[].url нәтижесі аяқталу межесін белгілейді.",
            "Қайтарылған, иелігіңіздегі әрбір бейненің URL мекенжайы бойынша файлды жүктеп алыңыз; мысалға қарап нәтиже саны, ұзақтығы немесе кадр жиілігі тұрақты деп тұжырымдамаңыз."
          ],
          "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 model/prompt жолдарының бос еместігін тексереді. Төмендегі міндетті емес түрлер мен шектер сұраудың құжатталған шарттарын құрайды; сұраудың басқа өрістері таңдалған модель үшін сақталады."
          },
          "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": "Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Генерацияның болжамды құны",
            "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": "Бейне",
        "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": "e0a0329e2d7b85b10c0dfc4c00021c2fe8969d454bdb98e8a52ba29c75b1ea0e",
    "input_html_sha256": "2e7319a28db253023205e7f3503f5824a0cde149a94488d79e1c306f0180c82c",
    "private_audit_sha256": "883f800ffefe92b2a86100b78b36bad67f91c45772aaaa25e43ac32832d40a6a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/kk/viduq2/",
    "description": "Vidu Q2 мәтіндік көрініс тапсырмасынан бейне жасайды: ұзақтығы 1–10 секунд, шығыс ажыратымдылығы 540p, 720p немесе 1080p және бес арақатынас қолжетімді. Осы нақты viduq2 профилі стиль мен қозғалыс үшін мәтіндік сұрауды пайдаланып, нәтижені асинхронды тапсырма арқылы қайтарады.",
    "locale": "kk",
    "md_url": "https://ailoot.ai/models/kk/viduq2/index.md",
    "title": "Vidu: Q2 Text-to-Video — Ailoot",
    "url": "https://ailoot.ai/models/kk/viduq2/"
  },
  "rawModel": {
    "about": "Vidu Q2 viduq2 арқылы таңдалатын мәтіннен бейне жасау профилімен жазбаша көріністен бейне жасайды. Міндетті кірістері — модельдің дәл идентификаторы және көріністі сипаттайтын мәтіндік сұрау. Оны сыртқы түрі мен қозғалысын сөзбен белгілеуге болатын қысқа тауар тұжырымына, орынның жалпы көрінісіне немесе кейіпкер әрекетіне пайдаланыңыз. Бұл бапталған әдіс мәтіннен бейне жасайды; оның сипаттамасы селекторға бөлек референс кескін немесе бейне өңдеу режимін тағайындамайды.\n\nТапсырманы көрінетін реттілікке негіздеңіз. Нысанды, орынды, әрекетті, план ірілігін, камера қозғалысын және соңғы композицияны көрсетіңіз. Тауар тұжырымы үшін үстелдегі затты, оның материалының үстімен жылжыған жарықты және танылатын бөлшекке дейін баяу жақындаған камераны сипаттаңыз. Орын көрінісінде назар нүктесіне жылжымас бұрын ортаны көрсетіңіз. Көріністің көзделген аяқталуына уақыт қалуы үшін әрекетті таңдалған клип ұзақтығына сәйкестендіріңіз.\n\nМәтіндік сұраудың шегі — 2 000 таңба. Алдымен негізгі нысан мен әрекетті, содан соң қажетті нәтижені өзгертетін жарық, материал, орта және камера туралы мәліметтерді қосыңыз. Визуалды стильді мәтінде көрсетіңіз. Q2-ге арналған нұсқаулықта бөлек style және movement_amplitude параметрлері бұл модельге әсер етпейтіні айтылған, сондықтан general немесе anime алдын ала баптауы мен қозғалыс амплитудасы опциялары анық көрініс сипаттамасын алмастырмайды.\n\nМодельге арналған ұзақтық баптауы бірден онға дейінгі бүтін секундтарды қабылдайды. Q2 ажыратымдылық нұсқалары — 540p, 720p және 1080p, құжатталған әдепкісі — 720p. Ұзақтық пен ажыратымдылықты әрекетке және қолданылатын орынға сай бірге таңдаңыз. Қысқа ашып көрсету мен ұзағырақ қозғалысқа әртүрлі уақыт қажет; сұралған ұзақтықты арттыру өзгеріссіз тапсырманы жай созбай, көрінетін реттілікке қызмет етуі керек. Соңғы орналастыруға дайындағанда қайтарылған клиптің нақты өлшемдері мен ұзақтығын тексеріңіз.\n\nҚұжатталған aspect_ratio нұсқалары: 16:9, 9:16, 3:4, 4:3 және 1:1, әдепкісі — 16:9. Нұсқаулық Q2 тобы үшін 3:4 және 4:3 арақатынастарын нақты қамтиды. Генерациядан бұрын кадрды таңдап, соған сай композицияны сипаттаңыз: тік көріністе негізгі нысанды анық сақтаңыз немесе айналадағы ортаны көрсету үшін көлденең кадрдың енін пайдаланыңыз. Қажетті бетке, таныстырылымға немесе кейін жазу қосуға жарайтындай соңғы көріністі айқын қалдырыңыз.\n\nseed өрісі нұсқалардың өзгеруін басқарады. Оны бермеу немесе 0 беру кездейсоқ мәнді таңдайды; нөлден өзге мән нәтижені қайталап алуға арналған құжатталған бекітілген seed опциясын таңдайды. Нұсқаларды салыстырғанда қайтарылған seed мәнін мәтінмен және баптаулармен бірге сақтаңыз. Ортақ операцияның құжаттамасында audio және off_peak баптаулары да арнайы Q3 модельдері үшін көрсетілген. Бұл Q3 опциялары осы Q2 профиліне тағайындалған мүмкіндіктер емес; сұрауды оның құжатталған мәтін кірісі мен бейне шығысына сүйеніп жоспарлаңыз.\n\nГенерация асинхронды жүреді. Жіберу task_id және бастапқы күйді қайтарады, жаңа жасалған тапсырма үшін created қолданылады. Өңдеуді қадағалағанда осы тапсырма идентификаторын сақтаңыз. Құжатталған нәтиже сұрауы сәтті нәтиже үшін state=success пайдаланып, creations массивін қайтарады. Әр элементтің бейне URL мекенжайы creations[].url ішінде орналасады; тапсырмада әрдайым дәл бір нәтиже болады деп ойламай, қайтарылған әр бейнені сақтаңыз.\n\nНәтиже құжаттамасы нақты бейненің ұзақтығын, fps мәнін, кадрдың ені мен биіктігін де хабарлайды. Мысалдағы кадр жиілігін немесе өлшемдерді тұрақты Q2 сипаттамасы деп қабылдамай, осы хабарланған мәндерді дайын клиппен бірге сақтаңыз. Тапсырма жасау жауабында сұрау конфигурациясымен бірге credits мәні беріледі. Әр бейне өз генерация баптауларымен байланысты қалуы үшін осы хабарланған тапсырма метадеректерін және аяқталған тапсырманың идентификаторын нәтижемен бірге сақтаңыз.\n\nБүкіл реттілікті бастапқы тапсырмамен салыстырыңыз: нысанның сыртқы түрін, зат пішінін, қозғалыс бағытын, камера қозғалысының сабақтастығын және көзделген соңғы көріністі тексеріңіз. Түзету үшін тапсырмаға сәйкес келмеген нақты бөлшекті атап, көріністің сәтті бөліктерін сақтаңыз. Кейінгі салыстыру нақты материалдарға негізделуі үшін мәтіндік сұрауды, дәл селекторды, баптауларды, тапсырма идентификаторын және дайын бейнелерді бірге сақтаңыз.",
    "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": "Конфигурация бағалары туралы толық ақпарат — егжей-тегжейлі мәліметтерде."
      }
    ],
    "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": "Көрсетілген тарифтер генерация басталғанға дейінгі құнын бағалауға арналған. Соңғы төлем бастапқы генерация үшін тіркелген құннан есептеледі. Нәтиженің өлшенген ұзақтығы мен болжамды көлемдер төлемге негіз болатын түпкілікті көлем болып саналмайды.",
          "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": "JSON немесе модель жарамсыз, міндетті жолдар жоқ не бос немесе мазмұн индексі қате.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Ailoot API кілті жарамсыз.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "API кілтінің тобына бұл медиа маршрутын пайдалануға рұқсат берілмеген.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "Бастапқы тапсырма немесе сұралған нәтиже жоқ не сол пайдаланушыға, API кілтіне немесе топқа тиесілі емес.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "Бастапқы жіберу немесе күй туралы мәлімет толық емес не оларды өзара сәйкестендіру мүмкін емес; бастапқы ID мәнін сақтап, қайта жібермеңіз.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "Бастапқы байланыс, маршрут немесе иелігіңіздегі медиа әлі тексерілуде; сол бастапқы операцияны тексеруді жалғастырыңыз.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "Медиа қызметі немесе бастапқы тапсырмалар қоймасы қолжетімді емес.",
                "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": "Бекітілген декларацияда түпкілікті сәтсіздік күйі көрсетілмеген. Бастапқы жауапты, тақырыптарды және id мәнін сақтап, танылмаған күй немесе result_pending_check қатесі кезінде сол операцияны тексеріңіз; нәтижесі белгісіз жасау сұрауын ешқашан қайта жібермеңіз.",
              "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": "creations[].url ішіндегі нақты қайтарылған әрбір URL бойынша файлды жүктеп алыңыз; мазмұн индексі бір нақты қайтарылған шығыс нәтижесін анықтайды.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Қайтарылған ашық Ailoot тапсырмасының немесе операциясының идентификаторы.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Ашық id мәнінен бөлек бастапқы тапсырма идентификаторы.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Бастапқы тапсырма үшін қайтарылған Ailoot іздеп алу жолы.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Жасау жауабында бар бастапқы идентификатор.",
                  "name": "task_id",
                  "type": "string when supplied"
                },
                {
                  "description": "Төл тапсырма күйі: бекітілген күту күйі үшін created, ал аяқталу үшін success.",
                  "name": "state",
                  "type": "string when supplied"
                },
                {
                  "description": "Тапсырма диагностикасы; сақталған сипаттамада санамаланған қате кодтарының тізімі көрсетілмеген.",
                  "name": "err_code",
                  "type": "string when supplied"
                },
                {
                  "description": "Таңдалған әрбір аяқталған бейненің URL мекенжайы Ailoot иелігіндегі қолтаңбасы бар URL мекенжайымен ауыстырылады.",
                  "name": "creations[].url",
                  "type": "string|string[]"
                },
                {
                  "description": "Қайтарылған бейненің ұзақтығы; нақты аяқталған нәтижені тексеріңіз.",
                  "name": "creations[].video.duration",
                  "type": "number when supplied"
                },
                {
                  "description": "Қайтарылған кадр жиілігі; тұрақты кадр жиілігіне уәде берілмейді.",
                  "name": "creations[].video.fps",
                  "type": "integer when supplied"
                },
                {
                  "description": "Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін ені.",
                  "name": "creations[].video.resolution.width",
                  "type": "integer when supplied"
                },
                {
                  "description": "Қайтарылған шығыс нәтижесінің пиксельмен өлшенетін биіктігі.",
                  "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 төл state және creations массивін сақтайды, оған ашық id/provider_task_id/polling_url қосылады. Таңдалған бейне URL мекенжайлары жарияланғанға дейін бос болады, ал аяқталғаннан кейін Ailoot иелігіндегі қолтаңбасы бар 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": "Жасалатын көріністі сипаттаңыз. Құжатта көрсетілген шек — 2000 таңба; Ailoot жолдың бос еместігін тексеріп, мәтінді сақтайды.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 2000,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "viduq2 моделіне арналған сипаттамада 1–10 бүтін секунд көрсетілген. Модельге тән әдепкі ұзақтық құжатталмаған.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 10,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "секунд"
              },
              {
                "availability": "source_interface",
                "conditions": "Кездейсоқ нәтиже үшін өрісті қоспаңыз немесе \"0\" жолын жіберіңіз. Нөлден өзге seed мәні берілсе, құжатталған тұрақты seed тәртібі таңдалады; сандық аралық көрсетілмеген.",
                "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": "viduq2 моделіне арналған тізімде бұл деңгейлер 1–10 секунд үшін құжатталған. Ортақ санамаланған мәндер мен кестеде 360p де аталады; оның қолданылуы сол тізімге қайшы келеді және мұнда расталмайды.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "540p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның viduq2 үшін әсер етпейтіні тікелей көрсетілген.",
                "default": "general",
                "default_known": true,
                "enum": [
                  "general",
                  "anime"
                ],
                "enum_known": true,
                "name": "style",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Ортақ сұрау бұл өрісті қабылдайды, бірақ құжаттамада оның q2 модельдеріне әсер етпейтіні тікелей көрсетілген.",
                "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": [
            "Бір рет жасап, қайтарылған ашық id және polling_url мәндерін сақтаңыз.",
            "Бастапқы операцияны мезгіл-мезгіл сұрап, state өрісін оқыңыз; success күйі мен иелігіңіздегі creations[].url нәтижесі аяқталу межесін белгілейді.",
            "Қайтарылған, иелігіңіздегі әрбір бейненің URL мекенжайы бойынша файлды жүктеп алыңыз; мысалға қарап нәтиже саны, ұзақтығы немесе кадр жиілігі тұрақты деп тұжырымдамаңыз."
          ],
          "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 model/prompt жолдарының бос еместігін тексереді. Төмендегі міндетті емес түрлер мен шектер сұраудың құжатталған шарттарын құрайды; сұраудың басқа өрістері таңдалған модель үшін сақталады."
          },
          "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": "Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Генерацияның болжамды құны",
            "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": "Бейне",
        "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 мәтіндік көрініс тапсырмасынан бейне жасайды: ұзақтығы 1–10 секунд, шығыс ажыратымдылығы 540p, 720p немесе 1080p және бес арақатынас қолжетімді. Осы нақты viduq2 профилі стиль мен қозғалыс үшін мәтіндік сұрауды пайдаланып, нәтижені асинхронды тапсырма арқылы қайтарады."
  },
  "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 мәтіндік көрініс тапсырмасынан бейне жасайды: ұзақтығы 1–10 секунд, шығыс ажыратымдылығы 540p, 720p немесе 1080p және бес арақатынас қолжетімді. Осы нақты viduq2 профилі стиль мен қозғалыс үшін мәтіндік сұрауды пайдаланып, нәтижені асинхронды тапсырма арқылы қайтарады.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "adc1e8a0803e37b359b6a9d2f2d0740d5e4213c0afd8781975d08a9a7fa6cbfc",
    "renderer_sha256": "def3bb6e69c8ddb72f88ec6540bbe55d0e503790f964d84073ecda781b13bedf"
  },
  "sourceRevision": "f77bd915ebbc47bfbcc4cb0c10c361a42601876aa61e809b6263206136a3e2d0"
}
