{
  "aboutHtml": "<p>Alibaba HappyHorse 1.0 on videoiden luontiversio, jossa on nimetyt profiilit videon luomiseen tekstistä, ensimmäisestä kuvasta ja viitteistä. Valmistaja painottaa fyysisesti uskottavaa liikettä, merkitysten ymmärtämistä sekä kuvan ja äänen synkronointia. Viiteprofiili voi käyttää enintään yhdeksää kuvaa kohteiden ja kohtausten ohjaamiseen. Hyödyllinen lopputulos on lyhyt äänellinen leike: uusi kohtaus, valmiista aloituskuvasta tehty animaatio tai viitteillä ohjattu hahmo- tai tuoteotos.</p><p>Määrittele tekstistä luotavaa kohtausta varten kohde, ympäristö, toiminta ja kamera sekä haluttu ääni. Pöytäkohtauksessa pieni purjeveneen pienoismalli voi liikkua matalassa vesiastiassa kameran seuratessa sitä pöydän korkeudelta. Arvioinnissa voidaan silloin tarkistaa veneen muoto, kohtauksen mittakaava, veden liike sekä liikkeen ja äänen suhde. Rajattua toimintaa on helpompi arvioida kuin tiheää tapahtumasarjaa, jonka tärkeintä hetkeä ei ole määritelty selvästi.</p><p>Käytä ensimmäisestä kuvasta generointiin kuvaa, jonka kohde ja sommittelu sopivat jo haluttuun aloitukseen. Kuvaile seuraava liike ja kameran kulkureitti. Valmistajan nimenomainen 1.0-kuvaprofiili hyväksyy teksti- ja kuvasyötteen, ja sen generointitaulukko määrittelee tämän videon luomiseksi ensimmäisestä kuvasta. Valmistele rajaus sekä tuotteen tai hahmon näkyvät yksityiskohdat ennen otoksen generointia. Tarkista, pysyvätkö nämä yksityiskohdat tunnistettavina liikkeen aikana, äläkä arvioi vain aloituskuvaa.</p><p>Viitteistä luotu video yhdistää visuaalisissa lähteissä näkyvät ihmiset, tuotteet, tyylin tai ympäristön uudeksi, tekstissä kuvatuksi kohtaukseksi. Nimenomaisen 1.0-viitemallin sivulla dokumentoidaan enintään yhdeksän kuvaa. Määrittele niiden tehtävät ohjeessa ja kuvaile, miten kohteen tulee toimia kohtauksessa. Tuote-esittelyssä voidaan erottaa tuotteen viite ympäristön tai visuaalisen tyylin viitteestä. Valmistajan painottama vakaus on arviointitavoite: vertaa kohdetta, merkintöjä ja sijoittelua todellisiin viitteisiin koko leikkeen ajan.</p><p>1.0-perheessä on myös erikseen nimetty videonmuokkausprofiili olemassa olevan materiaalin tyylimuutoksiin sekä paikallisiin tai laajempiin muutoksiin. Profiili käyttää täsmälleen yhtä lähdevideota ja nollasta viiteen viitekuvaa yhdeksän kuvan viitegenerointijärjestelyn sijaan. Kerro, minkä tulee muuttua ja minkä säilyä, esimerkiksi vaatteen vaihtaminen siten, että henkilö, liike ja tausta säilyvät. Muokkaustulosta on verrattava koko lähdeleikkeeseen, ei vain ruutuun, jossa haluttu korvaava elementti näkyy.</p><p>Nimenomainen 1.0-muokkausopas hyväksyy MP4- tai MOV-lähdemateriaalin, suosittelee H.264-koodekkia ja sallii lähteen kestoksi 3–60 sekuntia. Se määrittelee enimmäiskooksi 100 MB, lyhyemmän sivun vähimmäispituudeksi 360 pikseliä, pidemmän sivun enimmäispituudeksi 4 096 pikseliä, kuvasuhteeksi 1:2.5–2.5:1 ja syötteen kuvanopeudeksi 8–60 kuvaa sekunnissa. Muokkausten tuloskesto rajataan kolmesta viiteentoista sekuntiin: enintään viidentoista sekunnin lähteet säilyttävät kestonsa, pidemmistä lähteistä käytetään vain ensimmäiset viisitoista sekuntia. Leikkaa haluttu jakso ennen muokkauksen valmistelua, jos tärkeä toiminta tapahtuu lähteessä myöhemmin.</p><p>Muokkausprofiilin valinnaisilla viitekuvilla on oma kahdenkymmenen MB:n raja sekä JPEG/JPG-, PNG- tai WEBP-muotovaatimus; molempien mittojen on oltava vähintään 300 pikseliä ja kuvasuhteen samalla dokumentoidulla välillä. Opas erottaa myös automaattisen äänenkäsittelyn alkuperäisen äänen säilyttämisestä. Valmistele halutun muutoksen yksilöivä viite ja valitse, miten lähteen äänen tulee liittyä siihen. Nämä ovat erityisiä 1.0-muokkausprofiilin asetuksia, erillään uusien kohtausten generointitiloista.</p><p>1.0-generointitiloille valmistajan nimenomainen taulukko ilmoittaa tarkkuudeksi 720p tai 1080p, kestoksi kolmesta viiteentoista sekuntiin sekä muodoksi äänellisen MP4:n 24 kuvan sekuntinopeudella. Muokkausprofiilikin tuottaa 720p- tai 1080p-videota viidentoista sekunnin rajansa sisällä. Dokumentoitu tehtäväkulku palauttaa ensin käsittelytunnisteen ja onnistumisen jälkeen valmiin videon sijainnin; tulosten sijainnit ovat voimassa kaksikymmentäneljä tuntia. Säilytä varsinainen leike, kehote ja viitteet tuotantomuokkausta valmistellessasi ja tarkastele palautettua rajausta, kestoa ja ääntä yhdessä.</p><p>HappyHorse 1.1 lisää 480p-generointivaihtoehdon sekä nimetyt parannukset visuaalisiin yksityiskohtiin, liikkeeseen ja leikkeiden väliseen yhtenäisyyteen. Nämä myöhempää generointia koskevat väitteet eivät takaa kiinteän 1.0-version ominaisuuksia. Hyödyllinen 1.0-valmistelu seuraa valittua tilaa ja sen todellisia lähdemateriaaleja. Arvioi identiteetti, kosketukset, esineiden geometria, teksti ja ääni ja määrittele sitten seuraava korjaus konkreettisesti. Tarkista muokatusta leikkeestä myös, että tärkeät alkuperäiset yksityiskohdat pyydetyn muutoksen ulkopuolella sopivat edelleen haluttuun kohtaukseen.</p>",
  "aboutText": "Alibaba HappyHorse 1.0 on videoiden luontiversio, jossa on nimetyt profiilit videon luomiseen tekstistä, ensimmäisestä kuvasta ja viitteistä. Valmistaja painottaa fyysisesti uskottavaa liikettä, merkitysten ymmärtämistä sekä kuvan ja äänen synkronointia. Viiteprofiili voi käyttää enintään yhdeksää kuvaa kohteiden ja kohtausten ohjaamiseen. Hyödyllinen lopputulos on lyhyt äänellinen leike: uusi kohtaus, valmiista aloituskuvasta tehty animaatio tai viitteillä ohjattu hahmo- tai tuoteotos.\n\nMäärittele tekstistä luotavaa kohtausta varten kohde, ympäristö, toiminta ja kamera sekä haluttu ääni. Pöytäkohtauksessa pieni purjeveneen pienoismalli voi liikkua matalassa vesiastiassa kameran seuratessa sitä pöydän korkeudelta. Arvioinnissa voidaan silloin tarkistaa veneen muoto, kohtauksen mittakaava, veden liike sekä liikkeen ja äänen suhde. Rajattua toimintaa on helpompi arvioida kuin tiheää tapahtumasarjaa, jonka tärkeintä hetkeä ei ole määritelty selvästi.\n\nKäytä ensimmäisestä kuvasta generointiin kuvaa, jonka kohde ja sommittelu sopivat jo haluttuun aloitukseen. Kuvaile seuraava liike ja kameran kulkureitti. Valmistajan nimenomainen 1.0-kuvaprofiili hyväksyy teksti- ja kuvasyötteen, ja sen generointitaulukko määrittelee tämän videon luomiseksi ensimmäisestä kuvasta. Valmistele rajaus sekä tuotteen tai hahmon näkyvät yksityiskohdat ennen otoksen generointia. Tarkista, pysyvätkö nämä yksityiskohdat tunnistettavina liikkeen aikana, äläkä arvioi vain aloituskuvaa.\n\nViitteistä luotu video yhdistää visuaalisissa lähteissä näkyvät ihmiset, tuotteet, tyylin tai ympäristön uudeksi, tekstissä kuvatuksi kohtaukseksi. Nimenomaisen 1.0-viitemallin sivulla dokumentoidaan enintään yhdeksän kuvaa. Määrittele niiden tehtävät ohjeessa ja kuvaile, miten kohteen tulee toimia kohtauksessa. Tuote-esittelyssä voidaan erottaa tuotteen viite ympäristön tai visuaalisen tyylin viitteestä. Valmistajan painottama vakaus on arviointitavoite: vertaa kohdetta, merkintöjä ja sijoittelua todellisiin viitteisiin koko leikkeen ajan.\n\n1.0-perheessä on myös erikseen nimetty videonmuokkausprofiili olemassa olevan materiaalin tyylimuutoksiin sekä paikallisiin tai laajempiin muutoksiin. Profiili käyttää täsmälleen yhtä lähdevideota ja nollasta viiteen viitekuvaa yhdeksän kuvan viitegenerointijärjestelyn sijaan. Kerro, minkä tulee muuttua ja minkä säilyä, esimerkiksi vaatteen vaihtaminen siten, että henkilö, liike ja tausta säilyvät. Muokkaustulosta on verrattava koko lähdeleikkeeseen, ei vain ruutuun, jossa haluttu korvaava elementti näkyy.\n\nNimenomainen 1.0-muokkausopas hyväksyy MP4- tai MOV-lähdemateriaalin, suosittelee H.264-koodekkia ja sallii lähteen kestoksi 3–60 sekuntia. Se määrittelee enimmäiskooksi 100 MB, lyhyemmän sivun vähimmäispituudeksi 360 pikseliä, pidemmän sivun enimmäispituudeksi 4 096 pikseliä, kuvasuhteeksi 1:2.5–2.5:1 ja syötteen kuvanopeudeksi 8–60 kuvaa sekunnissa. Muokkausten tuloskesto rajataan kolmesta viiteentoista sekuntiin: enintään viidentoista sekunnin lähteet säilyttävät kestonsa, pidemmistä lähteistä käytetään vain ensimmäiset viisitoista sekuntia. Leikkaa haluttu jakso ennen muokkauksen valmistelua, jos tärkeä toiminta tapahtuu lähteessä myöhemmin.\n\nMuokkausprofiilin valinnaisilla viitekuvilla on oma kahdenkymmenen MB:n raja sekä JPEG/JPG-, PNG- tai WEBP-muotovaatimus; molempien mittojen on oltava vähintään 300 pikseliä ja kuvasuhteen samalla dokumentoidulla välillä. Opas erottaa myös automaattisen äänenkäsittelyn alkuperäisen äänen säilyttämisestä. Valmistele halutun muutoksen yksilöivä viite ja valitse, miten lähteen äänen tulee liittyä siihen. Nämä ovat erityisiä 1.0-muokkausprofiilin asetuksia, erillään uusien kohtausten generointitiloista.\n\n1.0-generointitiloille valmistajan nimenomainen taulukko ilmoittaa tarkkuudeksi 720p tai 1080p, kestoksi kolmesta viiteentoista sekuntiin sekä muodoksi äänellisen MP4:n 24 kuvan sekuntinopeudella. Muokkausprofiilikin tuottaa 720p- tai 1080p-videota viidentoista sekunnin rajansa sisällä. Dokumentoitu tehtäväkulku palauttaa ensin käsittelytunnisteen ja onnistumisen jälkeen valmiin videon sijainnin; tulosten sijainnit ovat voimassa kaksikymmentäneljä tuntia. Säilytä varsinainen leike, kehote ja viitteet tuotantomuokkausta valmistellessasi ja tarkastele palautettua rajausta, kestoa ja ääntä yhdessä.\n\nHappyHorse 1.1 lisää 480p-generointivaihtoehdon sekä nimetyt parannukset visuaalisiin yksityiskohtiin, liikkeeseen ja leikkeiden väliseen yhtenäisyyteen. Nämä myöhempää generointia koskevat väitteet eivät takaa kiinteän 1.0-version ominaisuuksia. Hyödyllinen 1.0-valmistelu seuraa valittua tilaa ja sen todellisia lähdemateriaaleja. Arvioi identiteetti, kosketukset, esineiden geometria, teksti ja ääni ja määrittele sitten seuraava korjaus konkreettisesti. Tarkista muokatusta leikkeestä myös, että tärkeät alkuperäiset yksityiskohdat pyydetyn muutoksen ulkopuolella sopivat edelleen haluttuun kohtaukseen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "0618a5ee294ed0872255b45c930e13e4064b1e7b49c07244fa0c6eea5aaadbdf",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Alibaba: HappyHorse 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sulje\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>alibaba/happyhorse-1.0</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><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|alibaba%2Fhappyhorse-1.0\">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\">Aloitus</h3><p class=\"mdesc-full\">Alibaba HappyHorse 1.0 luo lyhyitä äänellisiä videoita tekstistä, aloituskuvasta tai enintään yhdeksästä viitekuvasta. Sen generointitilat tuottavat 3–15 sekunnin MP4-videoita 24 kuvan sekuntinopeudella tarkkuudella 720p tai 1080p. Erikseen nimetty 1.0-videonmuokkausprofiili muokkaa annettua videomateriaalia valinnaisten visuaalisten viitteiden avulla ja noudattaa omia rajojaan.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti · Kuvat</dd></div><div><dt>Tulokset</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><p>Alibaba HappyHorse 1.0 on videoiden luontiversio, jossa on nimetyt profiilit videon luomiseen tekstistä, ensimmäisestä kuvasta ja viitteistä. Valmistaja painottaa fyysisesti uskottavaa liikettä, merkitysten ymmärtämistä sekä kuvan ja äänen synkronointia. Viiteprofiili voi käyttää enintään yhdeksää kuvaa kohteiden ja kohtausten ohjaamiseen. Hyödyllinen lopputulos on lyhyt äänellinen leike: uusi kohtaus, valmiista aloituskuvasta tehty animaatio tai viitteillä ohjattu hahmo- tai tuoteotos.</p><p>Määrittele tekstistä luotavaa kohtausta varten kohde, ympäristö, toiminta ja kamera sekä haluttu ääni. Pöytäkohtauksessa pieni purjeveneen pienoismalli voi liikkua matalassa vesiastiassa kameran seuratessa sitä pöydän korkeudelta. Arvioinnissa voidaan silloin tarkistaa veneen muoto, kohtauksen mittakaava, veden liike sekä liikkeen ja äänen suhde. Rajattua toimintaa on helpompi arvioida kuin tiheää tapahtumasarjaa, jonka tärkeintä hetkeä ei ole määritelty selvästi.</p><p>Käytä ensimmäisestä kuvasta generointiin kuvaa, jonka kohde ja sommittelu sopivat jo haluttuun aloitukseen. Kuvaile seuraava liike ja kameran kulkureitti. Valmistajan nimenomainen 1.0-kuvaprofiili hyväksyy teksti- ja kuvasyötteen, ja sen generointitaulukko määrittelee tämän videon luomiseksi ensimmäisestä kuvasta. Valmistele rajaus sekä tuotteen tai hahmon näkyvät yksityiskohdat ennen otoksen generointia. Tarkista, pysyvätkö nämä yksityiskohdat tunnistettavina liikkeen aikana, äläkä arvioi vain aloituskuvaa.</p><p>Viitteistä luotu video yhdistää visuaalisissa lähteissä näkyvät ihmiset, tuotteet, tyylin tai ympäristön uudeksi, tekstissä kuvatuksi kohtaukseksi. Nimenomaisen 1.0-viitemallin sivulla dokumentoidaan enintään yhdeksän kuvaa. Määrittele niiden tehtävät ohjeessa ja kuvaile, miten kohteen tulee toimia kohtauksessa. Tuote-esittelyssä voidaan erottaa tuotteen viite ympäristön tai visuaalisen tyylin viitteestä. Valmistajan painottama vakaus on arviointitavoite: vertaa kohdetta, merkintöjä ja sijoittelua todellisiin viitteisiin koko leikkeen ajan.</p><p>1.0-perheessä on myös erikseen nimetty videonmuokkausprofiili olemassa olevan materiaalin tyylimuutoksiin sekä paikallisiin tai laajempiin muutoksiin. Profiili käyttää täsmälleen yhtä lähdevideota ja nollasta viiteen viitekuvaa yhdeksän kuvan viitegenerointijärjestelyn sijaan. Kerro, minkä tulee muuttua ja minkä säilyä, esimerkiksi vaatteen vaihtaminen siten, että henkilö, liike ja tausta säilyvät. Muokkaustulosta on verrattava koko lähdeleikkeeseen, ei vain ruutuun, jossa haluttu korvaava elementti näkyy.</p><p>Nimenomainen 1.0-muokkausopas hyväksyy MP4- tai MOV-lähdemateriaalin, suosittelee H.264-koodekkia ja sallii lähteen kestoksi 3–60 sekuntia. Se määrittelee enimmäiskooksi 100 MB, lyhyemmän sivun vähimmäispituudeksi 360 pikseliä, pidemmän sivun enimmäispituudeksi 4 096 pikseliä, kuvasuhteeksi 1:2.5–2.5:1 ja syötteen kuvanopeudeksi 8–60 kuvaa sekunnissa. Muokkausten tuloskesto rajataan kolmesta viiteentoista sekuntiin: enintään viidentoista sekunnin lähteet säilyttävät kestonsa, pidemmistä lähteistä käytetään vain ensimmäiset viisitoista sekuntia. Leikkaa haluttu jakso ennen muokkauksen valmistelua, jos tärkeä toiminta tapahtuu lähteessä myöhemmin.</p><p>Muokkausprofiilin valinnaisilla viitekuvilla on oma kahdenkymmenen MB:n raja sekä JPEG/JPG-, PNG- tai WEBP-muotovaatimus; molempien mittojen on oltava vähintään 300 pikseliä ja kuvasuhteen samalla dokumentoidulla välillä. Opas erottaa myös automaattisen äänenkäsittelyn alkuperäisen äänen säilyttämisestä. Valmistele halutun muutoksen yksilöivä viite ja valitse, miten lähteen äänen tulee liittyä siihen. Nämä ovat erityisiä 1.0-muokkausprofiilin asetuksia, erillään uusien kohtausten generointitiloista.</p><p>1.0-generointitiloille valmistajan nimenomainen taulukko ilmoittaa tarkkuudeksi 720p tai 1080p, kestoksi kolmesta viiteentoista sekuntiin sekä muodoksi äänellisen MP4:n 24 kuvan sekuntinopeudella. Muokkausprofiilikin tuottaa 720p- tai 1080p-videota viidentoista sekunnin rajansa sisällä. Dokumentoitu tehtäväkulku palauttaa ensin käsittelytunnisteen ja onnistumisen jälkeen valmiin videon sijainnin; tulosten sijainnit ovat voimassa kaksikymmentäneljä tuntia. Säilytä varsinainen leike, kehote ja viitteet tuotantomuokkausta valmistellessasi ja tarkastele palautettua rajausta, kestoa ja ääntä yhdessä.</p><p>HappyHorse 1.1 lisää 480p-generointivaihtoehdon sekä nimetyt parannukset visuaalisiin yksityiskohtiin, liikkeeseen ja leikkeiden väliseen yhtenäisyyteen. Nämä myöhempää generointia koskevat väitteet eivät takaa kiinteän 1.0-version ominaisuuksia. Hyödyllinen 1.0-valmistelu seuraa valittua tilaa ja sen todellisia lähdemateriaaleja. Arvioi identiteetti, kosketukset, esineiden geometria, teksti ja ääni ja määrittele sitten seuraava korjaus konkreettisesti. Tarkista muokatusta leikkeestä myös, että tärkeät alkuperäiset yksityiskohdat pyydetyn muutoksen ulkopuolella sopivat edelleen haluttuun kohtaukseen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Tulostyypit</dt><dd><code>video</code></dd></div><div><dt>Tulosteen muoto</dt><dd>alkuperäiset MP4-tavut; ei normalisointia eikä uudelleenkoodausta</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>alibaba/happyhorse-1.0</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>integer</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Vähimmäismäärä: 1</div><div>Enimmäismäärä: 600</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>720p, 1080p</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>boolean</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>false</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>array</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Kohteiden vähimmäismäärä: 1</div><div>Kohteiden enimmäismäärä: 1</div><div>Syötteen sisältö: Kuvaolioiden taulukko. Jokaisessa oliossa on type=image_url, url-kentän sisältävä image_url ja frame_type. Käytä HTTPS-kuvan URL-osoitetta ja aseta frame_type-kentän arvoksi first_frame. Kukin kuvan rooli esiintyy enintään kerran.</div><div>Tarkat avaimet: type, image_url, frame_type</div><div>Ehdot: Nämä avaimet kuvaavat jokaista kuvaoliota; image_url sisältää vain url-kentän. Jätä frame_images pois pelkkää tekstiä sisältävästä pyynnöstä.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>array</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520</div><div>Merkkijonomalli: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>integer</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Vähimmäismäärä: −9 223 372 036 854 775 808</div><div>Enimmäismäärä: 9 223 372 036 854 775 807</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Merkkijonomalli: ^https://</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>object</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Syöteaineistojen yhdistelmät</summary><p class=\"note-s\"><b>Tekstistä videoksi</b> · Kirjoitettu kehote. · Pakollinen: model, prompt, duration</p><p class=\"note-s\"><code>Anna kehote tekstinä ja kesto kokonaisina sekunteina. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tyyppi: string · alibaba/happyhorse-1.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tyyppi: string · UTF-8-tavujen enimmäismäärä: 10 000 · Vaaditaan muu merkki kuin tyhjämerkki: Kyllä</p><p class=\"note-s\"><b>Kuvasta videoksi</b> · Kirjoitettu kehote ja ensimmäisen ruudun kuva. · Pakollinen: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images on taulukko. Jokaisessa kuvaoliossa on type, image_url ja frame_type; image_url sisältää url-kentän. Aseta type-kentän arvoksi image_url. Käytä first_frame-arvoa. Kukin kuvan rooli esiintyy enintään kerran. Anna jokaiselle kuvalle julkinen HTTPS-kuvan URL-osoite. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.</code></p><p class=\"note-s\">Tarkat avaimet: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tyyppi: string · alibaba/happyhorse-1.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tyyppi: string · UTF-8-tavujen enimmäismäärä: 10 000 · Vaaditaan muu merkki kuin tyhjämerkki: Kyllä</p><p class=\"note-s\"><b>Reference to video</b> · Kirjoitettu kehote ja tuetut kuvaviitteet. · Pakollinen: model, prompt, duration, input_references</p><p class=\"note-s\"><code>input_references on oliotaulukko. Aseta type-kentän arvoksi image_url ja käytä vastaavaa url-kentän sisältävää kenttää. Käytä julkisia HTTPS-osoitteita. Jätä frame_images pois valitaksesi viitetilan. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tyyppi: string · alibaba/happyhorse-1.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tyyppi: string · UTF-8-tavujen enimmäismäärä: 10 000 · Vaaditaan muu merkki kuin tyhjämerkki: Kyllä</p></details><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>text, image</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>additional_properties</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>false</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>optional_controls</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Elinkaari: <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\">Hinnoittelu</h3><div class=\"card-result-process\" data-billing-basis><h5>Lopullisen veloituksen laskenta</h5><p class=\"note-s\">Näytettyjen hintojen avulla arvioidaan kustannukset ennen generointia. Lopullinen veloitus lasketaan alkuperäiselle generoinnille kirjatun kustannuksen perusteella. Lopullisena laskutettavana määränä ei käytetä tulosteen mitattua kestoa eikä ennustettuja määriä.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.</p><dl data-price-conditions><dt>Nopea tila</dt><dd>Ei määritetty <span class=\"note-s\">Kun nopea tila on valittu</span></dd><dt>Flex-tila</dt><dd>Ei määritetty <span class=\"note-s\">Kun flex-tila on valittu</span></dd><dt>Päättelyn enimmäisteho</dt><dd>Ei määritetty <span class=\"note-s\">Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä</span></dd></dl></div><div data-declared-tariff-pricing><h4>Arvioidut vertailuhinnat</h4><h4>Hinnat asetusten mukaan</h4><p class=\"note-s\">Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Asetukset</th><th>Hinnasto</th><th>Ennustettu määrä</th><th>Laskutusyksikkö</th><th>Laskutusehdot</th><th>Veloitus</th></tr></thead><tbody><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Tokenien perushinnat</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>Perushinta</td><td data-cell-label=\"Ennustettu määrä\"><span class=\"card-cell-label\">Ennustettu määrä</span>—</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>—</td><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>—</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Syöte · Syötetokenit · Arvio vain vertailua varten</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Tuloste · Tulostokenit · Arvio vain vertailua varten</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistin luku · Arvio vain vertailua varten</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus · Arvio vain vertailua varten</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus, 1 tunti · Arvio vain vertailua varten</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div></td></tr><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Videon hinta</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>—</td><td data-cell-label=\"Ennustettu määrä\"><span class=\"card-cell-label\">Ennustettu määrä</span>—</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>videosekuntia kohden</td><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>resolution: 1080p</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Tuloste · Videon hinta · Arvio vain vertailua varten</span> <b>$0.3388</b> <span class=\"price-unit\">videosekuntia kohden</span></div></td></tr><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Videon hinta</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>—</td><td data-cell-label=\"Ennustettu määrä\"><span class=\"card-cell-label\">Ennustettu määrä</span>—</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>videosekuntia kohden</td><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>resolution: 720p</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Tuloste · Videon hinta · Arvio vain vertailua varten</span> <b>$0.1976</b> <span class=\"price-unit\">videosekuntia kohden</span></div></td></tr><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Arvioitu luontikustannus</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>—</td><td data-cell-label=\"Ennustettu määrä\"><span class=\"card-cell-label\">Ennustettu määrä</span>yhden generoinnin arvio</td><td data-cell-label=\"Laskutusyksikkö\"><span class=\"card-cell-label\">Laskutusyksikkö</span>—</td><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>—</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Tuloste · Arvioidut generointikustannukset · Arvio vain vertailua varten</span> <b>$0.5928</b> <span class=\"price-unit\">arvio ennen generointia</span></div><p class=\"note-s\">Tämä arvio ei ole lisämaksu eikä valmistuneen generoinnin kiinteä hinta.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p><div data-declared-reference-pricing><h4>Viitehinnaston tiedot</h4><p class=\"note-s\">Mallitason viitehinnastot eivät muuta menetelmän valintaa, hinta-arvioita tai veloituksia. Käytössä olevat veloitukset käyttävät valitun Ailoot-menetelmän hintoja.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Videokokoonpanojen hintaviitteet</summary><h4>Hinnat asetusten mukaan</h4><p class=\"note-s\">Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Asetukset</th><th>Laskutusehdot</th><th>Veloitus</th></tr></thead><tbody><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Videon hinta</th><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>resolution: 720p</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Tuloste · Videon hinta</span> <b>$0.1976</b> <span class=\"price-unit\">videosekuntia kohden</span></div><p class=\"note-s\">Julkaistu hintaviite näytetylle kokoonpanolle. Lopulliset veloitukset määräytyvät todellisen laskutetun kokoonpanon mukaan.</p></td></tr><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Videon hinta</th><td data-cell-label=\"Laskutusehdot\"><span class=\"card-cell-label\">Laskutusehdot</span>resolution: 1080p</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Tuloste · Videon hinta</span> <b>$0.3388</b> <span class=\"price-unit\">videosekuntia kohden</span></div><p class=\"note-s\">Julkaistu hintaviite näytetylle kokoonpanolle. Lopulliset veloitukset määräytyvät todellisen laskutetun kokoonpanon mukaan.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><button class=\"cg-tab\" id=\"model-code-997-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-997-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · luo video</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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-997-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-997-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;:3,&quot;model&quot;:&quot;alibaba/happyhorse-1.0&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">allekirjoitetut käyttäjälle kuuluvan sisällön osoitteet</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>Tarkista työn tila</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><button class=\"cg-tab\" id=\"model-code-998-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-998-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET alkuperäisen toiminnon tila</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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-998-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-998-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>Muut sisällön lukukerrat</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><button class=\"cg-tab\" id=\"model-code-999-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-999-panel-0\" aria-selected=\"true\" tabindex=\"0\">Tallenna jokainen valmistunut omistamasi tuloste</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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-999-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-999-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>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Tallenna jokainen valmistunut video tai palautettu tiedosto; nouda jokainen todellinen palautettu aineiston URL.</p><p class=\"note-s\">Säilytä jokainen todellinen käyttäjälle kuuluva tulos ja sen mukana palautetut mitatut metatiedot.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">503 result_pending_check + alkuperäinen id + X-Should-Retry:false; älä koskaan toista alkuperäistä pyyntöä</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Merkitys</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Tämän videon nollasta alkava sijainti tulosluettelossa.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Allekirjoitettu HTTPS-latauksen URL-osoite tälle valmistuneelle videolle.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Alkuperäisten videotavujen SHA-256-tiiviste; null, jos tietoa ei ole saatavilla.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Alkuperäisen videotiedoston koko tavuina; null, jos tietoa ei ole saatavilla.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Videon mitattu kesto millisekunteina; null, jos tietoa ei ole saatavilla.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Videon leveys pikseleinä; null, jos tietoa ei ole saatavilla.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Videon korkeus pikseleinä; null, jos tietoa ei ole saatavilla.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Videokoodekin tunniste; null, jos sitä ei ole kirjattu.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>boolean | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Sisältääkö video ääniraidan; null, jos asiaa ei ole mitattu.</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string | null</td><td data-cell-label=\"Merkitys\"><span class=\"card-cell-label\">Merkitys</span>Äänikoodekin tunniste; null, jos tunnistetta ei ole kirjattu.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Videoon ei päästä käsiksi tai tätä videon tunnistetta ei löytynyt.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista videon käyttöoikeus. Käytä olemassa olevan videon alkuperäistä julkista tunnistetta ja samaa API-avainta.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>API-avain ei vastaa todennettua tiliä.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista API-avaimesi ja tilisi käyttöoikeus ennen lähettämistä.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Pyyntöä ei voitu lukea tai latausindeksi on virheellinen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Korjaa pyyntösisältö. Valitse latausta varten alkuperäisen tehtävän palauttama tulosindeksi.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Valittua videokokoonpanoa ei voida hinnoitella.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Valitse tuettu videokokoonpano ja täytä sen pakolliset asetukset ennen korjatun pyynnön lähettämistä.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Videosyöte tai alkuperäinen jatkotehtävä on virheellinen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Käytä kelvollisia HTTPS-syötteitä. Käytä jatkamiseen valmistuneen alkuperäisen videosi julkista tunnistetta samalla API-avaimella.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>402 · <code>billing_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Käytettävissä oleva saldo tai rajoitukset eivät salli katevarausta.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista käytettävissä oleva saldosi ja rajoitukset ennen uuden pyynnön lähettämistä.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>503 · <code>server_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Videon tarkistus, tallennus tai palvelun käyttö ei ole tilapäisesti saatavilla.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Odota palvelun saatavuutta. Jos sinulla on jo videon tunniste, tarkista alkuperäinen tehtävä uuden luontipyynnön lähettämisen sijaan.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Alkuperäinen videotulos ja veloitus on tarkistettava.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä palautettu videon tunniste ja tarkista kyseinen tehtävä. Älä lähetä korvaavaa videon luontipyyntöä tarkistuksen aikana.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Olemassa olevan videon lataus ei ole tilapäisesti saatavilla.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista sama videotehtävä myöhemmin ja lataa sen olemassa oleva tulos. Uusi luontipyyntö luo erillisen operaation.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Videosisältöä ei ole julkaistu.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista alkuperäisen tehtävän tila. Lataa, kun tila on completed; jos tila on failed, noudata sen veloituksen tarkistusilmoitusta.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=alibaba%2Fhappyhorse-1.0&amp;route=Ultra&amp;caller=alibaba%2Fhappyhorse-1.0&amp;fmt=videos\"><code>alibaba/happyhorse-1.0</code></a></span></p><h4>Menetelmäpolkujen aliakset</h4><p class=\"note-s\">Käytä yllä näytettyjä menetelmäpolkuja.</p><h4>Liittyvät kutsujan ID:t</h4><p class=\"note-s\"><a href=\"#m=alibaba%2Fhappyhorse-1.0&amp;route=Ultra&amp;caller=alibaba%2Fhappyhorse-1.0&amp;fmt=videos\"><code>alibaba/happyhorse-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "alibaba/happyhorse-1.0",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "alibaba/happyhorse-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|alibaba%2Fhappyhorse-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Näytettyjen hintojen avulla arvioidaan kustannukset ennen generointia. Lopullinen veloitus lasketaan alkuperäiselle generoinnille kirjatun kustannuksen perusteella. Lopullisena laskutettavana määränä ei käytetä tulosteen mitattua kestoa eikä ennustettuja määriä.",
          "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": "Säilytä jokainen todellinen käyttäjälle kuuluva tulos ja sen mukana palautetut mitatut metatiedot.",
            "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": "Videoon ei päästä käsiksi tai tätä videon tunnistetta ei löytynyt.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista videon käyttöoikeus. Käytä olemassa olevan videon alkuperäistä julkista tunnistetta ja samaa API-avainta.",
                "type": "not_found_error"
              },
              {
                "condition": "API-avain ei vastaa todennettua tiliä.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista API-avaimesi ja tilisi käyttöoikeus ennen lähettämistä.",
                "type": "authentication_error"
              },
              {
                "condition": "Pyyntöä ei voitu lukea tai latausindeksi on virheellinen.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Korjaa pyyntösisältö. Valitse latausta varten alkuperäisen tehtävän palauttama tulosindeksi.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Valittua videokokoonpanoa ei voida hinnoitella.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Valitse tuettu videokokoonpano ja täytä sen pakolliset asetukset ennen korjatun pyynnön lähettämistä.",
                "type": "price_unavailable"
              },
              {
                "condition": "Videosyöte tai alkuperäinen jatkotehtävä on virheellinen.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Käytä kelvollisia HTTPS-syötteitä. Käytä jatkamiseen valmistuneen alkuperäisen videosi julkista tunnistetta samalla API-avaimella.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Käytettävissä oleva saldo tai rajoitukset eivät salli katevarausta.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista käytettävissä oleva saldosi ja rajoitukset ennen uuden pyynnön lähettämistä.",
                "type": "billing_error"
              },
              {
                "condition": "Videon tarkistus, tallennus tai palvelun käyttö ei ole tilapäisesti saatavilla.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Odota palvelun saatavuutta. Jos sinulla on jo videon tunniste, tarkista alkuperäinen tehtävä uuden luontipyynnön lähettämisen sijaan.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Alkuperäinen videotulos ja veloitus on tarkistettava.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Säilytä palautettu videon tunniste ja tarkista kyseinen tehtävä. Älä lähetä korvaavaa videon luontipyyntöä tarkistuksen aikana.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Olemassa olevan videon lataus ei ole tilapäisesti saatavilla.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Tarkista sama videotehtävä myöhemmin ja lataa sen olemassa oleva tulos. Uusi luontipyyntö luo erillisen operaation.",
                "type": "server_error"
              },
              {
                "condition": "Videosisältöä ei ole julkaistu.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista alkuperäisen tehtävän tila. Lataa, kun tila on completed; jos tila on failed, noudata sen veloituksen tarkistusilmoitusta.",
                "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 + alkuperäinen id + X-Should-Retry:false; älä koskaan toista alkuperäistä pyyntöä"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Anna kehote tekstinä ja kesto kokonaisina sekunteina. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Kirjoitettu kehote."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images on taulukko. Jokaisessa kuvaoliossa on type, image_url ja frame_type; image_url sisältää url-kentän. Aseta type-kentän arvoksi image_url. Käytä first_frame-arvoa. Kukin kuvan rooli esiintyy enintään kerran. Anna jokaiselle kuvalle julkinen HTTPS-kuvan URL-osoite. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Kirjoitettu kehote ja ensimmäisen ruudun kuva."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references on oliotaulukko. Aseta type-kentän arvoksi image_url ja käytä vastaavaa url-kentän sisältävää kenttää. Käytä julkisia HTTPS-osoitteita. Jätä frame_images pois valitaksesi viitetilan. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Kirjoitettu kehote ja tuetut kuvaviitteet."
              }
            ],
            "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": "Tämän videon nollasta alkava sijainti tulosluettelossa.",
                  "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": "Allekirjoitettu HTTPS-latauksen URL-osoite tälle valmistuneelle videolle.",
                  "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": "Alkuperäisten videotavujen SHA-256-tiiviste; null, jos tietoa ei ole saatavilla.",
                  "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": "Alkuperäisen videotiedoston koko tavuina; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon mitattu kesto millisekunteina; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon leveys pikseleinä; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon korkeus pikseleinä; null, jos tietoa ei ole saatavilla.",
                  "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": "Videokoodekin tunniste; null, jos sitä ei ole kirjattu.",
                  "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": "Sisältääkö video ääniraidan; null, jos asiaa ei ole mitattu.",
                  "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": "Äänikoodekin tunniste; null, jos tunnistetta ei ole kirjattu.",
                  "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": "allekirjoitetut käyttäjälle kuuluvan sisällön osoitteet",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "alibaba/happyhorse-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "alibaba/happyhorse-1.0"
                },
                "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": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Nämä avaimet kuvaavat jokaista kuvaoliota; image_url sisältää vain url-kentän. Jätä frame_images pois pelkkää tekstiä sisältävästä pyynnöstä.",
                "content": "Kuvaolioiden taulukko. Jokaisessa oliossa on type=image_url, url-kentän sisältävä image_url ja frame_type. Käytä HTTPS-kuvan URL-osoitetta ja aseta frame_type-kentän arvoksi first_frame. Kukin kuvan rooli esiintyy enintään kerran.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "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"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720",
                  "960x720",
                  "720x960",
                  "1680x720",
                  "720x1680",
                  "1920x1080",
                  "1080x1920",
                  "1080x1080",
                  "1440x1080",
                  "1080x1440",
                  "2520x1080",
                  "1080x2520"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720",
                    "960x720",
                    "720x960",
                    "1680x720",
                    "720x1680",
                    "1920x1080",
                    "1080x1920",
                    "1080x1080",
                    "1440x1080",
                    "1080x1440",
                    "2520x1080",
                    "1080x2520"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "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"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "alibaba/happyhorse-1.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720",
                    "960x720",
                    "720x960",
                    "1680x720",
                    "720x1680",
                    "1920x1080",
                    "1080x1920",
                    "1080x1080",
                    "1440x1080",
                    "1080x1440",
                    "2520x1080",
                    "1080x2520"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "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": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videon hinta",
            "units": [
              {
                "amount": "0.3388",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.3388",
                "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": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1976",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1976",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Tämä arvio ei ole lisämaksu eikä valmistuneen generoinnin kiinteä hinta.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Arvioitu luontikustannus",
            "units": [
              {
                "amount": "0.5928",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.5928",
                "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\":3,\"model\":\"alibaba/happyhorse-1.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.3388",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.3388",
                "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": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1976",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1976",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.5928",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.5928",
                "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": "alibaba/happyhorse-1.0",
        "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.3388",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.3388",
            "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.1976",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1976",
            "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.5928",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.5928",
            "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": "alibaba/happyhorse-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d81caf0da9aa465b7e5ab295e022c62a31aca7df1a7d77d83657b7e8a6870ba6",
    "input_html_sha256": "ae23117572df39f6326406b0339d1b2529cf40dceffdc33ce14612f957b599d4",
    "private_audit_sha256": "1e00bb6a586e3a75407e0b5a06ff1608e9c6c8b707c79c326dd22ad5a0caa2a2",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/alibaba-happyhorse-1-0/",
    "description": "Alibaba HappyHorse 1.0 luo lyhyitä äänellisiä videoita tekstistä, aloituskuvasta tai enintään yhdeksästä viitekuvasta. Sen generointitilat tuottavat 3–15 sekunnin MP4-videoita 24 kuvan sekuntinopeudella tarkkuudella 720p tai 1080p. Erikseen nimetty 1.0-videonmuokkausprofiili muokkaa annettua videomateriaalia valinnaisten visuaalisten viitteiden avulla ja noudattaa omia rajojaan.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/alibaba-happyhorse-1-0/index.md",
    "title": "Alibaba: HappyHorse 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/fi/alibaba-happyhorse-1-0/"
  },
  "rawModel": {
    "about": "Alibaba HappyHorse 1.0 on videoiden luontiversio, jossa on nimetyt profiilit videon luomiseen tekstistä, ensimmäisestä kuvasta ja viitteistä. Valmistaja painottaa fyysisesti uskottavaa liikettä, merkitysten ymmärtämistä sekä kuvan ja äänen synkronointia. Viiteprofiili voi käyttää enintään yhdeksää kuvaa kohteiden ja kohtausten ohjaamiseen. Hyödyllinen lopputulos on lyhyt äänellinen leike: uusi kohtaus, valmiista aloituskuvasta tehty animaatio tai viitteillä ohjattu hahmo- tai tuoteotos.\n\nMäärittele tekstistä luotavaa kohtausta varten kohde, ympäristö, toiminta ja kamera sekä haluttu ääni. Pöytäkohtauksessa pieni purjeveneen pienoismalli voi liikkua matalassa vesiastiassa kameran seuratessa sitä pöydän korkeudelta. Arvioinnissa voidaan silloin tarkistaa veneen muoto, kohtauksen mittakaava, veden liike sekä liikkeen ja äänen suhde. Rajattua toimintaa on helpompi arvioida kuin tiheää tapahtumasarjaa, jonka tärkeintä hetkeä ei ole määritelty selvästi.\n\nKäytä ensimmäisestä kuvasta generointiin kuvaa, jonka kohde ja sommittelu sopivat jo haluttuun aloitukseen. Kuvaile seuraava liike ja kameran kulkureitti. Valmistajan nimenomainen 1.0-kuvaprofiili hyväksyy teksti- ja kuvasyötteen, ja sen generointitaulukko määrittelee tämän videon luomiseksi ensimmäisestä kuvasta. Valmistele rajaus sekä tuotteen tai hahmon näkyvät yksityiskohdat ennen otoksen generointia. Tarkista, pysyvätkö nämä yksityiskohdat tunnistettavina liikkeen aikana, äläkä arvioi vain aloituskuvaa.\n\nViitteistä luotu video yhdistää visuaalisissa lähteissä näkyvät ihmiset, tuotteet, tyylin tai ympäristön uudeksi, tekstissä kuvatuksi kohtaukseksi. Nimenomaisen 1.0-viitemallin sivulla dokumentoidaan enintään yhdeksän kuvaa. Määrittele niiden tehtävät ohjeessa ja kuvaile, miten kohteen tulee toimia kohtauksessa. Tuote-esittelyssä voidaan erottaa tuotteen viite ympäristön tai visuaalisen tyylin viitteestä. Valmistajan painottama vakaus on arviointitavoite: vertaa kohdetta, merkintöjä ja sijoittelua todellisiin viitteisiin koko leikkeen ajan.\n\n1.0-perheessä on myös erikseen nimetty videonmuokkausprofiili olemassa olevan materiaalin tyylimuutoksiin sekä paikallisiin tai laajempiin muutoksiin. Profiili käyttää täsmälleen yhtä lähdevideota ja nollasta viiteen viitekuvaa yhdeksän kuvan viitegenerointijärjestelyn sijaan. Kerro, minkä tulee muuttua ja minkä säilyä, esimerkiksi vaatteen vaihtaminen siten, että henkilö, liike ja tausta säilyvät. Muokkaustulosta on verrattava koko lähdeleikkeeseen, ei vain ruutuun, jossa haluttu korvaava elementti näkyy.\n\nNimenomainen 1.0-muokkausopas hyväksyy MP4- tai MOV-lähdemateriaalin, suosittelee H.264-koodekkia ja sallii lähteen kestoksi 3–60 sekuntia. Se määrittelee enimmäiskooksi 100 MB, lyhyemmän sivun vähimmäispituudeksi 360 pikseliä, pidemmän sivun enimmäispituudeksi 4 096 pikseliä, kuvasuhteeksi 1:2.5–2.5:1 ja syötteen kuvanopeudeksi 8–60 kuvaa sekunnissa. Muokkausten tuloskesto rajataan kolmesta viiteentoista sekuntiin: enintään viidentoista sekunnin lähteet säilyttävät kestonsa, pidemmistä lähteistä käytetään vain ensimmäiset viisitoista sekuntia. Leikkaa haluttu jakso ennen muokkauksen valmistelua, jos tärkeä toiminta tapahtuu lähteessä myöhemmin.\n\nMuokkausprofiilin valinnaisilla viitekuvilla on oma kahdenkymmenen MB:n raja sekä JPEG/JPG-, PNG- tai WEBP-muotovaatimus; molempien mittojen on oltava vähintään 300 pikseliä ja kuvasuhteen samalla dokumentoidulla välillä. Opas erottaa myös automaattisen äänenkäsittelyn alkuperäisen äänen säilyttämisestä. Valmistele halutun muutoksen yksilöivä viite ja valitse, miten lähteen äänen tulee liittyä siihen. Nämä ovat erityisiä 1.0-muokkausprofiilin asetuksia, erillään uusien kohtausten generointitiloista.\n\n1.0-generointitiloille valmistajan nimenomainen taulukko ilmoittaa tarkkuudeksi 720p tai 1080p, kestoksi kolmesta viiteentoista sekuntiin sekä muodoksi äänellisen MP4:n 24 kuvan sekuntinopeudella. Muokkausprofiilikin tuottaa 720p- tai 1080p-videota viidentoista sekunnin rajansa sisällä. Dokumentoitu tehtäväkulku palauttaa ensin käsittelytunnisteen ja onnistumisen jälkeen valmiin videon sijainnin; tulosten sijainnit ovat voimassa kaksikymmentäneljä tuntia. Säilytä varsinainen leike, kehote ja viitteet tuotantomuokkausta valmistellessasi ja tarkastele palautettua rajausta, kestoa ja ääntä yhdessä.\n\nHappyHorse 1.1 lisää 480p-generointivaihtoehdon sekä nimetyt parannukset visuaalisiin yksityiskohtiin, liikkeeseen ja leikkeiden väliseen yhtenäisyyteen. Nämä myöhempää generointia koskevat väitteet eivät takaa kiinteän 1.0-version ominaisuuksia. Hyödyllinen 1.0-valmistelu seuraa valittua tilaa ja sen todellisia lähdemateriaaleja. Arvioi identiteetti, kosketukset, esineiden geometria, teksti ja ääni ja määrittele sitten seuraava korjaus konkreettisesti. Tarkista muokatusta leikkeestä myös, että tärkeät alkuperäiset yksityiskohdat pyydetyn muutoksen ulkopuolella sopivat edelleen haluttuun kohtaukseen.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "alibaba/happyhorse-1.0",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.5928",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.5928",
            "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": "Konfiguraation täydet hintatiedot lisätiedoissa."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "006b6dbc4c2837190cee39ab",
        "label": "Videokokoonpanojen hintaviitteet",
        "profiles": [
          {
            "basis": "Julkaistu hintaviite näytetylle kokoonpanolle. Lopulliset veloitukset määräytyvät todellisen laskutetun kokoonpanon mukaan.",
            "dimensions": {
              "conditions": "resolution: 720p"
            },
            "label": "Videon hinta",
            "units": [
              {
                "amount": "0.1976",
                "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": "Julkaistu hintaviite näytetylle kokoonpanolle. Lopulliset veloitukset määräytyvät todellisen laskutetun kokoonpanon mukaan.",
            "dimensions": {
              "conditions": "resolution: 1080p"
            },
            "label": "Videon hinta",
            "units": [
              {
                "amount": "0.3388",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "alibaba/happyhorse-1.0",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Näytettyjen hintojen avulla arvioidaan kustannukset ennen generointia. Lopullinen veloitus lasketaan alkuperäiselle generoinnille kirjatun kustannuksen perusteella. Lopullisena laskutettavana määränä ei käytetä tulosteen mitattua kestoa eikä ennustettuja määriä.",
          "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": "Säilytä jokainen todellinen käyttäjälle kuuluva tulos ja sen mukana palautetut mitatut metatiedot.",
            "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": "Videoon ei päästä käsiksi tai tätä videon tunnistetta ei löytynyt.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista videon käyttöoikeus. Käytä olemassa olevan videon alkuperäistä julkista tunnistetta ja samaa API-avainta.",
                "type": "not_found_error"
              },
              {
                "condition": "API-avain ei vastaa todennettua tiliä.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista API-avaimesi ja tilisi käyttöoikeus ennen lähettämistä.",
                "type": "authentication_error"
              },
              {
                "condition": "Pyyntöä ei voitu lukea tai latausindeksi on virheellinen.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Korjaa pyyntösisältö. Valitse latausta varten alkuperäisen tehtävän palauttama tulosindeksi.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Valittua videokokoonpanoa ei voida hinnoitella.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Valitse tuettu videokokoonpano ja täytä sen pakolliset asetukset ennen korjatun pyynnön lähettämistä.",
                "type": "price_unavailable"
              },
              {
                "condition": "Videosyöte tai alkuperäinen jatkotehtävä on virheellinen.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Käytä kelvollisia HTTPS-syötteitä. Käytä jatkamiseen valmistuneen alkuperäisen videosi julkista tunnistetta samalla API-avaimella.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Käytettävissä oleva saldo tai rajoitukset eivät salli katevarausta.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista käytettävissä oleva saldosi ja rajoitukset ennen uuden pyynnön lähettämistä.",
                "type": "billing_error"
              },
              {
                "condition": "Videon tarkistus, tallennus tai palvelun käyttö ei ole tilapäisesti saatavilla.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Odota palvelun saatavuutta. Jos sinulla on jo videon tunniste, tarkista alkuperäinen tehtävä uuden luontipyynnön lähettämisen sijaan.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Alkuperäinen videotulos ja veloitus on tarkistettava.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Säilytä palautettu videon tunniste ja tarkista kyseinen tehtävä. Älä lähetä korvaavaa videon luontipyyntöä tarkistuksen aikana.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Olemassa olevan videon lataus ei ole tilapäisesti saatavilla.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Tarkista sama videotehtävä myöhemmin ja lataa sen olemassa oleva tulos. Uusi luontipyyntö luo erillisen operaation.",
                "type": "server_error"
              },
              {
                "condition": "Videosisältöä ei ole julkaistu.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Tarkista alkuperäisen tehtävän tila. Lataa, kun tila on completed; jos tila on failed, noudata sen veloituksen tarkistusilmoitusta.",
                "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 + alkuperäinen id + X-Should-Retry:false; älä koskaan toista alkuperäistä pyyntöä"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Anna kehote tekstinä ja kesto kokonaisina sekunteina. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Kirjoitettu kehote."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images on taulukko. Jokaisessa kuvaoliossa on type, image_url ja frame_type; image_url sisältää url-kentän. Aseta type-kentän arvoksi image_url. Käytä first_frame-arvoa. Kukin kuvan rooli esiintyy enintään kerran. Anna jokaiselle kuvalle julkinen HTTPS-kuvan URL-osoite. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Kirjoitettu kehote ja ensimmäisen ruudun kuva."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "alibaba/happyhorse-1.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references on oliotaulukko. Aseta type-kentän arvoksi image_url ja käytä vastaavaa url-kentän sisältävää kenttää. Käytä julkisia HTTPS-osoitteita. Jätä frame_images pois valitaksesi viitetilan. Valitse tuettu resoluutio; lisää kuvasuhde tai käytä lueteltua kokoa.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Kirjoitettu kehote ja tuetut kuvaviitteet."
              }
            ],
            "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": "Tämän videon nollasta alkava sijainti tulosluettelossa.",
                  "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": "Allekirjoitettu HTTPS-latauksen URL-osoite tälle valmistuneelle videolle.",
                  "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": "Alkuperäisten videotavujen SHA-256-tiiviste; null, jos tietoa ei ole saatavilla.",
                  "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": "Alkuperäisen videotiedoston koko tavuina; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon mitattu kesto millisekunteina; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon leveys pikseleinä; null, jos tietoa ei ole saatavilla.",
                  "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": "Videon korkeus pikseleinä; null, jos tietoa ei ole saatavilla.",
                  "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": "Videokoodekin tunniste; null, jos sitä ei ole kirjattu.",
                  "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": "Sisältääkö video ääniraidan; null, jos asiaa ei ole mitattu.",
                  "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": "Äänikoodekin tunniste; null, jos tunnistetta ei ole kirjattu.",
                  "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": "allekirjoitetut käyttäjälle kuuluvan sisällön osoitteet",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "alibaba/happyhorse-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "alibaba/happyhorse-1.0"
                },
                "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": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Nämä avaimet kuvaavat jokaista kuvaoliota; image_url sisältää vain url-kentän. Jätä frame_images pois pelkkää tekstiä sisältävästä pyynnöstä.",
                "content": "Kuvaolioiden taulukko. Jokaisessa oliossa on type=image_url, url-kentän sisältävä image_url ja frame_type. Käytä HTTPS-kuvan URL-osoitetta ja aseta frame_type-kentän arvoksi first_frame. Kukin kuvan rooli esiintyy enintään kerran.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "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"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720",
                  "960x720",
                  "720x960",
                  "1680x720",
                  "720x1680",
                  "1920x1080",
                  "1080x1920",
                  "1080x1080",
                  "1440x1080",
                  "1080x1440",
                  "2520x1080",
                  "1080x2520"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720",
                    "960x720",
                    "720x960",
                    "1680x720",
                    "720x1680",
                    "1920x1080",
                    "1080x1920",
                    "1080x1080",
                    "1440x1080",
                    "1080x1440",
                    "2520x1080",
                    "1080x2520"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1",
                    "4:3",
                    "3:4",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "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"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "alibaba/happyhorse-1.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720",
                    "960x720",
                    "720x960",
                    "1680x720",
                    "720x1680",
                    "1920x1080",
                    "1080x1920",
                    "1080x1080",
                    "1440x1080",
                    "1080x1440",
                    "2520x1080",
                    "1080x2520"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "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": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videon hinta",
            "units": [
              {
                "amount": "0.3388",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.3388",
                "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": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1976",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1976",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Tämä arvio ei ole lisämaksu eikä valmistuneen generoinnin kiinteä hinta.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Arvioitu luontikustannus",
            "units": [
              {
                "amount": "0.5928",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.5928",
                "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\":3,\"model\":\"alibaba/happyhorse-1.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.3388",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.3388",
                "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": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1976",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1976",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.5928",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.5928",
                "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": "alibaba/happyhorse-1.0",
        "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.3388",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.3388",
            "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.1976",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1976",
            "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.5928",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.5928",
            "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": "alibaba/happyhorse-1.0",
        "request_model_id": "alibaba/happyhorse-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "Alibaba: HappyHorse 1.0",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.5928,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.5928,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.28",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "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": {
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 3,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 4,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 5,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 6,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-t2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-t2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-t2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-t2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 7,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.28",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 8,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 9,
            "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": {
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 10,
            "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": {
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 11,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 12,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 13,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 14,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-i2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-i2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-i2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-i2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 15,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.28",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 16,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 17,
            "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": {
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 18,
            "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": {
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 19,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 20,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 21,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "720P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "720P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 22,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-r2v",
          "Output video resolution": "1080P",
          "maker_published_model_id": "happyhorse-1.0-r2v",
          "only_output_billed": true
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-r2v",
              "Output video resolution": "1080P",
              "maker_published_model_id": "happyhorse-1.0-r2v",
              "only_output_billed": true
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 23,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.28",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 24,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.28",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 25,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 26,
            "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": {
          "Deployment scope": "International",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.48",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "International",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 27,
            "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": {
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 28,
            "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": {
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 29,
            "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": {
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 30,
            "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": {
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 31,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 32,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 33,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 34,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 35,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 36,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 37,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 38,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 39,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 40,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "720P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.247538",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "720P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 41,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_input_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "input_video_second",
            "label": "input video second",
            "profile_index": 42,
            "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": {
          "Deployment scope": "Global",
          "Model ID": "happyhorse-1.0-video-edit",
          "Output video resolution": "1080P",
          "input_output_charged_separately_additive": true,
          "maker_published_model_id": "happyhorse-1.0-video-edit"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.440068",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "Deployment scope": "Global",
              "Model ID": "happyhorse-1.0-video-edit",
              "Output video resolution": "1080P",
              "input_output_charged_separately_additive": true,
              "maker_published_model_id": "happyhorse-1.0-video-edit"
            },
            "key": "output_video_second",
            "label": "output video second",
            "profile_index": 43,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.1976",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.1976",
            "key": "duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.1976",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.3388",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.3388",
            "key": "duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.3388",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "alibaba/happyhorse-1.0",
    "short": "Alibaba HappyHorse 1.0 luo lyhyitä äänellisiä videoita tekstistä, aloituskuvasta tai enintään yhdeksästä viitekuvasta. Sen generointitilat tuottavat 3–15 sekunnin MP4-videoita 24 kuvan sekuntinopeudella tarkkuudella 720p tai 1080p. Erikseen nimetty 1.0-videonmuokkausprofiili muokkaa annettua videomateriaalia valinnaisten visuaalisten viitteiden avulla ja noudattaa omia rajojaan."
  },
  "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": "Alibaba HappyHorse 1.0 luo lyhyitä äänellisiä videoita tekstistä, aloituskuvasta tai enintään yhdeksästä viitekuvasta. Sen generointitilat tuottavat 3–15 sekunnin MP4-videoita 24 kuvan sekuntinopeudella tarkkuudella 720p tai 1080p. Erikseen nimetty 1.0-videonmuokkausprofiili muokkaa annettua videomateriaalia valinnaisten visuaalisten viitteiden avulla ja noudattaa omia rajojaan.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "e5ca1c28a263adf27494d36fe138a5d6df34b8aeb33d02d218de950a87d03ed8",
    "raw_model_js_projection_sha256": "a7e1871e5c4d0438843ea71013790ef44e53e5570a715872969fb502398e70aa",
    "raw_model_json_sha256": "e5ca1c28a263adf27494d36fe138a5d6df34b8aeb33d02d218de950a87d03ed8",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "ff6500f7a9e42b53f2a6dedcff5e0f8306fe30eed21db62e38fe6ecae27295a2"
}
