{
  "aboutHtml": "<p>Aleph 2.0 is het in-contextvideobewerkingsmodel van Runway. Het transformeert bestaand traditioneel of gegenereerd beeldmateriaal met een geschreven instructie en optionele keyframesturing. De bedoelde workflow verandert het gevraagde deel van een scène met behoud van de omliggende compositie, belichting en details. Dat maakt het nuttig voor productvervanging, kledingwijziging, achtergrondtransformatie, nieuwe belichting of visuele restyling zonder de hele scène opnieuw uit een tekstbriefing te maken.</p><p>Begin met een directe actie en de gewenste transformatie: toevoegen, verwijderen, vervangen, veranderen, opnieuw belichten of restylen. Identificeer voor een productvervanging het zichtbare object en beschrijf de vervanging; geef vervolgens aan welke handbeweging, camerabeweging en omliggende omgeving behouden moeten blijven. Beschrijf voor een seizoensscène het weer of licht dat moet veranderen. Een beknopte, gerichte instructie geeft een duidelijker bewerkingsdoel dan een algemeen verzoek om de hele clip te verbeteren.</p><p>Keyframesturing legt vast hoe het bewerkte resultaat er op een bepaald moment uit moet zien. Kies een frame dat het doel duidelijk toont: een ruim beeld voor een achtergrondwijziging of een dichterbijbeeld voor een klein kenmerk of accessoire. In de Edit Studio-workflow van Runway kan een bewerking van een stilstaand frame worden bekeken en verfijnd voordat die geselecteerde versie de videotransformatie stuurt. Vergelijk het bewerkte frame met de bron op de onderwerpdetails, randen en objecten die u wilt behouden en gebruik het daarna als visuele richting voor de clip.</p><p>De API van de producent ondersteunt bronvideo&#39;s van 2 tot 30 seconden en maximaal vijf optionele keyframebeelden op opgegeven tijdstippen. Houd elk sturend beeld gekoppeld aan het bedoelde punt in de bron en gebruik een klein aantal duidelijke wijzigingen in plaats van een verzameling tegenstrijdige visuele doelen. Aleph 2.0 staat los van het oudere Gen-4 Aleph-model; de producent identificeert het API-model afzonderlijk. Een keyframegestuurde bewerking is ook iets anders dan een tekst-naar-videomodel vragen om een niet-gerelateerd shot te creëren.</p><p>De gedocumenteerde voorbereidingsregels van Edit Studio gebruiken conventionele beeldverhoudingen, een bronresolutie tussen 480p en 1080p en 24–30 frames per seconde, met maximaal tien cuts of shotwisselingen. De workflow beveelt bronmateriaal op 720p of 1080p aan; beeldmateriaal boven 30 fps wordt gedownsampled en uploads langer dan 30 seconden worden in die interface ingekort. Dit zijn de voorbereidingsregels van de bewerkingsworkflow van de producent. Kies een bronsegment dat de volledige te bewerken gebeurtenis toont en waarvan het onderwerp zichtbaar blijft waar de wijziging moet doorlopen.</p><p>Het model kan een gewijzigde achtergrond, kleding, object, licht of stijl door het beeldmateriaal heen doorvoeren. Een instructie voor extra beweging is nuttig wanneer de bewerking een nieuwe actie nodig heeft die in de bron ontbreekt en niet uit het keyframe alleen zou volgen, zoals een visueel effect dat zich in de tijd ontwikkelt. Veel bewerkingen hebben geen briefing voor extra beweging nodig, omdat het model de keyframeaanpassing binnen de bestaande scène animeert. Beschrijf een nieuwe beweging specifiek en houd die gescheiden van de visuele wijziging die het keyframe al vastlegt.</p><p>De bewerkingsworkflow van de producent past een bewerking standaard op de volledige video toe en kan deze tot een geselecteerd tijdlijnbereik beperken. Bewaar de oorspronkelijke clip zodat het geselecteerde resultaat met de bron kan worden vergeleken en voor een gericht vervolg kan worden gebruikt. Een praktische beoordeling kijkt verder dan het gekozen frame: controleer begin, midden, einde, elke cut en de periode waarin het doel kort aan het zicht wordt onttrokken. Het bruikbare resultaat is een herziene clip waarvan de gevraagde transformatie in de tijd consistent blijft en waarin de belangrijke ongewijzigde elementen hun rol behouden.</p><p>MP4 is het standaardbestand voor afspelen en delen. De daarvoor geschikte Edit Studio-workflow van Runway voor volledige video&#39;s biedt ook ProRes als MOV-bestand met PCM-audio of een ZIP met afzonderlijke PNG-frames voor compositing. ProRes-profielen lopen van 422 Proxy tot 4444 XQ. Bewerkingen die tot een tijdlijnbereik zijn beperkt, geven MP4 terug en het uitvoerformaat wordt bij de start van de generatie gekozen, in plaats van na het voltooide resultaat te worden veranderd. Selecteer de exportvorm van de producent voor de volgende montagetaak en houd die gescheiden van de kernmogelijkheid van het model voor visuele bewerking.</p><p>Vergelijk voor een bruikbare voltooide bewerking de bedoelde vervanging, belichting of stijl met het keyframe en controleer omliggende details die niet moesten veranderen. Bewaar de geslaagde versie en herzie de specifieke instructie of het sturende frame dat verantwoordelijk is voor een afwijking. De rol van Aleph 2.0 is bronmateriaal via een duidelijk visueel doel te transformeren; een nieuwe soundtrack produceren, het gedrag van een toepassing veranderen of een afzonderlijke uitzendleveringsketen afronden zijn aanvullende taken rond de bewerkte video.</p>",
  "aboutText": "Aleph 2.0 is het in-contextvideobewerkingsmodel van Runway. Het transformeert bestaand traditioneel of gegenereerd beeldmateriaal met een geschreven instructie en optionele keyframesturing. De bedoelde workflow verandert het gevraagde deel van een scène met behoud van de omliggende compositie, belichting en details. Dat maakt het nuttig voor productvervanging, kledingwijziging, achtergrondtransformatie, nieuwe belichting of visuele restyling zonder de hele scène opnieuw uit een tekstbriefing te maken.\n\nBegin met een directe actie en de gewenste transformatie: toevoegen, verwijderen, vervangen, veranderen, opnieuw belichten of restylen. Identificeer voor een productvervanging het zichtbare object en beschrijf de vervanging; geef vervolgens aan welke handbeweging, camerabeweging en omliggende omgeving behouden moeten blijven. Beschrijf voor een seizoensscène het weer of licht dat moet veranderen. Een beknopte, gerichte instructie geeft een duidelijker bewerkingsdoel dan een algemeen verzoek om de hele clip te verbeteren.\n\nKeyframesturing legt vast hoe het bewerkte resultaat er op een bepaald moment uit moet zien. Kies een frame dat het doel duidelijk toont: een ruim beeld voor een achtergrondwijziging of een dichterbijbeeld voor een klein kenmerk of accessoire. In de Edit Studio-workflow van Runway kan een bewerking van een stilstaand frame worden bekeken en verfijnd voordat die geselecteerde versie de videotransformatie stuurt. Vergelijk het bewerkte frame met de bron op de onderwerpdetails, randen en objecten die u wilt behouden en gebruik het daarna als visuele richting voor de clip.\n\nDe API van de producent ondersteunt bronvideo's van 2 tot 30 seconden en maximaal vijf optionele keyframebeelden op opgegeven tijdstippen. Houd elk sturend beeld gekoppeld aan het bedoelde punt in de bron en gebruik een klein aantal duidelijke wijzigingen in plaats van een verzameling tegenstrijdige visuele doelen. Aleph 2.0 staat los van het oudere Gen-4 Aleph-model; de producent identificeert het API-model afzonderlijk. Een keyframegestuurde bewerking is ook iets anders dan een tekst-naar-videomodel vragen om een niet-gerelateerd shot te creëren.\n\nDe gedocumenteerde voorbereidingsregels van Edit Studio gebruiken conventionele beeldverhoudingen, een bronresolutie tussen 480p en 1080p en 24–30 frames per seconde, met maximaal tien cuts of shotwisselingen. De workflow beveelt bronmateriaal op 720p of 1080p aan; beeldmateriaal boven 30 fps wordt gedownsampled en uploads langer dan 30 seconden worden in die interface ingekort. Dit zijn de voorbereidingsregels van de bewerkingsworkflow van de producent. Kies een bronsegment dat de volledige te bewerken gebeurtenis toont en waarvan het onderwerp zichtbaar blijft waar de wijziging moet doorlopen.\n\nHet model kan een gewijzigde achtergrond, kleding, object, licht of stijl door het beeldmateriaal heen doorvoeren. Een instructie voor extra beweging is nuttig wanneer de bewerking een nieuwe actie nodig heeft die in de bron ontbreekt en niet uit het keyframe alleen zou volgen, zoals een visueel effect dat zich in de tijd ontwikkelt. Veel bewerkingen hebben geen briefing voor extra beweging nodig, omdat het model de keyframeaanpassing binnen de bestaande scène animeert. Beschrijf een nieuwe beweging specifiek en houd die gescheiden van de visuele wijziging die het keyframe al vastlegt.\n\nDe bewerkingsworkflow van de producent past een bewerking standaard op de volledige video toe en kan deze tot een geselecteerd tijdlijnbereik beperken. Bewaar de oorspronkelijke clip zodat het geselecteerde resultaat met de bron kan worden vergeleken en voor een gericht vervolg kan worden gebruikt. Een praktische beoordeling kijkt verder dan het gekozen frame: controleer begin, midden, einde, elke cut en de periode waarin het doel kort aan het zicht wordt onttrokken. Het bruikbare resultaat is een herziene clip waarvan de gevraagde transformatie in de tijd consistent blijft en waarin de belangrijke ongewijzigde elementen hun rol behouden.\n\nMP4 is het standaardbestand voor afspelen en delen. De daarvoor geschikte Edit Studio-workflow van Runway voor volledige video's biedt ook ProRes als MOV-bestand met PCM-audio of een ZIP met afzonderlijke PNG-frames voor compositing. ProRes-profielen lopen van 422 Proxy tot 4444 XQ. Bewerkingen die tot een tijdlijnbereik zijn beperkt, geven MP4 terug en het uitvoerformaat wordt bij de start van de generatie gekozen, in plaats van na het voltooide resultaat te worden veranderd. Selecteer de exportvorm van de producent voor de volgende montagetaak en houd die gescheiden van de kernmogelijkheid van het model voor visuele bewerking.\n\nVergelijk voor een bruikbare voltooide bewerking de bedoelde vervanging, belichting of stijl met het keyframe en controleer omliggende details die niet moesten veranderen. Bewaar de geslaagde versie en herzie de specifieke instructie of het sturende frame dat verantwoordelijk is voor een afwijking. De rol van Aleph 2.0 is bronmateriaal via een duidelijk visueel doel te transformeren; een nieuwe soundtrack produceren, het gedrag van een toepassing veranderen of een afzonderlijke uitzendleveringsketen afronden zijn aanvullende taken rond de bewerkte video.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "54be2ca04e9899d3c472dc0d34040fe7fa9de4ce4e0fceb9e64d4150f29e079b",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nl-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Runway: Aleph 2.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>Runway /</span><code>runway/aleph-2</code><button type=\"button\" id=\"copy-id\">ID kopiëren</button></div><nav class=\"card-jump-nav\" aria-label=\"Onderdelen van de modelkaart\"><button type=\"button\" data-card-jump=\"overview\">Aan de slag</button><button type=\"button\" data-card-jump=\"methods\">Invoer en methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarieven</button><button type=\"button\" data-card-jump=\"examples\">Voorbeelden</button><button type=\"button\" data-card-jump=\"results\">Resultaten</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|runway%2Faleph-2\">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\">Aan de slag</h3><p class=\"mdesc-full\">Aleph 2.0 bewerkt bestaande video via gerichte tekstinstructies en keyframesturing. Gebruik het om een object te vervangen of achtergrond, kleding, belichting of stijl te veranderen en stuur daarbij welke details van de oorspronkelijke scène intact moeten blijven.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Tekst · Afbeeldingen · Audio · Video</dd></div><div><dt>Resultaten</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Over het model</summary><p class=\"note-s\" data-model-method-boundary>Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.</p><div class=\"mabout\" id=\"m-about\"><p>Aleph 2.0 is het in-contextvideobewerkingsmodel van Runway. Het transformeert bestaand traditioneel of gegenereerd beeldmateriaal met een geschreven instructie en optionele keyframesturing. De bedoelde workflow verandert het gevraagde deel van een scène met behoud van de omliggende compositie, belichting en details. Dat maakt het nuttig voor productvervanging, kledingwijziging, achtergrondtransformatie, nieuwe belichting of visuele restyling zonder de hele scène opnieuw uit een tekstbriefing te maken.</p><p>Begin met een directe actie en de gewenste transformatie: toevoegen, verwijderen, vervangen, veranderen, opnieuw belichten of restylen. Identificeer voor een productvervanging het zichtbare object en beschrijf de vervanging; geef vervolgens aan welke handbeweging, camerabeweging en omliggende omgeving behouden moeten blijven. Beschrijf voor een seizoensscène het weer of licht dat moet veranderen. Een beknopte, gerichte instructie geeft een duidelijker bewerkingsdoel dan een algemeen verzoek om de hele clip te verbeteren.</p><p>Keyframesturing legt vast hoe het bewerkte resultaat er op een bepaald moment uit moet zien. Kies een frame dat het doel duidelijk toont: een ruim beeld voor een achtergrondwijziging of een dichterbijbeeld voor een klein kenmerk of accessoire. In de Edit Studio-workflow van Runway kan een bewerking van een stilstaand frame worden bekeken en verfijnd voordat die geselecteerde versie de videotransformatie stuurt. Vergelijk het bewerkte frame met de bron op de onderwerpdetails, randen en objecten die u wilt behouden en gebruik het daarna als visuele richting voor de clip.</p><p>De API van de producent ondersteunt bronvideo&#39;s van 2 tot 30 seconden en maximaal vijf optionele keyframebeelden op opgegeven tijdstippen. Houd elk sturend beeld gekoppeld aan het bedoelde punt in de bron en gebruik een klein aantal duidelijke wijzigingen in plaats van een verzameling tegenstrijdige visuele doelen. Aleph 2.0 staat los van het oudere Gen-4 Aleph-model; de producent identificeert het API-model afzonderlijk. Een keyframegestuurde bewerking is ook iets anders dan een tekst-naar-videomodel vragen om een niet-gerelateerd shot te creëren.</p><p>De gedocumenteerde voorbereidingsregels van Edit Studio gebruiken conventionele beeldverhoudingen, een bronresolutie tussen 480p en 1080p en 24–30 frames per seconde, met maximaal tien cuts of shotwisselingen. De workflow beveelt bronmateriaal op 720p of 1080p aan; beeldmateriaal boven 30 fps wordt gedownsampled en uploads langer dan 30 seconden worden in die interface ingekort. Dit zijn de voorbereidingsregels van de bewerkingsworkflow van de producent. Kies een bronsegment dat de volledige te bewerken gebeurtenis toont en waarvan het onderwerp zichtbaar blijft waar de wijziging moet doorlopen.</p><p>Het model kan een gewijzigde achtergrond, kleding, object, licht of stijl door het beeldmateriaal heen doorvoeren. Een instructie voor extra beweging is nuttig wanneer de bewerking een nieuwe actie nodig heeft die in de bron ontbreekt en niet uit het keyframe alleen zou volgen, zoals een visueel effect dat zich in de tijd ontwikkelt. Veel bewerkingen hebben geen briefing voor extra beweging nodig, omdat het model de keyframeaanpassing binnen de bestaande scène animeert. Beschrijf een nieuwe beweging specifiek en houd die gescheiden van de visuele wijziging die het keyframe al vastlegt.</p><p>De bewerkingsworkflow van de producent past een bewerking standaard op de volledige video toe en kan deze tot een geselecteerd tijdlijnbereik beperken. Bewaar de oorspronkelijke clip zodat het geselecteerde resultaat met de bron kan worden vergeleken en voor een gericht vervolg kan worden gebruikt. Een praktische beoordeling kijkt verder dan het gekozen frame: controleer begin, midden, einde, elke cut en de periode waarin het doel kort aan het zicht wordt onttrokken. Het bruikbare resultaat is een herziene clip waarvan de gevraagde transformatie in de tijd consistent blijft en waarin de belangrijke ongewijzigde elementen hun rol behouden.</p><p>MP4 is het standaardbestand voor afspelen en delen. De daarvoor geschikte Edit Studio-workflow van Runway voor volledige video&#39;s biedt ook ProRes als MOV-bestand met PCM-audio of een ZIP met afzonderlijke PNG-frames voor compositing. ProRes-profielen lopen van 422 Proxy tot 4444 XQ. Bewerkingen die tot een tijdlijnbereik zijn beperkt, geven MP4 terug en het uitvoerformaat wordt bij de start van de generatie gekozen, in plaats van na het voltooide resultaat te worden veranderd. Selecteer de exportvorm van de producent voor de volgende montagetaak en houd die gescheiden van de kernmogelijkheid van het model voor visuele bewerking.</p><p>Vergelijk voor een bruikbare voltooide bewerking de bedoelde vervanging, belichting of stijl met het keyframe en controleer omliggende details die niet moesten veranderen. Bewaar de geslaagde versie en herzie de specifieke instructie of het sturende frame dat verantwoordelijk is voor een afwijking. De rol van Aleph 2.0 is bronmateriaal via een duidelijk visueel doel te transformeren; een nieuwe soundtrack produceren, het gedrag van een toepassing veranderen of een afzonderlijke uitzendleveringsketen afronden zijn aanvullende taken rond de bewerkte video.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Beschikbaar in Ailoot · invoer en methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Videogeneratie</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Invoer</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>Uitvoer</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Veld</th><th>Type</th><th>Vereiste</th><th>Waarden en limieten</th><th>Standaard</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>runway/aleph-2</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumaantal items: 1</div><div>Maximumaantal items: 1</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumlengte: 1</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Methodeparameters en levenscyclus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>model, input_references, prompt</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>Gebruik precies één werkelijke inhouds-URL van een voltooide video-asset die je toebehoort, met de teruggestuurde handtekening. De eigenaar, het type en het opgeslagen bewijs van de bytes van de asset moeten overeenkomen met de aanvraag.</td></tr></tbody></table></div><p>Levenscyclus: <code>asynchronous_job_then_owned_outputs</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code> · werkelijk teruggestuurde id of polling_url</p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarieven</h3><div class=\"card-result-process\" data-billing-basis><h5>Zo worden de uiteindelijke kosten berekend</h5><p class=\"note-s\">De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.</p><dl data-price-conditions><dt>Snelle modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de snelle modus geselecteerd is</span></dd><dt>Flex-modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de flex-modus geselecteerd is</span></dd><dt>Maximale redeneerinspanning</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt</span></dd></dl></div><div data-declared-tariff-pricing><h4>Geschatte tarieven ter vergelijking</h4><h4>Prijzen per configuratie</h4><p class=\"note-s\">Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties. Pas de getoonde regel voor het minimumbedrag van die configuratie toe.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Tariefstaffel</th><th>Verwachte hoeveelheid</th><th>Kostencomponent</th><th>Rekeneenheid</th><th>Factureringsvoorwaarden</th><th>Regel voor minimumbedrag</th><th>Kosten</th></tr></thead><tbody><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Basistarieven voor tokens</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>Basistarief</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Kostencomponent\"><span class=\"card-cell-label\">Kostencomponent</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Regel voor minimumbedrag\"><span class=\"card-cell-label\">Regel voor minimumbedrag</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · Invoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache lezen · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Kostencomponent\"><span class=\"card-cell-label\">Kostencomponent</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>In deze prijssleutel is geen bijkomende voorwaarde opgegeven.</td><td data-cell-label=\"Regel voor minimumbedrag\"><span class=\"card-cell-label\">Regel voor minimumbedrag</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.56</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Minimum per generatie</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Kostencomponent\"><span class=\"card-cell-label\">Kostencomponent</span>Minimumbedrag</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>minimumkosten voor generatie</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>In deze prijssleutel is geen bijkomende voorwaarde opgegeven.</td><td data-cell-label=\"Regel voor minimumbedrag\"><span class=\"card-cell-label\">Regel voor minimumbedrag</span>Ja</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>total · Minimum per generatie · Schatting uitsluitend ter vergelijking</span> <b>$1.12</b> <span class=\"price-unit\">minimumkosten voor generatie</span></div><p class=\"note-s\">Minimumbedrag per generatie; pas dit toe als minimum en niet als extra kost. Dit houdt geen minimumduur in.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Geschatte generatiekosten</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>schatting voor één generatie</td><td data-cell-label=\"Kostencomponent\"><span class=\"card-cell-label\">Kostencomponent</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Regel voor minimumbedrag\"><span class=\"card-cell-label\">Regel voor minimumbedrag</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking</span> <b>$0.56</b> <span class=\"price-unit\">schatting vóór generatie</span></div><p class=\"note-s\">Deze raming is geen extra kost of vast tarief voor de voltooide generatie.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. <a href=\"/docs/nl-be/billing/reserve/\">Zo werken reservering en afrekening →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Voorbeeldverzoeken</h3><h4>Ailoot Ultra · Videogeneratie</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-2561-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2561-panel-0\" aria-selected=\"true\" tabindex=\"0\">Gebruik daadwerkelijke invoer en bewaar het volledige resultaat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><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-2561-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2561-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_REFERENCES_JSON\n: &quot;${AILOOT_PROMPT:?Set the actual documented input value}&quot;\nexport AILOOT_PROMPT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;runway/aleph-2&#39;, &#39;input_references&#39;: &#39;${ACTUAL_OWNED_INPUT_REFERENCES}&#39;, &#39;prompt&#39;: &#39;${ACTUAL_EDIT_PROMPT}&#39;}\nrequest[&#39;input_references&#39;]=json.loads(os.environ[&#39;AILOOT_INPUT_REFERENCES_JSON&#39;])\nrequest[&#39;prompt&#39;]=os.environ[&#39;AILOOT_PROMPT&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Videogeneratie</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li></ul><h5>Alle voltooide bestanden opslaan</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-2562-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2562-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Alle voltooide bestanden</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><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-2562-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2562-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}&quot;\nexport AILOOT_STATUS_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[&quot;AILOOT_STATUS_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose the actual completed status file&quot;)\nr=json.loads(f.read_text())\nif r.get(&quot;status&quot;)!=&quot;completed&quot; or not isinstance(r.get(&quot;data&quot;),list) or not r[&quot;data&quot;]:raise SystemExit(&quot;Wait for a completed status with asset paths&quot;)\nurls=[]\nfor x in r[&quot;data&quot;]:\n    if not isinstance(x,str) or &quot;\\n&quot; in x or &quot;\\r&quot; in x:raise SystemExit(&quot;Invalid asset path&quot;)\n    u=urljoin(&quot;https://api.ailoot.ai&quot;,x)\n    z=urlsplit(u)\n    if z.scheme!=&quot;https&quot; or z.netloc!=&quot;api.ailoot.ai&quot; or z.username or z.password:raise SystemExit(&quot;Use the actual Ailoot asset paths from status&quot;)\n    urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; \\\n    -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o &quot;video-${index}.mp4&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>Alle voltooide resultaten bewaren</h5><p class=\"note-s\">Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.</p><p class=\"note-s\">Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de werkelijk teruggestuurde id/polling_url. Zet de oorspronkelijke opdracht voort; dien de aanmaakaanvraag niet opnieuw in.</p></div><details class=\"card-about\" data-output-fields><summary>Antwoordvelden</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Veld</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">outputs[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modelaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=runway%2Faleph-2&amp;route=Ultra&amp;caller=runway%2Faleph-2&amp;fmt=videos\"><code>runway/aleph-2</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\">Gebruik de hierboven getoonde methodepaden.</p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=runway%2Faleph-2&amp;route=Ultra&amp;caller=runway%2Faleph-2&amp;fmt=videos\"><code>runway/aleph-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "runway/aleph-2",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "runway/aleph-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|runway%2Faleph-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.",
          "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": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de werkelijk teruggestuurde id/polling_url. Zet de oorspronkelijke opdracht voort; dien de aanmaakaanvraag niet opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "runway/aleph-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "type": {
                      "const": "video_url"
                    },
                    "video_url": {
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "type",
                    "video_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 1,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "const": "video_url"
                      },
                      "video_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      }
                    },
                    "required": [
                      "type",
                      "video_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "runway/aleph-2"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "description": "Actual nonblank edit prompt; maximum10000 UTF-8 bytes.",
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "runway/aleph-2",
                "prompt": "${ACTUAL_EDIT_PROMPT}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gebruik precies één werkelijke inhouds-URL van een voltooide video-asset die je toebehoort, met de teruggestuurde handtekening. De eigenaar, het type en het opgeslagen bewijs van de bytes van de asset moeten overeenkomen met de aanvraag."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references",
              "prompt"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "werkelijk teruggestuurde id of polling_url",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "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": "In deze prijssleutel is geen bijkomende voorwaarde opgegeven.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.56",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.56",
                "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": "Minimumbedrag per generatie; pas dit toe als minimum en niet als extra kost. Dit houdt geen minimumduur in.",
            "dimensions": {
              "billing_component_role": "minimum",
              "conditions": "No additional condition is declared in this pricing key.",
              "is_floor_not_additive_charge": true,
              "quoted_unit": "minimum generation charge"
            },
            "label": "Minimum per generatie",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_generation",
                "billing_input": false,
                "estimate_only": true,
                "key": "minimum_cents_per_generation",
                "label": "Generation minimum",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "minimum generation charge",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "total",
                "unit": "generation"
              }
            ]
          },
          {
            "basis": "Deze raming is geen extra kost of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.56",
                "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.56",
                "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}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\n: \"${AILOOT_PROMPT:?Set the actual documented input value}\"\nexport AILOOT_PROMPT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'runway/aleph-2', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}', 'prompt': '${ACTUAL_EDIT_PROMPT}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nrequest['prompt']=os.environ['AILOOT_PROMPT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    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 Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Videogeneratie",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.56",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.56",
                "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": "Minimum charge per generation; apply it as a minimum, not an extra fee. No minimum duration is implied.",
            "dimensions": {
              "billing_component_role": "minimum",
              "conditions": "No additional condition is declared in this pricing key.",
              "is_floor_not_additive_charge": true,
              "quoted_unit": "minimum generation charge"
            },
            "label": "Generation minimum",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_generation",
                "billing_input": false,
                "estimate_only": true,
                "key": "minimum_cents_per_generation",
                "label": "Generation minimum",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "minimum generation charge",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "total",
                "unit": "generation"
              }
            ]
          },
          {
            "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.56",
                "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.56",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "runway/aleph-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "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.56",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.56",
            "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": "1.12",
            "amount_unit": "usd_per_generation",
            "billing_input": false,
            "estimate_only": true,
            "key": "minimum_cents_per_generation",
            "label": "Generation minimum",
            "native_amount_usd_per_unit": "1.12",
            "native_quantity": 1,
            "public_unit_label": "minimum generation charge",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "total",
            "unit": "generation"
          },
          {
            "amount": "0.56",
            "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.56",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "runway/aleph-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b9603edc3dbeaa1814e1f2bafcbaa7ad3aa21105f83bbda65e1cf33efa33028a",
    "input_html_sha256": "07cfe16417c77a7522eab18a64bf1b713ed074ebbfe63a8872be77aa345e2e24",
    "private_audit_sha256": "9ba02ebadbbc9720fd893dd36c6cc8068821572a159cabe9bf64a4ee6d1d8716",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl-be/runway-aleph-2/",
    "description": "Aleph 2.0 bewerkt bestaande video via gerichte tekstinstructies en keyframesturing. Gebruik het om een object te vervangen of achtergrond, kleding, belichting of stijl te veranderen en stuur daarbij welke details van de oorspronkelijke scène intact moeten blijven.",
    "locale": "nl-be",
    "md_url": "https://ailoot.ai/models/nl-be/runway-aleph-2/index.md",
    "title": "Runway: Aleph 2.0 — Ailoot",
    "url": "https://ailoot.ai/models/nl-be/runway-aleph-2/"
  },
  "rawModel": {
    "about": "Aleph 2.0 is het in-contextvideobewerkingsmodel van Runway. Het transformeert bestaand traditioneel of gegenereerd beeldmateriaal met een geschreven instructie en optionele keyframesturing. De bedoelde workflow verandert het gevraagde deel van een scène met behoud van de omliggende compositie, belichting en details. Dat maakt het nuttig voor productvervanging, kledingwijziging, achtergrondtransformatie, nieuwe belichting of visuele restyling zonder de hele scène opnieuw uit een tekstbriefing te maken.\n\nBegin met een directe actie en de gewenste transformatie: toevoegen, verwijderen, vervangen, veranderen, opnieuw belichten of restylen. Identificeer voor een productvervanging het zichtbare object en beschrijf de vervanging; geef vervolgens aan welke handbeweging, camerabeweging en omliggende omgeving behouden moeten blijven. Beschrijf voor een seizoensscène het weer of licht dat moet veranderen. Een beknopte, gerichte instructie geeft een duidelijker bewerkingsdoel dan een algemeen verzoek om de hele clip te verbeteren.\n\nKeyframesturing legt vast hoe het bewerkte resultaat er op een bepaald moment uit moet zien. Kies een frame dat het doel duidelijk toont: een ruim beeld voor een achtergrondwijziging of een dichterbijbeeld voor een klein kenmerk of accessoire. In de Edit Studio-workflow van Runway kan een bewerking van een stilstaand frame worden bekeken en verfijnd voordat die geselecteerde versie de videotransformatie stuurt. Vergelijk het bewerkte frame met de bron op de onderwerpdetails, randen en objecten die u wilt behouden en gebruik het daarna als visuele richting voor de clip.\n\nDe API van de producent ondersteunt bronvideo's van 2 tot 30 seconden en maximaal vijf optionele keyframebeelden op opgegeven tijdstippen. Houd elk sturend beeld gekoppeld aan het bedoelde punt in de bron en gebruik een klein aantal duidelijke wijzigingen in plaats van een verzameling tegenstrijdige visuele doelen. Aleph 2.0 staat los van het oudere Gen-4 Aleph-model; de producent identificeert het API-model afzonderlijk. Een keyframegestuurde bewerking is ook iets anders dan een tekst-naar-videomodel vragen om een niet-gerelateerd shot te creëren.\n\nDe gedocumenteerde voorbereidingsregels van Edit Studio gebruiken conventionele beeldverhoudingen, een bronresolutie tussen 480p en 1080p en 24–30 frames per seconde, met maximaal tien cuts of shotwisselingen. De workflow beveelt bronmateriaal op 720p of 1080p aan; beeldmateriaal boven 30 fps wordt gedownsampled en uploads langer dan 30 seconden worden in die interface ingekort. Dit zijn de voorbereidingsregels van de bewerkingsworkflow van de producent. Kies een bronsegment dat de volledige te bewerken gebeurtenis toont en waarvan het onderwerp zichtbaar blijft waar de wijziging moet doorlopen.\n\nHet model kan een gewijzigde achtergrond, kleding, object, licht of stijl door het beeldmateriaal heen doorvoeren. Een instructie voor extra beweging is nuttig wanneer de bewerking een nieuwe actie nodig heeft die in de bron ontbreekt en niet uit het keyframe alleen zou volgen, zoals een visueel effect dat zich in de tijd ontwikkelt. Veel bewerkingen hebben geen briefing voor extra beweging nodig, omdat het model de keyframeaanpassing binnen de bestaande scène animeert. Beschrijf een nieuwe beweging specifiek en houd die gescheiden van de visuele wijziging die het keyframe al vastlegt.\n\nDe bewerkingsworkflow van de producent past een bewerking standaard op de volledige video toe en kan deze tot een geselecteerd tijdlijnbereik beperken. Bewaar de oorspronkelijke clip zodat het geselecteerde resultaat met de bron kan worden vergeleken en voor een gericht vervolg kan worden gebruikt. Een praktische beoordeling kijkt verder dan het gekozen frame: controleer begin, midden, einde, elke cut en de periode waarin het doel kort aan het zicht wordt onttrokken. Het bruikbare resultaat is een herziene clip waarvan de gevraagde transformatie in de tijd consistent blijft en waarin de belangrijke ongewijzigde elementen hun rol behouden.\n\nMP4 is het standaardbestand voor afspelen en delen. De daarvoor geschikte Edit Studio-workflow van Runway voor volledige video's biedt ook ProRes als MOV-bestand met PCM-audio of een ZIP met afzonderlijke PNG-frames voor compositing. ProRes-profielen lopen van 422 Proxy tot 4444 XQ. Bewerkingen die tot een tijdlijnbereik zijn beperkt, geven MP4 terug en het uitvoerformaat wordt bij de start van de generatie gekozen, in plaats van na het voltooide resultaat te worden veranderd. Selecteer de exportvorm van de producent voor de volgende montagetaak en houd die gescheiden van de kernmogelijkheid van het model voor visuele bewerking.\n\nVergelijk voor een bruikbare voltooide bewerking de bedoelde vervanging, belichting of stijl met het keyframe en controleer omliggende details die niet moesten veranderen. Bewaar de geslaagde versie en herzie de specifieke instructie of het sturende frame dat verantwoordelijk is voor een afwijking. De rol van Aleph 2.0 is bronmateriaal via een duidelijk visueel doel te transformeren; een nieuwe soundtrack produceren, het gedrag van een toepassing veranderen of een afzonderlijke uitzendleveringsketen afronden zijn aanvullende taken rond de bewerkte video.",
    "alias_of": null,
    "aliases": [],
    "author": "Runway",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.56",
            "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.56",
            "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": "De volledige prijsinformatie voor de configuratie vindt u bij de details."
      }
    ],
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "runway/aleph-2",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.",
          "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": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de werkelijk teruggestuurde id/polling_url. Zet de oorspronkelijke opdracht voort; dien de aanmaakaanvraag niet opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "runway/aleph-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "type": {
                      "const": "video_url"
                    },
                    "video_url": {
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "type",
                    "video_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 1,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "const": "video_url"
                      },
                      "video_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      }
                    },
                    "required": [
                      "type",
                      "video_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "runway/aleph-2"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "description": "Actual nonblank edit prompt; maximum10000 UTF-8 bytes.",
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "runway/aleph-2",
                "prompt": "${ACTUAL_EDIT_PROMPT}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gebruik precies één werkelijke inhouds-URL van een voltooide video-asset die je toebehoort, met de teruggestuurde handtekening. De eigenaar, het type en het opgeslagen bewijs van de bytes van de asset moeten overeenkomen met de aanvraag."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references",
              "prompt"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "werkelijk teruggestuurde id of polling_url",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "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": "In deze prijssleutel is geen bijkomende voorwaarde opgegeven.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.56",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.56",
                "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": "Minimumbedrag per generatie; pas dit toe als minimum en niet als extra kost. Dit houdt geen minimumduur in.",
            "dimensions": {
              "billing_component_role": "minimum",
              "conditions": "No additional condition is declared in this pricing key.",
              "is_floor_not_additive_charge": true,
              "quoted_unit": "minimum generation charge"
            },
            "label": "Minimum per generatie",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_generation",
                "billing_input": false,
                "estimate_only": true,
                "key": "minimum_cents_per_generation",
                "label": "Generation minimum",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "minimum generation charge",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "total",
                "unit": "generation"
              }
            ]
          },
          {
            "basis": "Deze raming is geen extra kost of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.56",
                "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.56",
                "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}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\n: \"${AILOOT_PROMPT:?Set the actual documented input value}\"\nexport AILOOT_PROMPT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'runway/aleph-2', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}', 'prompt': '${ACTUAL_EDIT_PROMPT}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nrequest['prompt']=os.environ['AILOOT_PROMPT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    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 Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Videogeneratie",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.56",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.56",
                "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": "Minimum charge per generation; apply it as a minimum, not an extra fee. No minimum duration is implied.",
            "dimensions": {
              "billing_component_role": "minimum",
              "conditions": "No additional condition is declared in this pricing key.",
              "is_floor_not_additive_charge": true,
              "quoted_unit": "minimum generation charge"
            },
            "label": "Generation minimum",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_generation",
                "billing_input": false,
                "estimate_only": true,
                "key": "minimum_cents_per_generation",
                "label": "Generation minimum",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "minimum generation charge",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "total",
                "unit": "generation"
              }
            ]
          },
          {
            "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.56",
                "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.56",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "runway/aleph-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "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.56",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.56",
            "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": "1.12",
            "amount_unit": "usd_per_generation",
            "billing_input": false,
            "estimate_only": true,
            "key": "minimum_cents_per_generation",
            "label": "Generation minimum",
            "native_amount_usd_per_unit": "1.12",
            "native_quantity": 1,
            "public_unit_label": "minimum generation charge",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "total",
            "unit": "generation"
          },
          {
            "amount": "0.56",
            "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.56",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "runway/aleph-2",
        "request_model_id": "runway/aleph-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Runway: Aleph 2.0",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.56,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.56,
      "varies": false
    },
    "short": "Aleph 2.0 bewerkt bestaande video via gerichte tekstinstructies en keyframesturing. Gebruik het om een object te vervangen of achtergrond, kleding, belichting of stijl te veranderen en stuur daarbij welke details van de oorspronkelijke scène intact moeten blijven."
  },
  "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": "Aleph 2.0 bewerkt bestaande video via gerichte tekstinstructies en keyframesturing. Gebruik het om een object te vervangen of achtergrond, kleding, belichting of stijl te veranderen en stuur daarbij welke details van de oorspronkelijke scène intact moeten blijven.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "6bf45e0a834abc477948db2fa812807914bfd214e9509165149da0c82e55d21d",
    "renderer_sha256": "a5aefc67f30427b283b8d8bf7955908a0216c6e5e4ca3cc1887842431e2b1ee6"
  },
  "sourceRevision": "bbd4fa5888a3b3e0f1c4e6f300e9c8afe5087935e79a7e7df31ceee75321cafe"
}
