{
  "aboutHtml": "<p>En avdiovizualni rezultat iz večmodalnega opisa</p><p>MiniMax H3 je MiniMaxov vsemodalni video sistem. Besedilo, slike, video in zvok razlaga skupaj, nato pa ustvari video z izvornim stereo zvokom. Proizvajalec ga predstavlja za kratko ustvarjalno delo, kot so vizualni prikazi izdelkov, oglasi, animirani plakati in zasnove filmskih naslovov, kjer so razmerja med referenčnim gradivom enako pomembna kot opis prizora.</p><p>Dokumentirani sistem ustvari video dolžine 4–15 sekund s 24 sličicami na sekundo in stereo zvokom pri 32 kHz. Ustvarjanje H3-Base deluje pri 768p; celoten postopek 2K ta rezultat ponovno ustvari z izvirnim večmodalnim kontekstom. To je več kot običajna sprememba velikosti: druga stopnja ponovno uporabi model in izvorni kontekst za obnovitev drobnih podrobnosti. H3 Max in H3-Context-IR imata ločeni vlogi in omejitve.</p><p>Ustvarjanje z besedilom in s pomočjo sličic</p><p>Vhod samo z besedilom opisuje celotno avdiovizualno časovnico. Prva slika zasidra začetek, zadnja konec, dve sliki pa lahko določita oboje. Pri kadru s prvo sličico začnite s kompozicijo in identiteto, vidno na sliki, nato opišite dogajanje, ki se iz nje razvije. Pri prehodu od prve do zadnje sličice opišite opazno gibanje, ki povezuje obe stanji, namesto da bi ponovili dva nepovezana opisa slik.</p><p>Praktičen opis izdelka lahko določi zaprto embalažo v začetni sličici, roko, ki jo odpre, nežno gibanje kamere in končno stanje, ki ga je treba doseči. V priloženih sličicah ohranite obliko predmeta, postavitev etikete in osvetlitev. Ustvarjanje s sličicami in ustvarjanje z referencami sta ločena vhodna načina; proizvajalčev vmesnik v eni zahtevi ne meša vlog prve in zadnje sličice z vlogami referenčnih medijev.</p><p>Ustvarjanje in urejanje na podlagi referenc</p><p>Referenčni način sprejme besedilo s slikami, video posnetki in zvočnimi posnetki. Označite, kaj prispeva vsak vir: videz lika, lokacijo, gibanje kamere, časovno strukturo izvornega posnetka ali glas. Video, uporabljen samo za premikanje kamere, se razlikuje od videa, ki ga je treba dejansko urediti ali nadaljevati. To razmerje izrecno navedite.</p><p>Proizvajalčev referenčni vodič ločuje opredelitve motivov, povzetek naloge, analizo ohranjanja, podroben opis kadra, celotno zvočno okolje in glasbeno podlago, namenjeno samo občinstvu. Razlikuje ohranjanje vidne vsebine od prenosa lastnosti ali široke slogovne reference. Pri zvoku je kopiranje signala drugačno od sklicevanja na barvo glasu, ritem ali izvedbo. Te vloge ohranite stalne skozi celoten opis.</p><p>Pri prizoru na podlagi referenc priložite sliko lika, kratko referenco gibanja kamere in zvočno referenco glasu, nato opišite, kje naj vsaka vpliva na ciljni kader. Navedite, katere podrobnosti oblačil, okolja ali predmetov morajo ostati prepoznavne. Končni posnetek primerjajte s temi zahtevami, vključno z neprekinjenostjo gibanja in razmerjem med vidnim govorcem ter slišanim glasom.</p><p>Govor, zvok in časovni potek kadrov</p><p>H3 skupaj modelira dialog, fizične zvoke, ambientalno ozadje in glasbo. Kartica modela dokumentira stabilno podporo dialogu v arabščini, kitajščini, angleščini, francoščini, nemščini, italijanščini, japonščini, korejščini, portugalščini, ruščini in španščini; pri drugih jezikih opisuje različno raven podpore. Podajte točne izgovorjene besede in jezik, s stalno identiteto govorca med kadri.</p><p>Proizvajalčevi vodiči za pisanje pozivov uporabljajo angleščino za opisne razdelke, dialog in vidno besedilo pa ohranijo v izvirnem jeziku. Govorjena vsebina uporablja <code>&lt;d&gt;[Language] ...&lt;/d&gt;</code>, identiteta govorca in opis glasu pa sta zunaj bloka. Fizični govor ločite od govora iz ozadja in označite, kdaj replika traja čez rez ali jo prekine konec. Tudi vidno besedilo ohranite natančno. Količino govora prilagodite izbrani dolžini ter izrisane besede in slišano repliko preglejte skupaj.</p><p>Gibanje kamere opišite kot dejanje, vključno z razponom in hitrostjo, kadar sta pomembna. Kadre oštevilčite po vrstnem redu predvajanja in čase rezov ohranite znotraj dolžine videa. Zvoke prizora, kot so koraki ali zapiranje vrat, ločite od glasbene podlage, slišne samo občinstvu. Te izbire olajšajo razlago kratkega načrta kadrov in njegov pregled glede na rezultat.</p><p>Priprava vhodov in številčne omejitve</p><p>Trenutna shema ustvarjanja zahteva neprazno besedilo v vsakem načinu, do 7.000 znakov na besedilni element. Slike so lahko JPG, JPEG, PNG, WebP, HEIC ali HEIF, vsaka do 30 MB, z vsako stranico od 256 do 5.760 pikslov in razmerjem stranic od 0,4 do 2,5. Vhod sličic dovoljuje eno začetno in eno končno sliko; referenčni način do devet referenčnih slik.</p><p>Referenčni video lahko vsebuje do tri posnetke MP4 ali MOV, vsakega dolžine 2–15 sekund in skupaj največ 15 sekund. Posnetek je lahko velik do 50 MB; njegov video kodek je H.264 ali H.265, zvok AAC ali MP3, stranice od 256 do 5.760 pikslov, razmerja od 0,4 do 2,5 in hitrost sličic od 23,976 do 60. Referenčni zvok podpira do tri posnetke WAV ali MP3, vsakega do 15 MB, dolžine 2–15 sekund in skupaj največ 15 sekund. Kartica modela mešane referenčne vhode omejuje na 12 datotek. Dokumentirana omejitev telesa zahteve je 64 MB, ločeno od omejitev posameznih datotek.</p><p>Izberite le reference, ki prispevajo k opisu, in vsak prispevek izrecno pojasnite. Jasen pogled na motiv je uporabnejši kot več nasprotujočih si pogledov brez razlage. Ohranite vrstni red referenc, odrežite nepomembno gradivo brez odstranitve potrebnega konteksta prizora in preverite, ali kratki izvorni posnetki vsebujejo zahtevano dejanje ali glasovno značilnost.</p><p>Oblika izhoda in celoten sistem</p><p>Proizvajalčev vmesnik H3 ponuja 768P in 2K. Ustvarjanje samo iz besedila zahteva konkretno razmerje: 21:9, 16:9, 4:3, 1:1, 3:4 ali 9:16. Ustvarjanje s prvo in zadnjo sličico razmerje stranic prevzame iz vhodne slike; ustvarjanje iz referenc lahko uporablja prilagodljivo ali izrecno razmerje. Celoštevilska dolžina izhoda je 4–15 sekund.</p><p>Kartica modela razlikuje H3-Context-IR, ki razlaga in obogati opis, H3-Base, ki ustvari avdiovizualno vsebino, in H3-Regenerate-2K, ki ustvari rezultat višje ločljivosti. Izdane osnovne kontrolne točke ločujejo naloge s sličicami in vsemodalnimi referencami. Komponenti konteksta in ponovnega ustvarjanja sta ločeni od teh osnovnih uteži, zato samo ime odprte kontrolne točke ne določa vedenja celotnega sistema.</p><p>Proizvajalčev postopek ustvarjanja je asinhron. Njegov vmesnik za poizvedbe o opravilih pridobi opravila iz preteklih sedmih dni. Identiteto opravila hranite, dokler ni vrnjen dejanski video rezultat, nato shranite posnetek, namesto da bi ohranili samo časovno omejen naslov za prenos. Vizualno identiteto, drobno besedilo, interakcije predmetov, govorjeno vsebino in časovno usklajenost zvoka preglejte pri načrtovani velikosti prikaza. Proizvajalec večmodalno razumevanje in drobne vizualne podrobnosti označuje kot področji nadaljnjih izboljšav; podroben opis in primerjava z virom ostajata osrednja za uporaben rezultat.</p>",
  "aboutText": "En avdiovizualni rezultat iz večmodalnega opisa\n\nMiniMax H3 je MiniMaxov vsemodalni video sistem. Besedilo, slike, video in zvok razlaga skupaj, nato pa ustvari video z izvornim stereo zvokom. Proizvajalec ga predstavlja za kratko ustvarjalno delo, kot so vizualni prikazi izdelkov, oglasi, animirani plakati in zasnove filmskih naslovov, kjer so razmerja med referenčnim gradivom enako pomembna kot opis prizora.\n\nDokumentirani sistem ustvari video dolžine 4–15 sekund s 24 sličicami na sekundo in stereo zvokom pri 32 kHz. Ustvarjanje H3-Base deluje pri 768p; celoten postopek 2K ta rezultat ponovno ustvari z izvirnim večmodalnim kontekstom. To je več kot običajna sprememba velikosti: druga stopnja ponovno uporabi model in izvorni kontekst za obnovitev drobnih podrobnosti. H3 Max in H3-Context-IR imata ločeni vlogi in omejitve.\n\nUstvarjanje z besedilom in s pomočjo sličic\n\nVhod samo z besedilom opisuje celotno avdiovizualno časovnico. Prva slika zasidra začetek, zadnja konec, dve sliki pa lahko določita oboje. Pri kadru s prvo sličico začnite s kompozicijo in identiteto, vidno na sliki, nato opišite dogajanje, ki se iz nje razvije. Pri prehodu od prve do zadnje sličice opišite opazno gibanje, ki povezuje obe stanji, namesto da bi ponovili dva nepovezana opisa slik.\n\nPraktičen opis izdelka lahko določi zaprto embalažo v začetni sličici, roko, ki jo odpre, nežno gibanje kamere in končno stanje, ki ga je treba doseči. V priloženih sličicah ohranite obliko predmeta, postavitev etikete in osvetlitev. Ustvarjanje s sličicami in ustvarjanje z referencami sta ločena vhodna načina; proizvajalčev vmesnik v eni zahtevi ne meša vlog prve in zadnje sličice z vlogami referenčnih medijev.\n\nUstvarjanje in urejanje na podlagi referenc\n\nReferenčni način sprejme besedilo s slikami, video posnetki in zvočnimi posnetki. Označite, kaj prispeva vsak vir: videz lika, lokacijo, gibanje kamere, časovno strukturo izvornega posnetka ali glas. Video, uporabljen samo za premikanje kamere, se razlikuje od videa, ki ga je treba dejansko urediti ali nadaljevati. To razmerje izrecno navedite.\n\nProizvajalčev referenčni vodič ločuje opredelitve motivov, povzetek naloge, analizo ohranjanja, podroben opis kadra, celotno zvočno okolje in glasbeno podlago, namenjeno samo občinstvu. Razlikuje ohranjanje vidne vsebine od prenosa lastnosti ali široke slogovne reference. Pri zvoku je kopiranje signala drugačno od sklicevanja na barvo glasu, ritem ali izvedbo. Te vloge ohranite stalne skozi celoten opis.\n\nPri prizoru na podlagi referenc priložite sliko lika, kratko referenco gibanja kamere in zvočno referenco glasu, nato opišite, kje naj vsaka vpliva na ciljni kader. Navedite, katere podrobnosti oblačil, okolja ali predmetov morajo ostati prepoznavne. Končni posnetek primerjajte s temi zahtevami, vključno z neprekinjenostjo gibanja in razmerjem med vidnim govorcem ter slišanim glasom.\n\nGovor, zvok in časovni potek kadrov\n\nH3 skupaj modelira dialog, fizične zvoke, ambientalno ozadje in glasbo. Kartica modela dokumentira stabilno podporo dialogu v arabščini, kitajščini, angleščini, francoščini, nemščini, italijanščini, japonščini, korejščini, portugalščini, ruščini in španščini; pri drugih jezikih opisuje različno raven podpore. Podajte točne izgovorjene besede in jezik, s stalno identiteto govorca med kadri.\n\nProizvajalčevi vodiči za pisanje pozivov uporabljajo angleščino za opisne razdelke, dialog in vidno besedilo pa ohranijo v izvirnem jeziku. Govorjena vsebina uporablja `<d>[Language] ...</d>`, identiteta govorca in opis glasu pa sta zunaj bloka. Fizični govor ločite od govora iz ozadja in označite, kdaj replika traja čez rez ali jo prekine konec. Tudi vidno besedilo ohranite natančno. Količino govora prilagodite izbrani dolžini ter izrisane besede in slišano repliko preglejte skupaj.\n\nGibanje kamere opišite kot dejanje, vključno z razponom in hitrostjo, kadar sta pomembna. Kadre oštevilčite po vrstnem redu predvajanja in čase rezov ohranite znotraj dolžine videa. Zvoke prizora, kot so koraki ali zapiranje vrat, ločite od glasbene podlage, slišne samo občinstvu. Te izbire olajšajo razlago kratkega načrta kadrov in njegov pregled glede na rezultat.\n\nPriprava vhodov in številčne omejitve\n\nTrenutna shema ustvarjanja zahteva neprazno besedilo v vsakem načinu, do 7.000 znakov na besedilni element. Slike so lahko JPG, JPEG, PNG, WebP, HEIC ali HEIF, vsaka do 30 MB, z vsako stranico od 256 do 5.760 pikslov in razmerjem stranic od 0,4 do 2,5. Vhod sličic dovoljuje eno začetno in eno končno sliko; referenčni način do devet referenčnih slik.\n\nReferenčni video lahko vsebuje do tri posnetke MP4 ali MOV, vsakega dolžine 2–15 sekund in skupaj največ 15 sekund. Posnetek je lahko velik do 50 MB; njegov video kodek je H.264 ali H.265, zvok AAC ali MP3, stranice od 256 do 5.760 pikslov, razmerja od 0,4 do 2,5 in hitrost sličic od 23,976 do 60. Referenčni zvok podpira do tri posnetke WAV ali MP3, vsakega do 15 MB, dolžine 2–15 sekund in skupaj največ 15 sekund. Kartica modela mešane referenčne vhode omejuje na 12 datotek. Dokumentirana omejitev telesa zahteve je 64 MB, ločeno od omejitev posameznih datotek.\n\nIzberite le reference, ki prispevajo k opisu, in vsak prispevek izrecno pojasnite. Jasen pogled na motiv je uporabnejši kot več nasprotujočih si pogledov brez razlage. Ohranite vrstni red referenc, odrežite nepomembno gradivo brez odstranitve potrebnega konteksta prizora in preverite, ali kratki izvorni posnetki vsebujejo zahtevano dejanje ali glasovno značilnost.\n\nOblika izhoda in celoten sistem\n\nProizvajalčev vmesnik H3 ponuja 768P in 2K. Ustvarjanje samo iz besedila zahteva konkretno razmerje: 21:9, 16:9, 4:3, 1:1, 3:4 ali 9:16. Ustvarjanje s prvo in zadnjo sličico razmerje stranic prevzame iz vhodne slike; ustvarjanje iz referenc lahko uporablja prilagodljivo ali izrecno razmerje. Celoštevilska dolžina izhoda je 4–15 sekund.\n\nKartica modela razlikuje H3-Context-IR, ki razlaga in obogati opis, H3-Base, ki ustvari avdiovizualno vsebino, in H3-Regenerate-2K, ki ustvari rezultat višje ločljivosti. Izdane osnovne kontrolne točke ločujejo naloge s sličicami in vsemodalnimi referencami. Komponenti konteksta in ponovnega ustvarjanja sta ločeni od teh osnovnih uteži, zato samo ime odprte kontrolne točke ne določa vedenja celotnega sistema.\n\nProizvajalčev postopek ustvarjanja je asinhron. Njegov vmesnik za poizvedbe o opravilih pridobi opravila iz preteklih sedmih dni. Identiteto opravila hranite, dokler ni vrnjen dejanski video rezultat, nato shranite posnetek, namesto da bi ohranili samo časovno omejen naslov za prenos. Vizualno identiteto, drobno besedilo, interakcije predmetov, govorjeno vsebino in časovno usklajenost zvoka preglejte pri načrtovani velikosti prikaza. Proizvajalec večmodalno razumevanje in drobne vizualne podrobnosti označuje kot področji nadaljnjih izboljšav; podroben opis in primerjava z virom ostajata osrednja za uporaben rezultat.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "889e110bd3189840727a15752625203921d1cca062a08b080447923c9cc3091c",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">MiniMax: H3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zapri\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>minimax/hailuo-3</code><button type=\"button\" id=\"copy-id\">Kopiraj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Razdelki kartice modela\"><button type=\"button\" data-card-jump=\"overview\">Začetek</button><button type=\"button\" data-card-jump=\"methods\">Vhodi in metode</button><button type=\"button\" data-card-jump=\"pricing\">Cenik</button><button type=\"button\" data-card-jump=\"examples\">Primeri</button><button type=\"button\" data-card-jump=\"results\">Rezultati</button><button type=\"button\" data-card-jump=\"aliases\">Druga imena</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode 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|minimax%2Fhailuo-3\">Video</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\">Začetek</h3><p class=\"mdesc-full\">MiniMax H3 ustvarja kratke videe z izvornim stereo zvokom iz besedila, slik sličic ali večmodalnih referenc. Podpira ustvarjanje s prvo in zadnjo sličico, urejanje na podlagi referenc ter razmerja gibanja ali glasu, z izhodom dolžine 4–15 sekund in ločenim postopkom ponovnega ustvarjanja v 2K.</p><dl class=\"card-io\" data-card-io><div><dt>Dovoljeni vhodi</dt><dd>Besedilo · Slike · Zvok · Video</dd></div><div><dt>Rezultati</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.</p><div class=\"mabout\" id=\"m-about\"><p>En avdiovizualni rezultat iz večmodalnega opisa</p><p>MiniMax H3 je MiniMaxov vsemodalni video sistem. Besedilo, slike, video in zvok razlaga skupaj, nato pa ustvari video z izvornim stereo zvokom. Proizvajalec ga predstavlja za kratko ustvarjalno delo, kot so vizualni prikazi izdelkov, oglasi, animirani plakati in zasnove filmskih naslovov, kjer so razmerja med referenčnim gradivom enako pomembna kot opis prizora.</p><p>Dokumentirani sistem ustvari video dolžine 4–15 sekund s 24 sličicami na sekundo in stereo zvokom pri 32 kHz. Ustvarjanje H3-Base deluje pri 768p; celoten postopek 2K ta rezultat ponovno ustvari z izvirnim večmodalnim kontekstom. To je več kot običajna sprememba velikosti: druga stopnja ponovno uporabi model in izvorni kontekst za obnovitev drobnih podrobnosti. H3 Max in H3-Context-IR imata ločeni vlogi in omejitve.</p><p>Ustvarjanje z besedilom in s pomočjo sličic</p><p>Vhod samo z besedilom opisuje celotno avdiovizualno časovnico. Prva slika zasidra začetek, zadnja konec, dve sliki pa lahko določita oboje. Pri kadru s prvo sličico začnite s kompozicijo in identiteto, vidno na sliki, nato opišite dogajanje, ki se iz nje razvije. Pri prehodu od prve do zadnje sličice opišite opazno gibanje, ki povezuje obe stanji, namesto da bi ponovili dva nepovezana opisa slik.</p><p>Praktičen opis izdelka lahko določi zaprto embalažo v začetni sličici, roko, ki jo odpre, nežno gibanje kamere in končno stanje, ki ga je treba doseči. V priloženih sličicah ohranite obliko predmeta, postavitev etikete in osvetlitev. Ustvarjanje s sličicami in ustvarjanje z referencami sta ločena vhodna načina; proizvajalčev vmesnik v eni zahtevi ne meša vlog prve in zadnje sličice z vlogami referenčnih medijev.</p><p>Ustvarjanje in urejanje na podlagi referenc</p><p>Referenčni način sprejme besedilo s slikami, video posnetki in zvočnimi posnetki. Označite, kaj prispeva vsak vir: videz lika, lokacijo, gibanje kamere, časovno strukturo izvornega posnetka ali glas. Video, uporabljen samo za premikanje kamere, se razlikuje od videa, ki ga je treba dejansko urediti ali nadaljevati. To razmerje izrecno navedite.</p><p>Proizvajalčev referenčni vodič ločuje opredelitve motivov, povzetek naloge, analizo ohranjanja, podroben opis kadra, celotno zvočno okolje in glasbeno podlago, namenjeno samo občinstvu. Razlikuje ohranjanje vidne vsebine od prenosa lastnosti ali široke slogovne reference. Pri zvoku je kopiranje signala drugačno od sklicevanja na barvo glasu, ritem ali izvedbo. Te vloge ohranite stalne skozi celoten opis.</p><p>Pri prizoru na podlagi referenc priložite sliko lika, kratko referenco gibanja kamere in zvočno referenco glasu, nato opišite, kje naj vsaka vpliva na ciljni kader. Navedite, katere podrobnosti oblačil, okolja ali predmetov morajo ostati prepoznavne. Končni posnetek primerjajte s temi zahtevami, vključno z neprekinjenostjo gibanja in razmerjem med vidnim govorcem ter slišanim glasom.</p><p>Govor, zvok in časovni potek kadrov</p><p>H3 skupaj modelira dialog, fizične zvoke, ambientalno ozadje in glasbo. Kartica modela dokumentira stabilno podporo dialogu v arabščini, kitajščini, angleščini, francoščini, nemščini, italijanščini, japonščini, korejščini, portugalščini, ruščini in španščini; pri drugih jezikih opisuje različno raven podpore. Podajte točne izgovorjene besede in jezik, s stalno identiteto govorca med kadri.</p><p>Proizvajalčevi vodiči za pisanje pozivov uporabljajo angleščino za opisne razdelke, dialog in vidno besedilo pa ohranijo v izvirnem jeziku. Govorjena vsebina uporablja <code>&lt;d&gt;[Language] ...&lt;/d&gt;</code>, identiteta govorca in opis glasu pa sta zunaj bloka. Fizični govor ločite od govora iz ozadja in označite, kdaj replika traja čez rez ali jo prekine konec. Tudi vidno besedilo ohranite natančno. Količino govora prilagodite izbrani dolžini ter izrisane besede in slišano repliko preglejte skupaj.</p><p>Gibanje kamere opišite kot dejanje, vključno z razponom in hitrostjo, kadar sta pomembna. Kadre oštevilčite po vrstnem redu predvajanja in čase rezov ohranite znotraj dolžine videa. Zvoke prizora, kot so koraki ali zapiranje vrat, ločite od glasbene podlage, slišne samo občinstvu. Te izbire olajšajo razlago kratkega načrta kadrov in njegov pregled glede na rezultat.</p><p>Priprava vhodov in številčne omejitve</p><p>Trenutna shema ustvarjanja zahteva neprazno besedilo v vsakem načinu, do 7.000 znakov na besedilni element. Slike so lahko JPG, JPEG, PNG, WebP, HEIC ali HEIF, vsaka do 30 MB, z vsako stranico od 256 do 5.760 pikslov in razmerjem stranic od 0,4 do 2,5. Vhod sličic dovoljuje eno začetno in eno končno sliko; referenčni način do devet referenčnih slik.</p><p>Referenčni video lahko vsebuje do tri posnetke MP4 ali MOV, vsakega dolžine 2–15 sekund in skupaj največ 15 sekund. Posnetek je lahko velik do 50 MB; njegov video kodek je H.264 ali H.265, zvok AAC ali MP3, stranice od 256 do 5.760 pikslov, razmerja od 0,4 do 2,5 in hitrost sličic od 23,976 do 60. Referenčni zvok podpira do tri posnetke WAV ali MP3, vsakega do 15 MB, dolžine 2–15 sekund in skupaj največ 15 sekund. Kartica modela mešane referenčne vhode omejuje na 12 datotek. Dokumentirana omejitev telesa zahteve je 64 MB, ločeno od omejitev posameznih datotek.</p><p>Izberite le reference, ki prispevajo k opisu, in vsak prispevek izrecno pojasnite. Jasen pogled na motiv je uporabnejši kot več nasprotujočih si pogledov brez razlage. Ohranite vrstni red referenc, odrežite nepomembno gradivo brez odstranitve potrebnega konteksta prizora in preverite, ali kratki izvorni posnetki vsebujejo zahtevano dejanje ali glasovno značilnost.</p><p>Oblika izhoda in celoten sistem</p><p>Proizvajalčev vmesnik H3 ponuja 768P in 2K. Ustvarjanje samo iz besedila zahteva konkretno razmerje: 21:9, 16:9, 4:3, 1:1, 3:4 ali 9:16. Ustvarjanje s prvo in zadnjo sličico razmerje stranic prevzame iz vhodne slike; ustvarjanje iz referenc lahko uporablja prilagodljivo ali izrecno razmerje. Celoštevilska dolžina izhoda je 4–15 sekund.</p><p>Kartica modela razlikuje H3-Context-IR, ki razlaga in obogati opis, H3-Base, ki ustvari avdiovizualno vsebino, in H3-Regenerate-2K, ki ustvari rezultat višje ločljivosti. Izdane osnovne kontrolne točke ločujejo naloge s sličicami in vsemodalnimi referencami. Komponenti konteksta in ponovnega ustvarjanja sta ločeni od teh osnovnih uteži, zato samo ime odprte kontrolne točke ne določa vedenja celotnega sistema.</p><p>Proizvajalčev postopek ustvarjanja je asinhron. Njegov vmesnik za poizvedbe o opravilih pridobi opravila iz preteklih sedmih dni. Identiteto opravila hranite, dokler ni vrnjen dejanski video rezultat, nato shranite posnetek, namesto da bi ohranili samo časovno omejen naslov za prenos. Vizualno identiteto, drobno besedilo, interakcije predmetov, govorjeno vsebino in časovno usklajenost zvoka preglejte pri načrtovani velikosti prikaza. Proizvajalec večmodalno razumevanje in drobne vizualne podrobnosti označuje kot področji nadaljnjih izboljšav; podroben opis in primerjava z virom ostajata osrednja za uporaben rezultat.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Na voljo v Ailoot · vhodi in metode</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Vhod</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>Izhod</dt><dd><code>video</code></dd></div><div><dt>Izhodni format</dt><dd>izvirni bajti MP4; brez normalizacije ali prekodiranja</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Zahteva</th><th>Vrednosti in omejitve</th><th>Privzeto</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>minimax/hailuo-3</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>integer</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Najmanj: 1</div><div>Največ: 600</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>2K</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>21:9, 16:9, 4:3, 1:1, 3:4, 9:16</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>boolean</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>false, true</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>array</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanjše število elementov: 1</div><div>Največ elementov: 2</div><div>Vhodna vsebina: Polje objektov sličic. Vsak objekt vsebuje type=image_url, image_url z url in frame_type. Uporabite URL slike HTTPS in nastavite frame_type na first_frame ali last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat.</div><div>Natančni ključi: type, image_url, frame_type</div><div>Pogoji: Ti ključi opisujejo vsak objekt sličice; image_url vsebuje samo url. Pri zahtevi samo z besedilom izpustite frame_images.</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>array</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Vzorec: ^https://</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>object</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacije vhodnih gradiv</summary><p class=\"note-s\"><b>Iz besedila v video</b> · Pisni poziv. · Obvezno: model, prompt, duration</p><p class=\"note-s\"><code>Podajte prompt kot besedilo in duration v celih sekundah. Izberite podprto ločljivost in po potrebi razmerje stranic.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Vrsta: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Vrsta: string · Največ bajtov UTF-8: 10.000 · Zahtevan je vsaj en znak, ki ni beli znak: Da</p><p class=\"note-s\"><b>Iz slike v video</b> · Pisni poziv in slika prve sličice. · Obvezno: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images je polje. Vsak objekt sličice vsebuje type, image_url in frame_type; image_url vsebuje url. Nastavite type na image_url. Uporabite first_frame z neobveznim last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat. Za vsako sličico podajte javni URL slike HTTPS. V eni zahtevi uporabite slike sličic ali slikovne reference; obojega ne združujte. Izberite podprto ločljivost in po potrebi razmerje stranic.</code></p><p class=\"note-s\">Natančni ključi: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Vrsta: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Vrsta: string · Največ bajtov UTF-8: 10.000 · Zahtevan je vsaj en znak, ki ni beli znak: Da</p><p class=\"note-s\"><b>Reference to video</b> · Pisni poziv in podprte slikovne, video ter zvočne reference. · Obvezno: model, prompt, duration, input_references</p><p class=\"note-s\"><code>input_references je polje objektov. Nastavite type na image_url, video_url, audio_url in uporabite ustrezno istoimensko polje, ki vsebuje url. Uporabite javne URL-je HTTPS. Za izbiro referenčnega načina izpustite frame_images. Ocena vključuje prikazano postavko na sliko samo za slikovne reference po prvih petih. Končni znesek sledi dejansko obračunani konfiguraciji. Ne združujte slikovnih referenc s slikami sličic. Izberite podprto ločljivost in po potrebi razmerje stranic.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Vrsta: string · minimax/hailuo-3</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Vrsta: string · Največ bajtov UTF-8: 10.000 · Zahtevan je vsaj en znak, ki ni beli znak: Da</p></details><details class=\"note-s\" data-method-contract><summary>Parametri in življenjski cikel metode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Življenjski cikel: <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\">Cenik</h3><div class=\"card-result-process\" data-billing-basis><h5>Kako se izračuna končni strošek</h5><p class=\"note-s\">Prikazane cene so namenjene oceni stroškov pred generiranjem. Končni znesek se izračuna na podlagi stroška, zabeleženega za izvirno generiranje. Izmerjeno trajanje izhoda in napovedane količine niso končna obračunska količina.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.</p><dl data-price-conditions><dt>Hitri način</dt><dd>Ni navedeno <span class=\"note-s\">Ko je izbran hitri način</span></dd><dt>Način flex</dt><dd>Ni navedeno <span class=\"note-s\">Ko je izbran način flex</span></dd><dt>Najvišja raven razmišljanja</dt><dd>Ni navedeno <span class=\"note-s\">Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ocenjene cene za primerjavo</h4><h4>Cene po nastavitvah</h4><p class=\"note-s\">Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Nastavitev</th><th>Cenovna lestvica</th><th>Predvidena količina</th><th>Obračunska enota</th><th>Obračunski pogoji</th><th>Strošek</th></tr></thead><tbody><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Osnovne cene žetonov</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>Osnovna cena</td><td data-cell-label=\"Predvidena količina\"><span class=\"card-cell-label\">Predvidena količina</span>—</td><td data-cell-label=\"Obračunska enota\"><span class=\"card-cell-label\">Obračunska enota</span>—</td><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>—</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod · Vhodni žetoni · Ocena samo za primerjavo</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Izhod · Izhodni žetoni · Ocena samo za primerjavo</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Branje predpomnilnika · Ocena samo za primerjavo</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik · Ocena samo za primerjavo</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik, 1 ura · Ocena samo za primerjavo</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div></td></tr><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Cena videa</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>—</td><td data-cell-label=\"Predvidena količina\"><span class=\"card-cell-label\">Predvidena količina</span>—</td><td data-cell-label=\"Obračunska enota\"><span class=\"card-cell-label\">Obračunska enota</span>na sekundo videa</td><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>V tem cenovnem ključu ni naveden noben dodaten pogoj.</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Izhod · Cena videa · Ocena samo za primerjavo</span> <b>$0.26</b> <span class=\"price-unit\">na sekundo videa</span></div></td></tr><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>referenčna slika</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>—</td><td data-cell-label=\"Predvidena količina\"><span class=\"card-cell-label\">Predvidena količina</span>—</td><td data-cell-label=\"Obračunska enota\"><span class=\"card-cell-label\">Obračunska enota</span>na referenčno sliko</td><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>—</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod · referenčna slika · Ocena samo za primerjavo</span> <b>$0.08</b> <span class=\"price-unit\">na referenčno sliko</span></div></td></tr><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Ocenjeni strošek ustvarjanja</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>—</td><td data-cell-label=\"Predvidena količina\"><span class=\"card-cell-label\">Predvidena količina</span>ocena za eno generiranje</td><td data-cell-label=\"Obračunska enota\"><span class=\"card-cell-label\">Obračunska enota</span>—</td><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>—</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Izhod · Ocenjeni stroški ustvarjanja · Ocena samo za primerjavo</span> <b>$1.3</b> <span class=\"price-unit\">ocena pred ustvarjanjem</span></div><p class=\"note-s\">Ta ocena ni dodatno plačilo ali fiksna cena za dokončano generiranje.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. <a href=\"/docs/sl/billing/reserve/\">Kako delujeta rezervacija in obračun →</a></p><div data-declared-reference-pricing><h4>Podrobnosti referenčne tarife</h4><p class=\"note-s\">Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Cenovne reference konfiguracij videa</summary><h4>Cene po nastavitvah</h4><p class=\"note-s\">Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Nastavitev</th><th>Obračunski pogoji</th><th>Strošek</th></tr></thead><tbody><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Cena videa</th><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>V tem cenovnem ključu ni naveden noben dodaten pogoj.</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Izhod · Cena videa</span> <b>$0.26</b> <span class=\"price-unit\">na sekundo videa</span></div><p class=\"note-s\">Objavljena referenčna cena za prikazano konfiguracijo. Končni zneski sledijo dejansko obračunani konfiguraciji.</p></td></tr><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Referenčne slike po prvih petih</th><td data-cell-label=\"Obračunski pogoji\"><span class=\"card-cell-label\">Obračunski pogoji</span>V tem cenovnem ključu ni naveden noben dodaten pogoj.</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod · Referenčne slike po prvih petih</span> <b>$0.08</b> <span class=\"price-unit\">na sliko</span></div><p class=\"note-s\">Prvih pet referenčnih slik je brezplačnih; navedena cena na sliko velja po prvih petih. Objavljena cenovna referenca za prikazano konfiguracijo. Končni zneski sledijo dejansko obračunani konfiguraciji.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Primeri zahtev</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1866-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1866-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · ustvarite videoposnetek</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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-1866-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1866-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;minimax/hailuo-3&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;2K&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\">Prejmi in shrani rezultate</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">podpisani URL-ji vsebine v vaši lasti</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>Preveri stanje opravila</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1867-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1867-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET stanje izvirne operacije</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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-1867-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1867-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>Branje druge vsebine</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1868-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1868-panel-0\" aria-selected=\"true\" tabindex=\"0\">Shrani vsak dokončan izhod, ki vam pripada</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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-1868-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1868-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>Ohrani vse dokončane rezultate</h5><p class=\"note-s\">Shranite vsak dokončan video ali vrnjeno datoteko; pridobite vsebino z vsake dejansko vrnjene URL gradiva.</p><p class=\"note-s\">Ohranite vsak dejanski izhod v vaši lasti in njegove vrnjene izmerjene metapodatke.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Če je treba preveriti izvirni odgovor</h5><p class=\"note-s\">503 result_pending_check + prvotni id + X-Should-Retry:false; prvotne zahteve nikoli ne ponovite</p></div><details class=\"card-about\" data-output-fields><summary>Polja odgovora</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Pomen</th></tr></thead><tbody><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Položaj tega videa na seznamu izhodov, štet od nič.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Podpisani URL HTTPS za prenos tega dokončanega videa.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Izvleček SHA-256 izvirnih video bajtov; null, če ni na voljo.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Velikost izvirne video datoteke v bajtih; null, če ni na voljo.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Izmerjeno trajanje videa v milisekundah; null, če ni na voljo.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Širina videa v slikovnih pikah; null, če ni na voljo.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Višina videa v slikovnih pikah; null, če ni na voljo.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Identifikator video kodeka; null, če ni zabeležen.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>boolean | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Ali video vsebuje zvočno sled; null, če ni izmerjeno.</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string | null</td><td data-cell-label=\"Pomen\"><span class=\"card-cell-label\">Pomen</span>Identifikator zvočnega kodeka; null, kadar identifikator ni zabeležen.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Napake in naslednji koraki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odgovor</th><th>Pogoj</th><th>Naslednji korak</th></tr></thead><tbody><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Dostop do videa ni na voljo ali ta ID videa ni bil najden.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Preverite dostop do videa. Za obstoječi video uporabite njegov prvotni javni ID in isti ključ API.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Ključ API se ne ujema z overjenim računom.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Pred oddajo preverite svoj ključ API in dostop do računa.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Zahteve ni bilo mogoče prebrati ali je indeks prenosa neveljaven.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Popravite telo zahteve. Pri prenosu izberite indeks izhoda, ki ga je vrnilo prvotno opravilo.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Izbrane video konfiguracije ni mogoče ovrednotiti.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Izberite podprto konfiguracijo videa in izpolnite njene obvezne možnosti, preden oddate popravljeno zahtevo.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Video vhod ali prvotno nadaljevalno opravilo ni veljavno.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Uporabite veljavne vhode HTTPS. Za nadaljevanje uporabite javni ID svojega dokončanega prvotnega videa z istim ključem API.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>402 · <code>billing_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Razpoložljivo dobroimetje ali omejitve ne omogočajo rezervacije.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Preden pošljete novo zahtevo, preverite razpoložljivo dobroimetje in omejitve.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>503 · <code>server_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Preverjanje videa, shramba ali dostop do storitve začasno ni na voljo.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Počakajte, da bo storitev na voljo. Če že imate ID videa, preverite to prvotno opravilo, namesto da ustvarite novo generacijo.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Prvotni video rezultat in zaračunani znesek je treba preveriti.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Ohranite vrnjeni ID videa in preverjajte to opravilo. Med preverjanjem ne pošljite nadomestne zahteve za ustvarjanje.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Prenos obstoječega videa začasno ni na voljo.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Pozneje preverite isto video opravilo in prenesite njegov obstoječi izhod. Novo ustvarjanje ustvari ločeno operacijo.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Video vsebina ni objavljena.</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Preverite stanje prvotnega opravila. Prenesite, ko sporoči completed; če sporoči failed, upoštevajte njegovo obvestilo o preverjanju zaračunanega zneska.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Druga imena</h3><h4>Druga imena modelov</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=minimax%2Fhailuo-3&amp;route=Ultra&amp;caller=minimax%2Fhailuo-3&amp;fmt=videos\"><code>minimax/hailuo-3</code></a></span></p><h4>Druga imena poti metod</h4><p class=\"note-s\">Uporabite zgoraj navedene poti metod.</p><h4>Povezani ID-ji za klic</h4><p class=\"note-s\"><a href=\"#m=minimax%2Fhailuo-3&amp;route=Ultra&amp;caller=minimax%2Fhailuo-3&amp;fmt=videos\"><code>minimax/hailuo-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "minimax/hailuo-3",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|minimax%2Fhailuo-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Prikazane cene so namenjene oceni stroškov pred generiranjem. Končni znesek se izračuna na podlagi stroška, zabeleženega za izvirno generiranje. Izmerjeno trajanje izhoda in napovedane količine niso končna obračunska količina.",
          "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": "Ohranite vsak dejanski izhod v vaši lasti in njegove vrnjene izmerjene metapodatke.",
            "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": "Dostop do videa ni na voljo ali ta ID videa ni bil najden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Preverite dostop do videa. Za obstoječi video uporabite njegov prvotni javni ID in isti ključ API.",
                "type": "not_found_error"
              },
              {
                "condition": "Ključ API se ne ujema z overjenim računom.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Pred oddajo preverite svoj ključ API in dostop do računa.",
                "type": "authentication_error"
              },
              {
                "condition": "Zahteve ni bilo mogoče prebrati ali je indeks prenosa neveljaven.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Popravite telo zahteve. Pri prenosu izberite indeks izhoda, ki ga je vrnilo prvotno opravilo.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Izbrane video konfiguracije ni mogoče ovrednotiti.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Izberite podprto konfiguracijo videa in izpolnite njene obvezne možnosti, preden oddate popravljeno zahtevo.",
                "type": "price_unavailable"
              },
              {
                "condition": "Video vhod ali prvotno nadaljevalno opravilo ni veljavno.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Uporabite veljavne vhode HTTPS. Za nadaljevanje uporabite javni ID svojega dokončanega prvotnega videa z istim ključem API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Razpoložljivo dobroimetje ali omejitve ne omogočajo rezervacije.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Preden pošljete novo zahtevo, preverite razpoložljivo dobroimetje in omejitve.",
                "type": "billing_error"
              },
              {
                "condition": "Preverjanje videa, shramba ali dostop do storitve začasno ni na voljo.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Počakajte, da bo storitev na voljo. Če že imate ID videa, preverite to prvotno opravilo, namesto da ustvarite novo generacijo.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Prvotni video rezultat in zaračunani znesek je treba preveriti.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ohranite vrnjeni ID videa in preverjajte to opravilo. Med preverjanjem ne pošljite nadomestne zahteve za ustvarjanje.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Prenos obstoječega videa začasno ni na voljo.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Pozneje preverite isto video opravilo in prenesite njegov obstoječi izhod. Novo ustvarjanje ustvari ločeno operacijo.",
                "type": "server_error"
              },
              {
                "condition": "Video vsebina ni objavljena.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Preverite stanje prvotnega opravila. Prenesite, ko sporoči completed; če sporoči failed, upoštevajte njegovo obvestilo o preverjanju zaračunanega zneska.",
                "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 + prvotni id + X-Should-Retry:false; prvotne zahteve nikoli ne ponovite"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Podajte prompt kot besedilo in duration v celih sekundah. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Pisni poziv."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images je polje. Vsak objekt sličice vsebuje type, image_url in frame_type; image_url vsebuje url. Nastavite type na image_url. Uporabite first_frame z neobveznim last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat. Za vsako sličico podajte javni URL slike HTTPS. V eni zahtevi uporabite slike sličic ali slikovne reference; obojega ne združujte. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Pisni poziv in slika prve sličice."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references je polje objektov. Nastavite type na image_url, video_url, audio_url in uporabite ustrezno istoimensko polje, ki vsebuje url. Uporabite javne URL-je HTTPS. Za izbiro referenčnega načina izpustite frame_images. Ocena vključuje prikazano postavko na sliko samo za slikovne reference po prvih petih. Končni znesek sledi dejansko obračunani konfiguraciji. Ne združujte slikovnih referenc s slikami sličic. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Pisni poziv in podprte slikovne, video ter zvočne reference."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Položaj tega videa na seznamu izhodov, štet od nič.",
                  "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": "Podpisani URL HTTPS za prenos tega dokončanega videa.",
                  "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": "Izvleček SHA-256 izvirnih video bajtov; null, če ni na voljo.",
                  "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": "Velikost izvirne video datoteke v bajtih; null, če ni na voljo.",
                  "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": "Izmerjeno trajanje videa v milisekundah; null, če ni na voljo.",
                  "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": "Širina videa v slikovnih pikah; null, če ni na voljo.",
                  "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": "Višina videa v slikovnih pikah; null, če ni na voljo.",
                  "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": "Identifikator video kodeka; null, če ni zabeležen.",
                  "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": "Ali video vsebuje zvočno sled; null, če ni izmerjeno.",
                  "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": "Identifikator zvočnega kodeka; null, kadar identifikator ni zabeležen.",
                  "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": "podpisani URL-ji vsebine v vaši lasti",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "minimax/hailuo-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "minimax/hailuo-3"
                },
                "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": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Ti ključi opisujejo vsak objekt sličice; image_url vsebuje samo url. Pri zahtevi samo z besedilom izpustite frame_images.",
                "content": "Polje objektov sličic. Vsak objekt vsebuje type=image_url, image_url z url in frame_type. Uporabite URL slike HTTPS in nastavite frame_type na first_frame ali last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_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"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": 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": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "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": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_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"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "minimax/hailuo-3"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "2K"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "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.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "Ta ocena ni dodatno plačilo ali fiksna cena za dokončano generiranje.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Ocenjeni strošek ustvarjanja",
            "units": [
              {
                "amount": "1.3",
                "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": "1.3",
                "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\":\"minimax/hailuo-3\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"2K\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "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.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "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": "1.3",
                "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": "1.3",
                "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": "minimax/hailuo-3",
        "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.26",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.26",
            "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.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_images"
          },
          {
            "amount": "1.3",
            "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": "1.3",
            "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": "minimax/hailuo-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "db4d496dc22919ee3874fc8a6805b33526ec5f7f83c61d7ede3040e418c5e14f",
    "input_html_sha256": "928576f7a85402cfad348ab69dee8dae18b0359e5e6d88d56433be2206f577a1",
    "private_audit_sha256": "fae14a8bf43da22cc6bc13aaa83a5bb1672611f0ce978100ea905b6702cc2414",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sl/minimax-hailuo-3/",
    "description": "MiniMax H3 ustvarja kratke videe z izvornim stereo zvokom iz besedila, slik sličic ali večmodalnih referenc. Podpira ustvarjanje s prvo in zadnjo sličico, urejanje na podlagi referenc ter razmerja gibanja ali glasu, z izhodom dolžine 4–15 sekund in ločenim postopkom ponovnega ustvarjanja v 2K.",
    "locale": "sl",
    "md_url": "https://ailoot.ai/models/sl/minimax-hailuo-3/index.md",
    "title": "MiniMax: H3 — Ailoot",
    "url": "https://ailoot.ai/models/sl/minimax-hailuo-3/"
  },
  "rawModel": {
    "about": "En avdiovizualni rezultat iz večmodalnega opisa\n\nMiniMax H3 je MiniMaxov vsemodalni video sistem. Besedilo, slike, video in zvok razlaga skupaj, nato pa ustvari video z izvornim stereo zvokom. Proizvajalec ga predstavlja za kratko ustvarjalno delo, kot so vizualni prikazi izdelkov, oglasi, animirani plakati in zasnove filmskih naslovov, kjer so razmerja med referenčnim gradivom enako pomembna kot opis prizora.\n\nDokumentirani sistem ustvari video dolžine 4–15 sekund s 24 sličicami na sekundo in stereo zvokom pri 32 kHz. Ustvarjanje H3-Base deluje pri 768p; celoten postopek 2K ta rezultat ponovno ustvari z izvirnim večmodalnim kontekstom. To je več kot običajna sprememba velikosti: druga stopnja ponovno uporabi model in izvorni kontekst za obnovitev drobnih podrobnosti. H3 Max in H3-Context-IR imata ločeni vlogi in omejitve.\n\nUstvarjanje z besedilom in s pomočjo sličic\n\nVhod samo z besedilom opisuje celotno avdiovizualno časovnico. Prva slika zasidra začetek, zadnja konec, dve sliki pa lahko določita oboje. Pri kadru s prvo sličico začnite s kompozicijo in identiteto, vidno na sliki, nato opišite dogajanje, ki se iz nje razvije. Pri prehodu od prve do zadnje sličice opišite opazno gibanje, ki povezuje obe stanji, namesto da bi ponovili dva nepovezana opisa slik.\n\nPraktičen opis izdelka lahko določi zaprto embalažo v začetni sličici, roko, ki jo odpre, nežno gibanje kamere in končno stanje, ki ga je treba doseči. V priloženih sličicah ohranite obliko predmeta, postavitev etikete in osvetlitev. Ustvarjanje s sličicami in ustvarjanje z referencami sta ločena vhodna načina; proizvajalčev vmesnik v eni zahtevi ne meša vlog prve in zadnje sličice z vlogami referenčnih medijev.\n\nUstvarjanje in urejanje na podlagi referenc\n\nReferenčni način sprejme besedilo s slikami, video posnetki in zvočnimi posnetki. Označite, kaj prispeva vsak vir: videz lika, lokacijo, gibanje kamere, časovno strukturo izvornega posnetka ali glas. Video, uporabljen samo za premikanje kamere, se razlikuje od videa, ki ga je treba dejansko urediti ali nadaljevati. To razmerje izrecno navedite.\n\nProizvajalčev referenčni vodič ločuje opredelitve motivov, povzetek naloge, analizo ohranjanja, podroben opis kadra, celotno zvočno okolje in glasbeno podlago, namenjeno samo občinstvu. Razlikuje ohranjanje vidne vsebine od prenosa lastnosti ali široke slogovne reference. Pri zvoku je kopiranje signala drugačno od sklicevanja na barvo glasu, ritem ali izvedbo. Te vloge ohranite stalne skozi celoten opis.\n\nPri prizoru na podlagi referenc priložite sliko lika, kratko referenco gibanja kamere in zvočno referenco glasu, nato opišite, kje naj vsaka vpliva na ciljni kader. Navedite, katere podrobnosti oblačil, okolja ali predmetov morajo ostati prepoznavne. Končni posnetek primerjajte s temi zahtevami, vključno z neprekinjenostjo gibanja in razmerjem med vidnim govorcem ter slišanim glasom.\n\nGovor, zvok in časovni potek kadrov\n\nH3 skupaj modelira dialog, fizične zvoke, ambientalno ozadje in glasbo. Kartica modela dokumentira stabilno podporo dialogu v arabščini, kitajščini, angleščini, francoščini, nemščini, italijanščini, japonščini, korejščini, portugalščini, ruščini in španščini; pri drugih jezikih opisuje različno raven podpore. Podajte točne izgovorjene besede in jezik, s stalno identiteto govorca med kadri.\n\nProizvajalčevi vodiči za pisanje pozivov uporabljajo angleščino za opisne razdelke, dialog in vidno besedilo pa ohranijo v izvirnem jeziku. Govorjena vsebina uporablja `<d>[Language] ...</d>`, identiteta govorca in opis glasu pa sta zunaj bloka. Fizični govor ločite od govora iz ozadja in označite, kdaj replika traja čez rez ali jo prekine konec. Tudi vidno besedilo ohranite natančno. Količino govora prilagodite izbrani dolžini ter izrisane besede in slišano repliko preglejte skupaj.\n\nGibanje kamere opišite kot dejanje, vključno z razponom in hitrostjo, kadar sta pomembna. Kadre oštevilčite po vrstnem redu predvajanja in čase rezov ohranite znotraj dolžine videa. Zvoke prizora, kot so koraki ali zapiranje vrat, ločite od glasbene podlage, slišne samo občinstvu. Te izbire olajšajo razlago kratkega načrta kadrov in njegov pregled glede na rezultat.\n\nPriprava vhodov in številčne omejitve\n\nTrenutna shema ustvarjanja zahteva neprazno besedilo v vsakem načinu, do 7.000 znakov na besedilni element. Slike so lahko JPG, JPEG, PNG, WebP, HEIC ali HEIF, vsaka do 30 MB, z vsako stranico od 256 do 5.760 pikslov in razmerjem stranic od 0,4 do 2,5. Vhod sličic dovoljuje eno začetno in eno končno sliko; referenčni način do devet referenčnih slik.\n\nReferenčni video lahko vsebuje do tri posnetke MP4 ali MOV, vsakega dolžine 2–15 sekund in skupaj največ 15 sekund. Posnetek je lahko velik do 50 MB; njegov video kodek je H.264 ali H.265, zvok AAC ali MP3, stranice od 256 do 5.760 pikslov, razmerja od 0,4 do 2,5 in hitrost sličic od 23,976 do 60. Referenčni zvok podpira do tri posnetke WAV ali MP3, vsakega do 15 MB, dolžine 2–15 sekund in skupaj največ 15 sekund. Kartica modela mešane referenčne vhode omejuje na 12 datotek. Dokumentirana omejitev telesa zahteve je 64 MB, ločeno od omejitev posameznih datotek.\n\nIzberite le reference, ki prispevajo k opisu, in vsak prispevek izrecno pojasnite. Jasen pogled na motiv je uporabnejši kot več nasprotujočih si pogledov brez razlage. Ohranite vrstni red referenc, odrežite nepomembno gradivo brez odstranitve potrebnega konteksta prizora in preverite, ali kratki izvorni posnetki vsebujejo zahtevano dejanje ali glasovno značilnost.\n\nOblika izhoda in celoten sistem\n\nProizvajalčev vmesnik H3 ponuja 768P in 2K. Ustvarjanje samo iz besedila zahteva konkretno razmerje: 21:9, 16:9, 4:3, 1:1, 3:4 ali 9:16. Ustvarjanje s prvo in zadnjo sličico razmerje stranic prevzame iz vhodne slike; ustvarjanje iz referenc lahko uporablja prilagodljivo ali izrecno razmerje. Celoštevilska dolžina izhoda je 4–15 sekund.\n\nKartica modela razlikuje H3-Context-IR, ki razlaga in obogati opis, H3-Base, ki ustvari avdiovizualno vsebino, in H3-Regenerate-2K, ki ustvari rezultat višje ločljivosti. Izdane osnovne kontrolne točke ločujejo naloge s sličicami in vsemodalnimi referencami. Komponenti konteksta in ponovnega ustvarjanja sta ločeni od teh osnovnih uteži, zato samo ime odprte kontrolne točke ne določa vedenja celotnega sistema.\n\nProizvajalčev postopek ustvarjanja je asinhron. Njegov vmesnik za poizvedbe o opravilih pridobi opravila iz preteklih sedmih dni. Identiteto opravila hranite, dokler ni vrnjen dejanski video rezultat, nato shranite posnetek, namesto da bi ohranili samo časovno omejen naslov za prenos. Vizualno identiteto, drobno besedilo, interakcije predmetov, govorjeno vsebino in časovno usklajenost zvoka preglejte pri načrtovani velikosti prikaza. Proizvajalec večmodalno razumevanje in drobne vizualne podrobnosti označuje kot področji nadaljnjih izboljšav; podroben opis in primerjava z virom ostajata osrednja za uporaben rezultat.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "available": null,
    "canonical_model": "minimax/hailuo-3",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.3",
            "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": "1.3",
            "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": "Celoten cenik konfiguracije je v podrobnostih."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ffcc346d33bca9e66b22f181",
        "label": "Cenovne reference konfiguracij videa",
        "profiles": [
          {
            "basis": "Objavljena referenčna cena za prikazano konfiguracijo. Končni zneski sledijo dejansko obračunani konfiguraciji.",
            "dimensions": {
              "conditions": "V tem cenovnem ključu ni naveden noben dodaten pogoj."
            },
            "label": "Cena videa",
            "units": [
              {
                "amount": "0.26",
                "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"
              }
            ]
          },
          {
            "basis": "Prvih pet referenčnih slik je brezplačnih; navedena cena na sliko velja po prvih petih. Objavljena cenovna referenca za prikazano konfiguracijo. Končni zneski sledijo dejansko obračunani konfiguraciji.",
            "dimensions": {
              "conditions": "V tem cenovnem ključu ni naveden noben dodaten pogoj."
            },
            "label": "Referenčne slike po prvih petih",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_image",
                "billing_input": false,
                "key": "input_image",
                "label": "Reference images after the first five",
                "public_unit_label": "per image",
                "quantity": 1,
                "rate_role": "typed_video_image_reference",
                "side": "in",
                "unit": "image"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "minimax/hailuo-3",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Prikazane cene so namenjene oceni stroškov pred generiranjem. Končni znesek se izračuna na podlagi stroška, zabeleženega za izvirno generiranje. Izmerjeno trajanje izhoda in napovedane količine niso končna obračunska količina.",
          "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": "Ohranite vsak dejanski izhod v vaši lasti in njegove vrnjene izmerjene metapodatke.",
            "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": "Dostop do videa ni na voljo ali ta ID videa ni bil najden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Preverite dostop do videa. Za obstoječi video uporabite njegov prvotni javni ID in isti ključ API.",
                "type": "not_found_error"
              },
              {
                "condition": "Ključ API se ne ujema z overjenim računom.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Pred oddajo preverite svoj ključ API in dostop do računa.",
                "type": "authentication_error"
              },
              {
                "condition": "Zahteve ni bilo mogoče prebrati ali je indeks prenosa neveljaven.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Popravite telo zahteve. Pri prenosu izberite indeks izhoda, ki ga je vrnilo prvotno opravilo.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Izbrane video konfiguracije ni mogoče ovrednotiti.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Izberite podprto konfiguracijo videa in izpolnite njene obvezne možnosti, preden oddate popravljeno zahtevo.",
                "type": "price_unavailable"
              },
              {
                "condition": "Video vhod ali prvotno nadaljevalno opravilo ni veljavno.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Uporabite veljavne vhode HTTPS. Za nadaljevanje uporabite javni ID svojega dokončanega prvotnega videa z istim ključem API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Razpoložljivo dobroimetje ali omejitve ne omogočajo rezervacije.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Preden pošljete novo zahtevo, preverite razpoložljivo dobroimetje in omejitve.",
                "type": "billing_error"
              },
              {
                "condition": "Preverjanje videa, shramba ali dostop do storitve začasno ni na voljo.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Počakajte, da bo storitev na voljo. Če že imate ID videa, preverite to prvotno opravilo, namesto da ustvarite novo generacijo.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Prvotni video rezultat in zaračunani znesek je treba preveriti.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Ohranite vrnjeni ID videa in preverjajte to opravilo. Med preverjanjem ne pošljite nadomestne zahteve za ustvarjanje.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Prenos obstoječega videa začasno ni na voljo.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Pozneje preverite isto video opravilo in prenesite njegov obstoječi izhod. Novo ustvarjanje ustvari ločeno operacijo.",
                "type": "server_error"
              },
              {
                "condition": "Video vsebina ni objavljena.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Preverite stanje prvotnega opravila. Prenesite, ko sporoči completed; če sporoči failed, upoštevajte njegovo obvestilo o preverjanju zaračunanega zneska.",
                "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 + prvotni id + X-Should-Retry:false; prvotne zahteve nikoli ne ponovite"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Podajte prompt kot besedilo in duration v celih sekundah. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Pisni poziv."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images je polje. Vsak objekt sličice vsebuje type, image_url in frame_type; image_url vsebuje url. Nastavite type na image_url. Uporabite first_frame z neobveznim last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat. Za vsako sličico podajte javni URL slike HTTPS. V eni zahtevi uporabite slike sličic ali slikovne reference; obojega ne združujte. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Pisni poziv in slika prve sličice."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "minimax/hailuo-3"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references je polje objektov. Nastavite type na image_url, video_url, audio_url in uporabite ustrezno istoimensko polje, ki vsebuje url. Uporabite javne URL-je HTTPS. Za izbiro referenčnega načina izpustite frame_images. Ocena vključuje prikazano postavko na sliko samo za slikovne reference po prvih petih. Končni znesek sledi dejansko obračunani konfiguraciji. Ne združujte slikovnih referenc s slikami sličic. Izberite podprto ločljivost in po potrebi razmerje stranic.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Pisni poziv in podprte slikovne, video ter zvočne reference."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Položaj tega videa na seznamu izhodov, štet od nič.",
                  "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": "Podpisani URL HTTPS za prenos tega dokončanega videa.",
                  "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": "Izvleček SHA-256 izvirnih video bajtov; null, če ni na voljo.",
                  "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": "Velikost izvirne video datoteke v bajtih; null, če ni na voljo.",
                  "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": "Izmerjeno trajanje videa v milisekundah; null, če ni na voljo.",
                  "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": "Širina videa v slikovnih pikah; null, če ni na voljo.",
                  "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": "Višina videa v slikovnih pikah; null, če ni na voljo.",
                  "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": "Identifikator video kodeka; null, če ni zabeležen.",
                  "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": "Ali video vsebuje zvočno sled; null, če ni izmerjeno.",
                  "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": "Identifikator zvočnega kodeka; null, kadar identifikator ni zabeležen.",
                  "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": "podpisani URL-ji vsebine v vaši lasti",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "minimax/hailuo-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "minimax/hailuo-3"
                },
                "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": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Ti ključi opisujejo vsak objekt sličice; image_url vsebuje samo url. Pri zahtevi samo z besedilom izpustite frame_images.",
                "content": "Polje objektov sličic. Vsak objekt vsebuje type=image_url, image_url z url in frame_type. Uporabite URL slike HTTPS in nastavite frame_type na first_frame ali last_frame. Vsaka vloga sličice se lahko pojavi največ enkrat.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_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"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": 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": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "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": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_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"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "minimax/hailuo-3"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "2K"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "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.",
                "Frame images plus image references are rejected because mixed additive input count is unproved; pure frame or pure reference mode remains separately priced."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "basis": "Ta ocena ni dodatno plačilo ali fiksna cena za dokončano generiranje.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Ocenjeni strošek ustvarjanja",
            "units": [
              {
                "amount": "1.3",
                "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": "1.3",
                "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\":\"minimax/hailuo-3\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"2K\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "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.26",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.26",
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference image"
            },
            "label": "reference image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_images",
                "label": "reference image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_images"
              }
            ]
          },
          {
            "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": "1.3",
                "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": "1.3",
                "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": "minimax/hailuo-3",
        "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.26",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.26",
            "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.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_images"
          },
          {
            "amount": "1.3",
            "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": "1.3",
            "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": "minimax/hailuo-3",
        "request_model_id": "minimax/hailuo-3",
        "route_label": "Ultra"
      }
    ],
    "name": "MiniMax: H3",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.3,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.3,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "input_materials_additive": true,
          "resolution": "768P"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_materials_additive": true,
              "resolution": "768P"
            },
            "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": {
          "input_materials_additive": true,
          "resolution": "2K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "input_materials_additive": true,
              "resolution": "2K"
            },
            "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": {
          "adds_to_output": true,
          "output_resolution": "768P"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "adds_to_output": true,
              "output_resolution": "768P"
            },
            "key": "input_video",
            "label": "input video",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "output_resolution": "2K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "adds_to_output": true,
              "output_resolution": "2K"
            },
            "key": "input_video",
            "label": "input video",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "adds_to_output": true,
          "first_free_reference_images": 5,
          "only_additional_images_charged": true,
          "reference_audio_free": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.08",
            "amount_unit": "usd_per_input_image",
            "conditions": {
              "adds_to_output": true,
              "first_free_reference_images": 5,
              "only_additional_images_charged": true,
              "reference_audio_free": true
            },
            "key": "input_image",
            "label": "input image",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_image"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.26",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.26",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.26",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "reference image",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.08",
            "key": "reference_images",
            "label": "reference image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "quantity": 1,
            "side": "in",
            "unit": "reference_image"
          }
        ]
      }
    ],
    "public_id": "minimax/hailuo-3",
    "short": "MiniMax H3 ustvarja kratke videe z izvornim stereo zvokom iz besedila, slik sličic ali večmodalnih referenc. Podpira ustvarjanje s prvo in zadnjo sličico, urejanje na podlagi referenc ter razmerja gibanja ali glasu, z izhodom dolžine 4–15 sekund in ločenim postopkom ponovnega ustvarjanja v 2K."
  },
  "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": "MiniMax H3 ustvarja kratke videe z izvornim stereo zvokom iz besedila, slik sličic ali večmodalnih referenc. Podpira ustvarjanje s prvo in zadnjo sličico, urejanje na podlagi referenc ter razmerja gibanja ali glasu, z izhodom dolžine 4–15 sekund in ločenim postopkom ponovnega ustvarjanja v 2K.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2461dcd0200745d18b1cd2419e30113851cab8228a166856d6c7e39b75983bb1",
    "renderer_sha256": "dcba2271c18b0f9570a8b166e8d1e3166f121e096a58609c3a46da31562a1bf2"
  },
  "sourceRevision": "9f1db495915c26c4c8974fbbfd72cf42c3bbe773bca0012ace20cab3388dbc83"
}
