{
  "aboutHtml": "<p>Runway Gen-4.5 — мәтіннен және суреттен бейне жасау режимдері бар модель. Ол көрініс композициясын, нысан әрекетін, камера қозғалысын және оқиғалар ретін сипаттайтын тапсырманы орындай алады. Пайдалы нәтиже — тексеруге, сақтауға немесе басқа материалмен жинауға болатын қысқа жасалған план.</p><h4>Планға кіріс режимін таңдаңыз</h4><p>Мәтіннен бейне жасау жазбаша көрініс сипаттамасынан басталады. Көрінетін мазмұнды да, қозғалысты да қосыңыз: нысан, орта, жарық, кадрлау, әрекет және камера мінезі. Бұл режим алғашқы кадры берілген суретті қайталауы міндетті емес жаңа көрініске, B-roll-ға, фон материалына немесе көрнекі тұжырымдамаға пайдалы.</p><p>Суреттен бейне жасау бірінші кадр қызметін атқаратын суреттен басталады. Ол композицияны, нысанды, жарықты және стильді береді. Жазбаша промптты кейінгі оқиғаға шоғырландырыңыз: нысан әрекеті, ортадағы қозғалыс, камера қозғалысы және планның өрбуі.</p><p>Маңызды бөлшектері көрініп тұрған анық сурет дайындаңыз. Бұлдыр беттер, қолдар немесе басқа ақаулар анимацияда айқынырақ болуы мүмкін. Шаң не қозғалыс бұлдыры арқылы жылдам әрекетті меңзейтін референс қимылсыз нысан сұрайтын промптқа да қайшы келуі мүмкін.</p><h4>Көрініс пен қозғалысты тікелей сипаттаңыз</h4><p>Анық табиғи тілді және қажетті нәтижені оң түрде сипаттауды қолданыңыз. Мәтіннен бейне тапсырмасы алдымен камера көрінісін, нысанды және әрекетті, кейін көріністің өңделу сипатын бере алады. Планның нақты талаптары болса, егжей-тегжейлі сипаттама пайдалы; қарапайым сипаттама ізденуге көбірек еркіндік береді. Анықтықты алмастыратын мінсіз сөз саны жоқ.</p><p>Мысалы, шамы жанатын жез үстел шамын жақыннан көрсетіп, кейін жанындағы дәптерді кадрда көрсететін баяу камера қозғалысын сипаттаңыз. Мәтіннен бейне үшін көрінетін материалдар мен жарықты айтыңыз. Берілген сурет осы бөлшектерді анықтап тұрса, суреттен бейне промпты жарықтың өзгерісіне және камераның ашып көрсетуіне шоғырлана алады.</p><p>Қайшы нұсқаулардан аулақ болыңыз. Нысан аздап қозғалатын бекітілген көрініс пен қолдағы камерамен қарқынды ілесу планы екі бөлек. Қатысы жоқ көптеген көрнекі стильді тізудің орнына пайдалы планды анықтайтын бөлшектерді қосыңыз.</p><h4>Камера терминдері және реттелген әрекет</h4><p>Өндірушінің камера нұсқаулығы кадрлауды, бұрыштарды, қозғалысты және фокусты ажыратады. Жақын план кадрды не толтыратынын өзгертеді, төменгі бұрыш перспективаны өзгертеді, панорама камера бағытын бұрады, ал ілесу қозғалысы нысанмен бірге жүреді. Фокусты ауыстыру нұсқауы анықтықты көрінетін нысандар арасында жылжытады. Қозғалыс өрбігенде не көрініп тұруы немесе ашылуы керегін көрсетіңіз.</p><p>Ретті промпттар оқиғаларды қарапайым тілмен немесе жуық уақыт белгілерімен бере алады. Бұл белгілер ретті және шамамен уақытты бағыттайды; кадрға дейін дәл орындауға кепілдік бермейді. Сұралған әрекеттерге таңдалған ролик ұзақтығында табиғи жүруге жеткілікті уақыт беріңіз.</p><p>Статикалық план үшін кадр ішіндегі қозғалысты сипаттап, камераның қозғалмауы керегін бекітіңіз. Өндіруші толық қимылсыз көріністер, әсіресе кейбір кең немесе жалпы пландар қиын болуы мүмкін екенін айтады. Статикалық камера тіркесі артық қозғалысты мүмкін емес етеді деп ойламай, нақты нәтижедегі ұсақ қажетсіз қозғалысты тексеріңіз.</p><h4>Ұзақтық, өлшемдер және кадр жиілігі</h4><p>Gen-4.5 2–10 секундтық роликтерді қолдайды. Ұзақ нұсқа бірнеше реттелген әрекетке орын береді, ал қысқа реакция не ашып көрсету үшін қысқарақ план жарайды. Өндірушінің генерация ағынында құжатталған нәтиже — 720p, секундына 24 немесе 25 кадр.</p><p>Мәтіннен бейне сипаттамасында 16:9, 1280 × 720 пиксель көрсетілген. Суреттен бейне үшін қосымша 9:16 — 720 × 1280, 1:1 — 960 × 960, 4:3 — 1104 × 832, 3:4 — 832 × 1104 және 21:9 — 1584 × 672 беріледі. Екі режим бірдей арақатынас жиынын ұсынады деп ойламай, режим мен нақты өлшемдерді бірге ескеріңіз.</p><p>Сурет арақатынасы әдепкі композицияны белгілей алады, ал оны өзгерту кіріс суретті қиюы мүмкін. Қозғалысты бағалаудан бұрын нысанның орнын тексеріңіз: бастапқы суреттің маңызды бөлігі кесіліп қалса, дұрыс әрекеттің пайдасы болмайды.</p><h4>Дайын пландардан ұзағырақ тізбек құрыңыз</h4><p>Суретке негізделген жұмыста өндіруші дайын роликтің соңғы кадрын келесі генерацияның кіріс суреті ретінде қолданып, тізбекті жалғастыруды сипаттайды. Кейін роликтер бейне редакторда біріктіріледі, ортақ кадр мен уақыт монтажда өңделеді. Бұл бір шексіз ұзақ генерация емес, бөлек пландар тізбегі.</p><p>Келесі план керекті көрнекі күйден басталуы үшін соңғы кадрды және оған тиісті тапсырманы сақтаңыз. Біріккен материалда нысан келбетін, камера бағытын және роликтер арасындағы ауысуды қоса сабақтастықты тексеріңіз.</p><h4>Өндірістік артефактіні сақтаңыз және тексеріңіз</h4><p>Генерациядан кейін бүкіл роликті қарап, дайын нәтижені сақтаңыз. Өндіруші ағыны бөлек үлкейту және ProRes не PNG кадрлар тізбегі сияқты өндірістік экспорт таңдауларын да береді. Бұл қосымша жұмыс ағыны мүмкіндіктері; бастапқы генерация өлшемдері кейін үлкейтілген нәтижеден бөлек қалады.</p><p>Gen-4.5 моделін кинематографиялық тұжырымдамаларға, анимациялық көрнекі идеяларға, B-roll-ға және қысқа көрініс әзірлеуге қолданыңыз. Промптты, қолданылса кіріс суретті, ұзақтықты, режимді және қайтарылған роликті бірге сақтаңыз. Әрекет ретін, камера мінезін, нысан бөлшектерін, қажетсіз монтаждық ауысуларды және керекті кадрлауды тексеріп, планға нысаналы түзету енгізіңіз.</p>",
  "aboutText": "Runway Gen-4.5 — мәтіннен және суреттен бейне жасау режимдері бар модель. Ол көрініс композициясын, нысан әрекетін, камера қозғалысын және оқиғалар ретін сипаттайтын тапсырманы орындай алады. Пайдалы нәтиже — тексеруге, сақтауға немесе басқа материалмен жинауға болатын қысқа жасалған план.\n\n### Планға кіріс режимін таңдаңыз\n\nМәтіннен бейне жасау жазбаша көрініс сипаттамасынан басталады. Көрінетін мазмұнды да, қозғалысты да қосыңыз: нысан, орта, жарық, кадрлау, әрекет және камера мінезі. Бұл режим алғашқы кадры берілген суретті қайталауы міндетті емес жаңа көрініске, B-roll-ға, фон материалына немесе көрнекі тұжырымдамаға пайдалы.\n\nСуреттен бейне жасау бірінші кадр қызметін атқаратын суреттен басталады. Ол композицияны, нысанды, жарықты және стильді береді. Жазбаша промптты кейінгі оқиғаға шоғырландырыңыз: нысан әрекеті, ортадағы қозғалыс, камера қозғалысы және планның өрбуі.\n\nМаңызды бөлшектері көрініп тұрған анық сурет дайындаңыз. Бұлдыр беттер, қолдар немесе басқа ақаулар анимацияда айқынырақ болуы мүмкін. Шаң не қозғалыс бұлдыры арқылы жылдам әрекетті меңзейтін референс қимылсыз нысан сұрайтын промптқа да қайшы келуі мүмкін.\n\n### Көрініс пен қозғалысты тікелей сипаттаңыз\n\nАнық табиғи тілді және қажетті нәтижені оң түрде сипаттауды қолданыңыз. Мәтіннен бейне тапсырмасы алдымен камера көрінісін, нысанды және әрекетті, кейін көріністің өңделу сипатын бере алады. Планның нақты талаптары болса, егжей-тегжейлі сипаттама пайдалы; қарапайым сипаттама ізденуге көбірек еркіндік береді. Анықтықты алмастыратын мінсіз сөз саны жоқ.\n\nМысалы, шамы жанатын жез үстел шамын жақыннан көрсетіп, кейін жанындағы дәптерді кадрда көрсететін баяу камера қозғалысын сипаттаңыз. Мәтіннен бейне үшін көрінетін материалдар мен жарықты айтыңыз. Берілген сурет осы бөлшектерді анықтап тұрса, суреттен бейне промпты жарықтың өзгерісіне және камераның ашып көрсетуіне шоғырлана алады.\n\nҚайшы нұсқаулардан аулақ болыңыз. Нысан аздап қозғалатын бекітілген көрініс пен қолдағы камерамен қарқынды ілесу планы екі бөлек. Қатысы жоқ көптеген көрнекі стильді тізудің орнына пайдалы планды анықтайтын бөлшектерді қосыңыз.\n\n### Камера терминдері және реттелген әрекет\n\nӨндірушінің камера нұсқаулығы кадрлауды, бұрыштарды, қозғалысты және фокусты ажыратады. Жақын план кадрды не толтыратынын өзгертеді, төменгі бұрыш перспективаны өзгертеді, панорама камера бағытын бұрады, ал ілесу қозғалысы нысанмен бірге жүреді. Фокусты ауыстыру нұсқауы анықтықты көрінетін нысандар арасында жылжытады. Қозғалыс өрбігенде не көрініп тұруы немесе ашылуы керегін көрсетіңіз.\n\nРетті промпттар оқиғаларды қарапайым тілмен немесе жуық уақыт белгілерімен бере алады. Бұл белгілер ретті және шамамен уақытты бағыттайды; кадрға дейін дәл орындауға кепілдік бермейді. Сұралған әрекеттерге таңдалған ролик ұзақтығында табиғи жүруге жеткілікті уақыт беріңіз.\n\nСтатикалық план үшін кадр ішіндегі қозғалысты сипаттап, камераның қозғалмауы керегін бекітіңіз. Өндіруші толық қимылсыз көріністер, әсіресе кейбір кең немесе жалпы пландар қиын болуы мүмкін екенін айтады. Статикалық камера тіркесі артық қозғалысты мүмкін емес етеді деп ойламай, нақты нәтижедегі ұсақ қажетсіз қозғалысты тексеріңіз.\n\n### Ұзақтық, өлшемдер және кадр жиілігі\n\nGen-4.5 2–10 секундтық роликтерді қолдайды. Ұзақ нұсқа бірнеше реттелген әрекетке орын береді, ал қысқа реакция не ашып көрсету үшін қысқарақ план жарайды. Өндірушінің генерация ағынында құжатталған нәтиже — 720p, секундына 24 немесе 25 кадр.\n\nМәтіннен бейне сипаттамасында 16:9, 1280 × 720 пиксель көрсетілген. Суреттен бейне үшін қосымша 9:16 — 720 × 1280, 1:1 — 960 × 960, 4:3 — 1104 × 832, 3:4 — 832 × 1104 және 21:9 — 1584 × 672 беріледі. Екі режим бірдей арақатынас жиынын ұсынады деп ойламай, режим мен нақты өлшемдерді бірге ескеріңіз.\n\nСурет арақатынасы әдепкі композицияны белгілей алады, ал оны өзгерту кіріс суретті қиюы мүмкін. Қозғалысты бағалаудан бұрын нысанның орнын тексеріңіз: бастапқы суреттің маңызды бөлігі кесіліп қалса, дұрыс әрекеттің пайдасы болмайды.\n\n### Дайын пландардан ұзағырақ тізбек құрыңыз\n\nСуретке негізделген жұмыста өндіруші дайын роликтің соңғы кадрын келесі генерацияның кіріс суреті ретінде қолданып, тізбекті жалғастыруды сипаттайды. Кейін роликтер бейне редакторда біріктіріледі, ортақ кадр мен уақыт монтажда өңделеді. Бұл бір шексіз ұзақ генерация емес, бөлек пландар тізбегі.\n\nКелесі план керекті көрнекі күйден басталуы үшін соңғы кадрды және оған тиісті тапсырманы сақтаңыз. Біріккен материалда нысан келбетін, камера бағытын және роликтер арасындағы ауысуды қоса сабақтастықты тексеріңіз.\n\n### Өндірістік артефактіні сақтаңыз және тексеріңіз\n\nГенерациядан кейін бүкіл роликті қарап, дайын нәтижені сақтаңыз. Өндіруші ағыны бөлек үлкейту және ProRes не PNG кадрлар тізбегі сияқты өндірістік экспорт таңдауларын да береді. Бұл қосымша жұмыс ағыны мүмкіндіктері; бастапқы генерация өлшемдері кейін үлкейтілген нәтижеден бөлек қалады.\n\nGen-4.5 моделін кинематографиялық тұжырымдамаларға, анимациялық көрнекі идеяларға, B-roll-ға және қысқа көрініс әзірлеуге қолданыңыз. Промптты, қолданылса кіріс суретті, ұзақтықты, режимді және қайтарылған роликті бірге сақтаңыз. Әрекет ретін, камера мінезін, нысан бөлшектерін, қажетсіз монтаждық ауысуларды және керекті кадрлауды тексеріп, планға нысаналы түзету енгізіңіз.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8d7a7ec270a772f2b17ad1750cbd96811c4d36c66e3d17935062561f71fbc533",
    "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\">Runway: Gen-4.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Жабу\">×</button></div><div class=\"idline\"><span>Runway /</span><code>runway/gen-4.5</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|runway%2Fgen-4.5\">Бейне</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\">Runway Gen-4.5 көрініс сипаттамасынан немесе қозғалыс нұсқауы берілген суреттен бейне жасайды. Оның 2–10 секундтық роликтері, камераға нақты промпт беруі және мәтіннен/суреттен бейнеге арналған бөлек композиция таңдауы кинематографиялық тұжырымдамаларға, қосымша B-roll кадрларына және анимациялық көріністерге жарайды.</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>Runway Gen-4.5 — мәтіннен және суреттен бейне жасау режимдері бар модель. Ол көрініс композициясын, нысан әрекетін, камера қозғалысын және оқиғалар ретін сипаттайтын тапсырманы орындай алады. Пайдалы нәтиже — тексеруге, сақтауға немесе басқа материалмен жинауға болатын қысқа жасалған план.</p><h4>Планға кіріс режимін таңдаңыз</h4><p>Мәтіннен бейне жасау жазбаша көрініс сипаттамасынан басталады. Көрінетін мазмұнды да, қозғалысты да қосыңыз: нысан, орта, жарық, кадрлау, әрекет және камера мінезі. Бұл режим алғашқы кадры берілген суретті қайталауы міндетті емес жаңа көрініске, B-roll-ға, фон материалына немесе көрнекі тұжырымдамаға пайдалы.</p><p>Суреттен бейне жасау бірінші кадр қызметін атқаратын суреттен басталады. Ол композицияны, нысанды, жарықты және стильді береді. Жазбаша промптты кейінгі оқиғаға шоғырландырыңыз: нысан әрекеті, ортадағы қозғалыс, камера қозғалысы және планның өрбуі.</p><p>Маңызды бөлшектері көрініп тұрған анық сурет дайындаңыз. Бұлдыр беттер, қолдар немесе басқа ақаулар анимацияда айқынырақ болуы мүмкін. Шаң не қозғалыс бұлдыры арқылы жылдам әрекетті меңзейтін референс қимылсыз нысан сұрайтын промптқа да қайшы келуі мүмкін.</p><h4>Көрініс пен қозғалысты тікелей сипаттаңыз</h4><p>Анық табиғи тілді және қажетті нәтижені оң түрде сипаттауды қолданыңыз. Мәтіннен бейне тапсырмасы алдымен камера көрінісін, нысанды және әрекетті, кейін көріністің өңделу сипатын бере алады. Планның нақты талаптары болса, егжей-тегжейлі сипаттама пайдалы; қарапайым сипаттама ізденуге көбірек еркіндік береді. Анықтықты алмастыратын мінсіз сөз саны жоқ.</p><p>Мысалы, шамы жанатын жез үстел шамын жақыннан көрсетіп, кейін жанындағы дәптерді кадрда көрсететін баяу камера қозғалысын сипаттаңыз. Мәтіннен бейне үшін көрінетін материалдар мен жарықты айтыңыз. Берілген сурет осы бөлшектерді анықтап тұрса, суреттен бейне промпты жарықтың өзгерісіне және камераның ашып көрсетуіне шоғырлана алады.</p><p>Қайшы нұсқаулардан аулақ болыңыз. Нысан аздап қозғалатын бекітілген көрініс пен қолдағы камерамен қарқынды ілесу планы екі бөлек. Қатысы жоқ көптеген көрнекі стильді тізудің орнына пайдалы планды анықтайтын бөлшектерді қосыңыз.</p><h4>Камера терминдері және реттелген әрекет</h4><p>Өндірушінің камера нұсқаулығы кадрлауды, бұрыштарды, қозғалысты және фокусты ажыратады. Жақын план кадрды не толтыратынын өзгертеді, төменгі бұрыш перспективаны өзгертеді, панорама камера бағытын бұрады, ал ілесу қозғалысы нысанмен бірге жүреді. Фокусты ауыстыру нұсқауы анықтықты көрінетін нысандар арасында жылжытады. Қозғалыс өрбігенде не көрініп тұруы немесе ашылуы керегін көрсетіңіз.</p><p>Ретті промпттар оқиғаларды қарапайым тілмен немесе жуық уақыт белгілерімен бере алады. Бұл белгілер ретті және шамамен уақытты бағыттайды; кадрға дейін дәл орындауға кепілдік бермейді. Сұралған әрекеттерге таңдалған ролик ұзақтығында табиғи жүруге жеткілікті уақыт беріңіз.</p><p>Статикалық план үшін кадр ішіндегі қозғалысты сипаттап, камераның қозғалмауы керегін бекітіңіз. Өндіруші толық қимылсыз көріністер, әсіресе кейбір кең немесе жалпы пландар қиын болуы мүмкін екенін айтады. Статикалық камера тіркесі артық қозғалысты мүмкін емес етеді деп ойламай, нақты нәтижедегі ұсақ қажетсіз қозғалысты тексеріңіз.</p><h4>Ұзақтық, өлшемдер және кадр жиілігі</h4><p>Gen-4.5 2–10 секундтық роликтерді қолдайды. Ұзақ нұсқа бірнеше реттелген әрекетке орын береді, ал қысқа реакция не ашып көрсету үшін қысқарақ план жарайды. Өндірушінің генерация ағынында құжатталған нәтиже — 720p, секундына 24 немесе 25 кадр.</p><p>Мәтіннен бейне сипаттамасында 16:9, 1280 × 720 пиксель көрсетілген. Суреттен бейне үшін қосымша 9:16 — 720 × 1280, 1:1 — 960 × 960, 4:3 — 1104 × 832, 3:4 — 832 × 1104 және 21:9 — 1584 × 672 беріледі. Екі режим бірдей арақатынас жиынын ұсынады деп ойламай, режим мен нақты өлшемдерді бірге ескеріңіз.</p><p>Сурет арақатынасы әдепкі композицияны белгілей алады, ал оны өзгерту кіріс суретті қиюы мүмкін. Қозғалысты бағалаудан бұрын нысанның орнын тексеріңіз: бастапқы суреттің маңызды бөлігі кесіліп қалса, дұрыс әрекеттің пайдасы болмайды.</p><h4>Дайын пландардан ұзағырақ тізбек құрыңыз</h4><p>Суретке негізделген жұмыста өндіруші дайын роликтің соңғы кадрын келесі генерацияның кіріс суреті ретінде қолданып, тізбекті жалғастыруды сипаттайды. Кейін роликтер бейне редакторда біріктіріледі, ортақ кадр мен уақыт монтажда өңделеді. Бұл бір шексіз ұзақ генерация емес, бөлек пландар тізбегі.</p><p>Келесі план керекті көрнекі күйден басталуы үшін соңғы кадрды және оған тиісті тапсырманы сақтаңыз. Біріккен материалда нысан келбетін, камера бағытын және роликтер арасындағы ауысуды қоса сабақтастықты тексеріңіз.</p><h4>Өндірістік артефактіні сақтаңыз және тексеріңіз</h4><p>Генерациядан кейін бүкіл роликті қарап, дайын нәтижені сақтаңыз. Өндіруші ағыны бөлек үлкейту және ProRes не PNG кадрлар тізбегі сияқты өндірістік экспорт таңдауларын да береді. Бұл қосымша жұмыс ағыны мүмкіндіктері; бастапқы генерация өлшемдері кейін үлкейтілген нәтижеден бөлек қалады.</p><p>Gen-4.5 моделін кинематографиялық тұжырымдамаларға, анимациялық көрнекі идеяларға, B-roll-ға және қысқа көрініс әзірлеуге қолданыңыз. Промптты, қолданылса кіріс суретті, ұзақтықты, режимді және қайтарылған роликті бірге сақтаңыз. Әрекет ретін, камера мінезін, нысан бөлшектерін, қажетсіз монтаждық ауысуларды және керекті кадрлауды тексеріп, планға нысаналы түзету енгізіңіз.</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>, <code>image</code></dd></div><div><dt>Шығыс</dt><dd><code>video</code></dd></div><div><dt>Шығыс пішімі</dt><dd>бастапқы MP4 байттары; қалыпқа келтірусіз/қайта кодтаусыз</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>runway/gen-4.5</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></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>2, 3, 4, 5, 6, 7, 8, 9, 10</div><div>Ең азы: 1</div><div>Ең көбі: 600</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\">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>720p</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</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\">generate_audio</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>boolean</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>false</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\">frame_images</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>array</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>Элементтердің ең көп саны: 1</div><div>Кіріс мазмұны: Кадр объектілерінің массиві. Әр объектіде type=image_url, ішінде url бар image_url және frame_type өрістері болады. HTTPS сурет URL мекенжайын пайдаланып, frame_type өрісіне first_frame мәнін орнатыңыз. Әр кадр рөлі ең көбі бір рет кездеседі.</div><div>Нақты кілттер: type, image_url, frame_type</div><div>Шарттар: Бұл кілттер әр кадр объектісін сипаттайды; image_url ішінде тек url болады. Тек мәтіндік сұрауда frame_images өрісін қоспаңыз.</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\">input_references</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>array</code></td><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=\"Әдепкі\" 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\">size</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>1280x720, 720x1280</div><div>Үлгі: ^[1-9][0-9]*x[1-9][0-9]*$</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>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>Ең азы: -9 223 372 036 854 775 808</div><div>Ең көбі: 9 223 372 036 854 775 807</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\">callback_url</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>Үлгі: ^https://</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\">session_id</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></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\">trace</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>object</code></td><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=\"Әдепкі\" 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\">user</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></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Кіріс материалдарының үйлесімдері</summary><p class=\"note-s\"><b>Мәтіннен бейне жасау</b> · Жазбаша промпт. · Міндетті: model, prompt, duration</p><p class=\"note-s\"><code>Промптты мәтін түрінде, ал ұзақтықты бүтін секундпен беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Түрі: string · runway/gen-4.5</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Түрі: string · UTF-8 байттарының ең көп саны: 10 000 · Бос таңбаға жатпайтын кемінде бір таңба қажет: Иә</p><p class=\"note-s\"><b>Суреттен бейне жасау</b> · Жазбаша промпт және алғашқы кадр суреті. · Міндетті: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images — массив. Әр кадр объектісінде type, image_url және frame_type өрістері бар; image_url ішінде url болады. type өрісіне image_url мәнін орнатыңыз. first_frame мәнін қолданыңыз. Әр кадр рөлі ең көбі бір рет кездеседі. Әр кадр үшін жалпыға қолжетімді HTTPS сурет URL мекенжайын беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.</code></p><p class=\"note-s\">Нақты кілттер: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Түрі: string · runway/gen-4.5</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Түрі: string · UTF-8 байттарының ең көп саны: 10 000 · Бос таңбаға жатпайтын кемінде бір таңба қажет: Иә</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, duration</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, image</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>false</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional_controls</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Өмірлік цикл: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифтер</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><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>—</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>бейне секунды үшін</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>$0.24</b> <span class=\"price-unit\">бейне секунды үшін</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>—</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>$0.48</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><div data-declared-reference-pricing><h4>Анықтамалық тариф мәліметтері</h4><p class=\"note-s\">Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Бейне конфигурацияларының баға сілтемелері</summary><h4>Баптаулар бойынша бағалар</h4><div class=\"tw\" data-pricing-profiles><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>Бейне бағасы</th><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>$0.24</b> <span class=\"price-unit\">бейне секунды үшін</span></div><p class=\"note-s\">Көрсетілген конфигурация үшін жарияланған анықтамалық баға. Соңғы төлемдер ақысы есептелген нақты конфигурацияға сай алынады.</p></td></tr></tbody></table></div></details></div></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-2563-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2563-panel-0\" aria-selected=\"true\" tabindex=\"0\">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-2563-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2563-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;runway/gen-4.5&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Нәтижелерді алу және сақтау</h3><h4>Ailoot Ultra · Бейне</h4><p class=\"note-s\">иелігіңіздегі мазмұнның қолтаңбасы бар URL мекенжайлары</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Тапсырма күйін тексеру</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Код нұсқалары\"><button class=\"cg-tab\" id=\"model-code-2564-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2564-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET бастапқы операцияның күйі</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-2564-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2564-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Басқа мазмұнды оқу</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Код нұсқалары\"><button class=\"cg-tab\" id=\"model-code-2565-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2565-panel-0\" aria-selected=\"true\" tabindex=\"0\">Өзіңізге тиесілі әр дайын нәтижені сақтау</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-2565-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2565-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Барлық дайын нәтижені сақтау</h5><p class=\"note-s\">Әр дайын бейнені немесе қайтарылған файлды сақтаңыз; нақты қайтарылған әр материал URL арқылы мазмұнды алыңыз.</p><p class=\"note-s\">Иелігіңіздегі әрбір нақты шығыс нәтижесін және онымен қайтарылған өлшенген метадеректерді сақтаңыз.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Бастапқы жауапты тексеру қажет болса</h5><p class=\"note-s\">503 result_pending_check + бастапқы id + X-Should-Retry:false; бастапқы сұрауды ешқашан қайталамаңыз</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\">index</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer</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\">content_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>Осы аяқталған бейнені жүктеп алуға арналған қолтаңбасы бар HTTPS URL мекенжайы.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бастапқы бейне байттарының SHA-256 хэші; қолжетімсіз болса, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бастапқы бейне файлының байтпен өлшенетін көлемі; қолжетімсіз болса, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бейненің миллисекундпен өлшенген ұзақтығы; қолжетімсіз болса, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бейненің пиксельмен өлшенетін ені; қолжетімсіз болса, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>integer | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бейненің пиксельмен өлшенетін биіктігі; қолжетімсіз болса, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бейне кодегінің идентификаторы; тіркелмесе, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>boolean | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Бейнеде аудиожол бар-жоғы; өлшенбесе, null.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string | null</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Аудио кодегінің идентификаторы; идентификатор тіркелмесе, null.</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>404 · <code>not_found_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Бейнеге қол жеткізу мүмкін емес немесе бұл бейне ID мәні табылмады.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span>Бейнеге қолжетімділікті тексеріңіз. Бар бейне үшін оның бастапқы ашық ID мәнін және сол API кілтін пайдаланыңыз.</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>API кілті аутентификациядан өткен есептік жазбаға сәйкес келмейді.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span>Жібермес бұрын API кілтіңізді және есептік жазбаға қолжетімділікті тексеріңіз.</td></tr><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>Сұрауды оқу мүмкін болмады немесе жүктеп алу индексі жарамсыз.</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>422 · <code>price_unavailable</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>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Кіріс бейне немесе бастапқы жалғастыру тапсырмасы жарамсыз.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span>Жарамды HTTPS кірістерін пайдаланыңыз. Жалғастыру үшін аяқталған бастапқы бейнеңіздің ашық ID мәнін сол API кілтімен қолданыңыз.</td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>402 · <code>billing_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><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>Қызметтің қолжетімді болуын күтіңіз. Егер сізде бейне ID мәні бар болса, басқа генерация жасаудың орнына сол бастапқы тапсырманы тексеріңіз.</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>Қайтарылған бейне ID мәнін сақтап, сол тапсырманы тексеріңіз. Тексеру жүріп жатқанда оның орнына жаңа генерация сұрауын жібермеңіз.</td></tr><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>503 · <code>owned_result_unavailable</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>409 · <code>video_not_ready</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Бейне мазмұны жарияланбаған.</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span>Бастапқы тапсырманың күйін тексеріңіз. completed күйін хабарлағаннан кейін жүктеп алыңыз; failed күйін хабарласа, оның төлемді тексеру туралы ескертуін орындаңыз.</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=runway%2Fgen-4.5&amp;route=Ultra&amp;caller=runway%2Fgen-4.5&amp;fmt=videos\"><code>runway/gen-4.5</code></a></span></p><h4>Әдіс жолдарының балама атаулары</h4><p class=\"note-s\">Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.</p><h4>Шақыруға арналған байланысты ID</h4><p class=\"note-s\"><a href=\"#m=runway%2Fgen-4.5&amp;route=Ultra&amp;caller=runway%2Fgen-4.5&amp;fmt=videos\"><code>runway/gen-4.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "runway/gen-4.5",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "runway/gen-4.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|runway%2Fgen-4.5",
      "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": {
            "all_results": "Иелігіңіздегі әрбір нақты шығыс нәтижесін және онымен қайтарылған өлшенген метадеректерді сақтаңыз.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Бейнеге қол жеткізу мүмкін емес немесе бұл бейне ID мәні табылмады.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Бейнеге қолжетімділікті тексеріңіз. Бар бейне үшін оның бастапқы ашық ID мәнін және сол API кілтін пайдаланыңыз.",
                "type": "not_found_error"
              },
              {
                "condition": "API кілті аутентификациядан өткен есептік жазбаға сәйкес келмейді.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Жібермес бұрын API кілтіңізді және есептік жазбаға қолжетімділікті тексеріңіз.",
                "type": "authentication_error"
              },
              {
                "condition": "Сұрауды оқу мүмкін болмады немесе жүктеп алу индексі жарамсыз.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Сұрау денесін түзетіңіз. Жүктеп алу үшін бастапқы тапсырма қайтарған шығыс индексін таңдаңыз.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Таңдалған бейне конфигурациясының бағасын есептеу мүмкін емес.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Қолдау көрсетілетін бейне конфигурациясын таңдап, түзетілген сұрауды жібермес бұрын оның міндетті параметрлерін толтырыңыз.",
                "type": "price_unavailable"
              },
              {
                "condition": "Кіріс бейне немесе бастапқы жалғастыру тапсырмасы жарамсыз.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Жарамды HTTPS кірістерін пайдаланыңыз. Жалғастыру үшін аяқталған бастапқы бейнеңіздің ашық ID мәнін сол API кілтімен қолданыңыз.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Қолда бар баланс немесе лимиттер қаражатты резервтеуге мүмкіндік бермейді.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Жаңа сұрауды жібермес бұрын қолда бар балансты және лимиттерді тексеріңіз.",
                "type": "billing_error"
              },
              {
                "condition": "Бейнені тексеру, сақтау немесе қызметке қол жеткізу уақытша қолжетімсіз.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Қызметтің қолжетімді болуын күтіңіз. Егер сізде бейне ID мәні бар болса, басқа генерация жасаудың орнына сол бастапқы тапсырманы тексеріңіз.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Бастапқы бейне нәтижесі мен есептелген төлемді тексеру қажет.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Қайтарылған бейне ID мәнін сақтап, сол тапсырманы тексеріңіз. Тексеру жүріп жатқанда оның орнына жаңа генерация сұрауын жібермеңіз.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Бар бейнені жүктеп алу уақытша қолжетімсіз.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Сол бейне тапсырмасын кейінірек тексеріп, оның бар шығыс нәтижесін жүктеп алыңыз. Жаңа генерация бөлек операция жасайды.",
                "type": "server_error"
              },
              {
                "condition": "Бейне мазмұны жарияланбаған.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Бастапқы тапсырманың күйін тексеріңіз. completed күйін хабарлағаннан кейін жүктеп алыңыз; failed күйін хабарласа, оның төлемді тексеру туралы ескертуін орындаңыз.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + бастапқы id + X-Should-Retry:false; бастапқы сұрауды ешқашан қайталамаңыз"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "runway/gen-4.5"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Промптты мәтін түрінде, ал ұзақтықты бүтін секундпен беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Жазбаша промпт."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "runway/gen-4.5"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images — массив. Әр кадр объектісінде type, image_url және frame_type өрістері бар; image_url ішінде url болады. type өрісіне image_url мәнін орнатыңыз. first_frame мәнін қолданыңыз. Әр кадр рөлі ең көбі бір рет кездеседі. Әр кадр үшін жалпыға қолжетімді HTTPS сурет URL мекенжайын беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Жазбаша промпт және алғашқы кадр суреті."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Осы бейненің шығыс тізіміндегі нөлден басталатын орны.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Осы аяқталған бейнені жүктеп алуға арналған қолтаңбасы бар HTTPS URL мекенжайы.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Бастапқы бейне байттарының SHA-256 хэші; қолжетімсіз болса, null.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Бастапқы бейне файлының байтпен өлшенетін көлемі; қолжетімсіз болса, null.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Бейненің миллисекундпен өлшенген ұзақтығы; қолжетімсіз болса, null.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Бейненің пиксельмен өлшенетін ені; қолжетімсіз болса, null.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Бейненің пиксельмен өлшенетін биіктігі; қолжетімсіз болса, null.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Бейне кодегінің идентификаторы; тіркелмесе, null.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Бейнеде аудиожол бар-жоғы; өлшенбесе, null.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Аудио кодегінің идентификаторы; идентификатор тіркелмесе, null.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "иелігіңіздегі мазмұнның қолтаңбасы бар URL мекенжайлары",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "runway/gen-4.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "runway/gen-4.5"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Бұл кілттер әр кадр объектісін сипаттайды; image_url ішінде тек url болады. Тек мәтіндік сұрауда frame_images өрісін қоспаңыз.",
                "content": "Кадр объектілерінің массиві. Әр объектіде type=image_url, ішінде url бар image_url және frame_type өрістері болады. HTTPS сурет URL мекенжайын пайдаланып, frame_type өрісіне first_frame мәнін орнатыңыз. Әр кадр рөлі ең көбі бір рет кездеседі.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "runway/gen-4.5"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.24",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.24",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Генерацияның болжамды құны",
            "units": [
              {
                "amount": "0.48",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.48",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"runway/gen-4.5\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.24",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.24",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.48",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.48",
                "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": "runway/gen-4.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.24",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.24",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.48",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.48",
            "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": "runway/gen-4.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4522cb9fe021078066eeebdf530f25150bff8bcdf53b116bafebeb0ac93bcb51",
    "input_html_sha256": "220dd07793f250483049e1e3f9ddfa4a76aa7053dbc8c4516b3612c002dea608",
    "private_audit_sha256": "6591f86584df717dfe55d89548d1dbd1a86c80a86ee4e0b9bb8f5bd2d54dea2c",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/kk/runway-gen-4-5/",
    "description": "Runway Gen-4.5 көрініс сипаттамасынан немесе қозғалыс нұсқауы берілген суреттен бейне жасайды. Оның 2–10 секундтық роликтері, камераға нақты промпт беруі және мәтіннен/суреттен бейнеге арналған бөлек композиция таңдауы кинематографиялық тұжырымдамаларға, қосымша B-roll кадрларына және анимациялық көріністерге жарайды.",
    "locale": "kk",
    "md_url": "https://ailoot.ai/models/kk/runway-gen-4-5/index.md",
    "title": "Runway: Gen-4.5 — Ailoot",
    "url": "https://ailoot.ai/models/kk/runway-gen-4-5/"
  },
  "rawModel": {
    "about": "Runway Gen-4.5 — мәтіннен және суреттен бейне жасау режимдері бар модель. Ол көрініс композициясын, нысан әрекетін, камера қозғалысын және оқиғалар ретін сипаттайтын тапсырманы орындай алады. Пайдалы нәтиже — тексеруге, сақтауға немесе басқа материалмен жинауға болатын қысқа жасалған план.\n\n### Планға кіріс режимін таңдаңыз\n\nМәтіннен бейне жасау жазбаша көрініс сипаттамасынан басталады. Көрінетін мазмұнды да, қозғалысты да қосыңыз: нысан, орта, жарық, кадрлау, әрекет және камера мінезі. Бұл режим алғашқы кадры берілген суретті қайталауы міндетті емес жаңа көрініске, B-roll-ға, фон материалына немесе көрнекі тұжырымдамаға пайдалы.\n\nСуреттен бейне жасау бірінші кадр қызметін атқаратын суреттен басталады. Ол композицияны, нысанды, жарықты және стильді береді. Жазбаша промптты кейінгі оқиғаға шоғырландырыңыз: нысан әрекеті, ортадағы қозғалыс, камера қозғалысы және планның өрбуі.\n\nМаңызды бөлшектері көрініп тұрған анық сурет дайындаңыз. Бұлдыр беттер, қолдар немесе басқа ақаулар анимацияда айқынырақ болуы мүмкін. Шаң не қозғалыс бұлдыры арқылы жылдам әрекетті меңзейтін референс қимылсыз нысан сұрайтын промптқа да қайшы келуі мүмкін.\n\n### Көрініс пен қозғалысты тікелей сипаттаңыз\n\nАнық табиғи тілді және қажетті нәтижені оң түрде сипаттауды қолданыңыз. Мәтіннен бейне тапсырмасы алдымен камера көрінісін, нысанды және әрекетті, кейін көріністің өңделу сипатын бере алады. Планның нақты талаптары болса, егжей-тегжейлі сипаттама пайдалы; қарапайым сипаттама ізденуге көбірек еркіндік береді. Анықтықты алмастыратын мінсіз сөз саны жоқ.\n\nМысалы, шамы жанатын жез үстел шамын жақыннан көрсетіп, кейін жанындағы дәптерді кадрда көрсететін баяу камера қозғалысын сипаттаңыз. Мәтіннен бейне үшін көрінетін материалдар мен жарықты айтыңыз. Берілген сурет осы бөлшектерді анықтап тұрса, суреттен бейне промпты жарықтың өзгерісіне және камераның ашып көрсетуіне шоғырлана алады.\n\nҚайшы нұсқаулардан аулақ болыңыз. Нысан аздап қозғалатын бекітілген көрініс пен қолдағы камерамен қарқынды ілесу планы екі бөлек. Қатысы жоқ көптеген көрнекі стильді тізудің орнына пайдалы планды анықтайтын бөлшектерді қосыңыз.\n\n### Камера терминдері және реттелген әрекет\n\nӨндірушінің камера нұсқаулығы кадрлауды, бұрыштарды, қозғалысты және фокусты ажыратады. Жақын план кадрды не толтыратынын өзгертеді, төменгі бұрыш перспективаны өзгертеді, панорама камера бағытын бұрады, ал ілесу қозғалысы нысанмен бірге жүреді. Фокусты ауыстыру нұсқауы анықтықты көрінетін нысандар арасында жылжытады. Қозғалыс өрбігенде не көрініп тұруы немесе ашылуы керегін көрсетіңіз.\n\nРетті промпттар оқиғаларды қарапайым тілмен немесе жуық уақыт белгілерімен бере алады. Бұл белгілер ретті және шамамен уақытты бағыттайды; кадрға дейін дәл орындауға кепілдік бермейді. Сұралған әрекеттерге таңдалған ролик ұзақтығында табиғи жүруге жеткілікті уақыт беріңіз.\n\nСтатикалық план үшін кадр ішіндегі қозғалысты сипаттап, камераның қозғалмауы керегін бекітіңіз. Өндіруші толық қимылсыз көріністер, әсіресе кейбір кең немесе жалпы пландар қиын болуы мүмкін екенін айтады. Статикалық камера тіркесі артық қозғалысты мүмкін емес етеді деп ойламай, нақты нәтижедегі ұсақ қажетсіз қозғалысты тексеріңіз.\n\n### Ұзақтық, өлшемдер және кадр жиілігі\n\nGen-4.5 2–10 секундтық роликтерді қолдайды. Ұзақ нұсқа бірнеше реттелген әрекетке орын береді, ал қысқа реакция не ашып көрсету үшін қысқарақ план жарайды. Өндірушінің генерация ағынында құжатталған нәтиже — 720p, секундына 24 немесе 25 кадр.\n\nМәтіннен бейне сипаттамасында 16:9, 1280 × 720 пиксель көрсетілген. Суреттен бейне үшін қосымша 9:16 — 720 × 1280, 1:1 — 960 × 960, 4:3 — 1104 × 832, 3:4 — 832 × 1104 және 21:9 — 1584 × 672 беріледі. Екі режим бірдей арақатынас жиынын ұсынады деп ойламай, режим мен нақты өлшемдерді бірге ескеріңіз.\n\nСурет арақатынасы әдепкі композицияны белгілей алады, ал оны өзгерту кіріс суретті қиюы мүмкін. Қозғалысты бағалаудан бұрын нысанның орнын тексеріңіз: бастапқы суреттің маңызды бөлігі кесіліп қалса, дұрыс әрекеттің пайдасы болмайды.\n\n### Дайын пландардан ұзағырақ тізбек құрыңыз\n\nСуретке негізделген жұмыста өндіруші дайын роликтің соңғы кадрын келесі генерацияның кіріс суреті ретінде қолданып, тізбекті жалғастыруды сипаттайды. Кейін роликтер бейне редакторда біріктіріледі, ортақ кадр мен уақыт монтажда өңделеді. Бұл бір шексіз ұзақ генерация емес, бөлек пландар тізбегі.\n\nКелесі план керекті көрнекі күйден басталуы үшін соңғы кадрды және оған тиісті тапсырманы сақтаңыз. Біріккен материалда нысан келбетін, камера бағытын және роликтер арасындағы ауысуды қоса сабақтастықты тексеріңіз.\n\n### Өндірістік артефактіні сақтаңыз және тексеріңіз\n\nГенерациядан кейін бүкіл роликті қарап, дайын нәтижені сақтаңыз. Өндіруші ағыны бөлек үлкейту және ProRes не PNG кадрлар тізбегі сияқты өндірістік экспорт таңдауларын да береді. Бұл қосымша жұмыс ағыны мүмкіндіктері; бастапқы генерация өлшемдері кейін үлкейтілген нәтижеден бөлек қалады.\n\nGen-4.5 моделін кинематографиялық тұжырымдамаларға, анимациялық көрнекі идеяларға, B-roll-ға және қысқа көрініс әзірлеуге қолданыңыз. Промптты, қолданылса кіріс суретті, ұзақтықты, режимді және қайтарылған роликті бірге сақтаңыз. Әрекет ретін, камера мінезін, нысан бөлшектерін, қажетсіз монтаждық ауысуларды және керекті кадрлауды тексеріп, планға нысаналы түзету енгізіңіз.",
    "alias_of": null,
    "aliases": [],
    "author": "Runway",
    "available": null,
    "canonical_model": "runway/gen-4.5",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.48",
            "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,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "cb4a8a486aaac9d58ece6322",
        "label": "Бейне конфигурацияларының баға сілтемелері",
        "profiles": [
          {
            "basis": "Көрсетілген конфигурация үшін жарияланған анықтамалық баға. Соңғы төлемдер ақысы есептелген нақты конфигурацияға сай алынады.",
            "dimensions": {
              "conditions": "Бұл баға кілтінде қосымша шарт көрсетілмеген."
            },
            "label": "Бейне бағасы",
            "units": [
              {
                "amount": "0.24",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "runway/gen-4.5",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "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": {
            "all_results": "Иелігіңіздегі әрбір нақты шығыс нәтижесін және онымен қайтарылған өлшенген метадеректерді сақтаңыз.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Бейнеге қол жеткізу мүмкін емес немесе бұл бейне ID мәні табылмады.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Бейнеге қолжетімділікті тексеріңіз. Бар бейне үшін оның бастапқы ашық ID мәнін және сол API кілтін пайдаланыңыз.",
                "type": "not_found_error"
              },
              {
                "condition": "API кілті аутентификациядан өткен есептік жазбаға сәйкес келмейді.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Жібермес бұрын API кілтіңізді және есептік жазбаға қолжетімділікті тексеріңіз.",
                "type": "authentication_error"
              },
              {
                "condition": "Сұрауды оқу мүмкін болмады немесе жүктеп алу индексі жарамсыз.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Сұрау денесін түзетіңіз. Жүктеп алу үшін бастапқы тапсырма қайтарған шығыс индексін таңдаңыз.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Таңдалған бейне конфигурациясының бағасын есептеу мүмкін емес.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Қолдау көрсетілетін бейне конфигурациясын таңдап, түзетілген сұрауды жібермес бұрын оның міндетті параметрлерін толтырыңыз.",
                "type": "price_unavailable"
              },
              {
                "condition": "Кіріс бейне немесе бастапқы жалғастыру тапсырмасы жарамсыз.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Жарамды HTTPS кірістерін пайдаланыңыз. Жалғастыру үшін аяқталған бастапқы бейнеңіздің ашық ID мәнін сол API кілтімен қолданыңыз.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Қолда бар баланс немесе лимиттер қаражатты резервтеуге мүмкіндік бермейді.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Жаңа сұрауды жібермес бұрын қолда бар балансты және лимиттерді тексеріңіз.",
                "type": "billing_error"
              },
              {
                "condition": "Бейнені тексеру, сақтау немесе қызметке қол жеткізу уақытша қолжетімсіз.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Қызметтің қолжетімді болуын күтіңіз. Егер сізде бейне ID мәні бар болса, басқа генерация жасаудың орнына сол бастапқы тапсырманы тексеріңіз.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Бастапқы бейне нәтижесі мен есептелген төлемді тексеру қажет.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Қайтарылған бейне ID мәнін сақтап, сол тапсырманы тексеріңіз. Тексеру жүріп жатқанда оның орнына жаңа генерация сұрауын жібермеңіз.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Бар бейнені жүктеп алу уақытша қолжетімсіз.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Сол бейне тапсырмасын кейінірек тексеріп, оның бар шығыс нәтижесін жүктеп алыңыз. Жаңа генерация бөлек операция жасайды.",
                "type": "server_error"
              },
              {
                "condition": "Бейне мазмұны жарияланбаған.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Бастапқы тапсырманың күйін тексеріңіз. completed күйін хабарлағаннан кейін жүктеп алыңыз; failed күйін хабарласа, оның төлемді тексеру туралы ескертуін орындаңыз.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + бастапқы id + X-Should-Retry:false; бастапқы сұрауды ешқашан қайталамаңыз"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "runway/gen-4.5"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Промптты мәтін түрінде, ал ұзақтықты бүтін секундпен беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Жазбаша промпт."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "runway/gen-4.5"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images — массив. Әр кадр объектісінде type, image_url және frame_type өрістері бар; image_url ішінде url болады. type өрісіне image_url мәнін орнатыңыз. first_frame мәнін қолданыңыз. Әр кадр рөлі ең көбі бір рет кездеседі. Әр кадр үшін жалпыға қолжетімді HTTPS сурет URL мекенжайын беріңіз. Қолдау көрсетілетін ажыратымдылықты таңдаңыз; жақтар арақатынасын қосыңыз немесе тізімдегі өлшемді қолданыңыз.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Жазбаша промпт және алғашқы кадр суреті."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Осы бейненің шығыс тізіміндегі нөлден басталатын орны.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Осы аяқталған бейнені жүктеп алуға арналған қолтаңбасы бар HTTPS URL мекенжайы.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Бастапқы бейне байттарының SHA-256 хэші; қолжетімсіз болса, null.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Бастапқы бейне файлының байтпен өлшенетін көлемі; қолжетімсіз болса, null.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Бейненің миллисекундпен өлшенген ұзақтығы; қолжетімсіз болса, null.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Бейненің пиксельмен өлшенетін ені; қолжетімсіз болса, null.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Бейненің пиксельмен өлшенетін биіктігі; қолжетімсіз болса, null.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Бейне кодегінің идентификаторы; тіркелмесе, null.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Бейнеде аудиожол бар-жоғы; өлшенбесе, null.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Аудио кодегінің идентификаторы; идентификатор тіркелмесе, null.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "иелігіңіздегі мазмұнның қолтаңбасы бар URL мекенжайлары",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "runway/gen-4.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "runway/gen-4.5"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Бұл кілттер әр кадр объектісін сипаттайды; image_url ішінде тек url болады. Тек мәтіндік сұрауда frame_images өрісін қоспаңыз.",
                "content": "Кадр объектілерінің массиві. Әр объектіде type=image_url, ішінде url бар image_url және frame_type өрістері болады. HTTPS сурет URL мекенжайын пайдаланып, frame_type өрісіне first_frame мәнін орнатыңыз. Әр кадр рөлі ең көбі бір рет кездеседі.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "runway/gen-4.5"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.24",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.24",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Бұл бағалау қосымша төлем де, аяқталған генерация үшін белгіленген тұрақты тариф те емес.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Генерацияның болжамды құны",
            "units": [
              {
                "amount": "0.48",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.48",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"runway/gen-4.5\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.24",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.24",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.48",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.48",
                "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": "runway/gen-4.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.24",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.24",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.48",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.48",
            "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": "runway/gen-4.5",
        "request_model_id": "runway/gen-4.5",
        "route_label": "Ultra"
      }
    ],
    "name": "Runway: Gen-4.5",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.48,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.48,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "credit_usd": "0.01",
          "credits_per_second": "12"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.24",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "credit_usd": "0.01",
              "credits_per_second": "12"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "format_class": "prores_or_png_sequence",
          "surcharge_adds_to_model_base": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.10",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "format_class": "prores_or_png_sequence",
              "surcharge_adds_to_model_base": true
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "format_class": "10bit_or_hdr_up_to_4mp",
          "surcharge_adds_to_model_base": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.40",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "format_class": "10bit_or_hdr_up_to_4mp",
              "surcharge_adds_to_model_base": true
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "format_class": "10bit_or_hdr_above_4mp",
          "surcharge_adds_to_model_base": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.80",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "format_class": "10bit_or_hdr_above_4mp",
              "surcharge_adds_to_model_base": true
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.24",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "24",
            "key": "cents_per_second_output",
            "label": "output second",
            "native_amount_usd_per_unit": "0.24",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "runway/gen-4.5",
    "short": "Runway Gen-4.5 көрініс сипаттамасынан немесе қозғалыс нұсқауы берілген суреттен бейне жасайды. Оның 2–10 секундтық роликтері, камераға нақты промпт беруі және мәтіннен/суреттен бейнеге арналған бөлек композиция таңдауы кинематографиялық тұжырымдамаларға, қосымша B-roll кадрларына және анимациялық көріністерге жарайды."
  },
  "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": "Runway Gen-4.5 көрініс сипаттамасынан немесе қозғалыс нұсқауы берілген суреттен бейне жасайды. Оның 2–10 секундтық роликтері, камераға нақты промпт беруі және мәтіннен/суреттен бейнеге арналған бөлек композиция таңдауы кинематографиялық тұжырымдамаларға, қосымша B-roll кадрларына және анимациялық көріністерге жарайды.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "8a1464d565deef6c6497fa9cbfed003e83e95f476753c6929151334c8ca45c17",
    "raw_model_js_projection_sha256": "2280167682e4632d66e57125acbacb4761107b644ac04423803267ac89032cdd",
    "raw_model_json_sha256": "8a1464d565deef6c6497fa9cbfed003e83e95f476753c6929151334c8ca45c17",
    "renderer_sha256": "def3bb6e69c8ddb72f88ec6540bbe55d0e503790f964d84073ecda781b13bedf"
  },
  "sourceRevision": "98ab43eeef06b9e4df444000a2dcd0bc5d928ff8147d3a33b877b1ae57c6be36"
}
