{
  "aboutHtml": "<p>DOP Preview animeert aangeleverde beelden via Higgsfields gedocumenteerde werkwijze van afbeelding naar video. De exacte selector is dop-preview. Gebruik dop-preview als waarde van model op het hoogste niveau en als model-waarde binnen het gedocumenteerde params-object. De afbeelding levert het visuele materiaal, terwijl bewegingssjablonen en de geschreven aanwijzingen de gevraagde beweging en het effect sturen.</p><p>Bereid een referentieafbeelding voor waarin het beoogde onderwerp, belangrijke details en de omringende ruimte goed zichtbaar zijn. De handleiding beveelt een afbeelding met hoge resolutie aan voor duidelijkere details. Kies voor een productscène een aanzicht dat de vorm van het object en de oppervlakken toont die tijdens de beweging herkenbaar moeten blijven. Benoem voor een persoon of omgeving het visuele kenmerk dat de beweging moet benadrukken. Lever de werkelijke URL van de referentieafbeelding via de afbeeldingsinvoer uit het methodevoorbeeld aan.</p><p>De bewerking documenteert één of twee bewegingssjablonen. Wanneer twee worden aangeleverd, beschrijft de handleiding hun effecten als gecombineerd. De beschrijvingen van de voorinstellingen omvatten camerabeweging, rotatie van het onderwerp en visuele transformaties; Dolly In beschrijft bijvoorbeeld een camerabeweging naar het onderwerp toe, terwijl 3D Rotation een onderwerp of product beschrijft dat ter plaatse draait. Kies de gedocumenteerde sjabloonidentificatoren die bij de beoogde reeks passen en bewaar elke identificator met de bijbehorende strength-waarde.</p><p>De instelling strength voor de bewegingssterkte is een getal van 0 tot 1, met 0.8 als gedocumenteerde standaard. De handleiding beschrijft 0.3 als een subtiel effect en 1 als sterke beweging. Kies de intensiteit op basis van het detail dat leesbaar moet blijven en controleer de volledige gegenereerde handeling. Een bewegingsbeschrijving en de bijbehorende strength-waarde hebben verschillende doelen: het sjabloon kiest het effect, terwijl strength de intensiteit regelt.</p><p>Het veld prompt moet volgens zijn beschrijving aanwezig zijn, maar een lege tekenreeks is toegestaan. Voor effecten die door sjablonen worden gestuurd beveelt de handleiding aan prompt leeg te laten; wanneer tekst wordt aangeleverd, beveelt zij aan de beschrijving van het sjabloon op te nemen, omdat de prompt het resultaat sterk kan veranderen. De instelling enhance_prompt schakelt promptoptimalisatie in en staat volgens de documentatie standaard op true. Bewaar de tekst en deze instelling bij de referentieafbeelding en gekozen sjablonen wanneer u versies vergelijkt.</p><p>De instelling seed accepteert een geheel getal van 1 tot en met 1.000.000. Bewaar de gekozen seed bij de generatie-instellingen. De aanvraag bevat ook een veld seconds met een gehele waarde; bewaar de gebruikte waarde bij de resulterende clip en inspecteer de werkelijke timing en kadrering van de clip. De booleaanse instelling check_nsfw schakelt het gedocumenteerde inhoudsfilter in en staat standaard op true. Deze instellingen behoren bij de aanvraag van afbeelding naar video en moeten met het exact gekozen model verbonden blijven.</p><p>Generatie verloopt asynchroon. Bewaar de teruggegeven taakidentiteit tijdens het volgen van de ingestelde status- en resultaatopvraag. De resultaatkoppeling leest voltooide taakvermeldingen en hun ruwe resultaat-URL’s. Sla elk voltooid videoresultaat op en bewaar de taakidentificator bij de teruggegeven URL, zodat alle voltooide vermeldingen samen het resultaat van de bewerking vormen.</p><p>Controleer de volledige video aan de hand van de aangeleverde afbeelding, het gekozen effect en de geschreven aanwijzingen: het uiterlijk van het onderwerp, de beweging, de kadrering en het eindbeeld. Benoem voor een herziening het concrete visuele detail dat moet veranderen en behoud de geslaagde delen van de aanvraag. Bewaar de oorspronkelijke afbeeldingsreferentie, exacte selector, prompt, bewegingsidentificatoren, strength-waarden, seed, gevraagde instellingen en voltooide resultaten bij elkaar, zodat de volgende vergelijking de werkelijke generatie gebruikt.</p>",
  "aboutText": "DOP Preview animeert aangeleverde beelden via Higgsfields gedocumenteerde werkwijze van afbeelding naar video. De exacte selector is dop-preview. Gebruik dop-preview als waarde van model op het hoogste niveau en als model-waarde binnen het gedocumenteerde params-object. De afbeelding levert het visuele materiaal, terwijl bewegingssjablonen en de geschreven aanwijzingen de gevraagde beweging en het effect sturen.\n\nBereid een referentieafbeelding voor waarin het beoogde onderwerp, belangrijke details en de omringende ruimte goed zichtbaar zijn. De handleiding beveelt een afbeelding met hoge resolutie aan voor duidelijkere details. Kies voor een productscène een aanzicht dat de vorm van het object en de oppervlakken toont die tijdens de beweging herkenbaar moeten blijven. Benoem voor een persoon of omgeving het visuele kenmerk dat de beweging moet benadrukken. Lever de werkelijke URL van de referentieafbeelding via de afbeeldingsinvoer uit het methodevoorbeeld aan.\n\nDe bewerking documenteert één of twee bewegingssjablonen. Wanneer twee worden aangeleverd, beschrijft de handleiding hun effecten als gecombineerd. De beschrijvingen van de voorinstellingen omvatten camerabeweging, rotatie van het onderwerp en visuele transformaties; Dolly In beschrijft bijvoorbeeld een camerabeweging naar het onderwerp toe, terwijl 3D Rotation een onderwerp of product beschrijft dat ter plaatse draait. Kies de gedocumenteerde sjabloonidentificatoren die bij de beoogde reeks passen en bewaar elke identificator met de bijbehorende strength-waarde.\n\nDe instelling strength voor de bewegingssterkte is een getal van 0 tot 1, met 0.8 als gedocumenteerde standaard. De handleiding beschrijft 0.3 als een subtiel effect en 1 als sterke beweging. Kies de intensiteit op basis van het detail dat leesbaar moet blijven en controleer de volledige gegenereerde handeling. Een bewegingsbeschrijving en de bijbehorende strength-waarde hebben verschillende doelen: het sjabloon kiest het effect, terwijl strength de intensiteit regelt.\n\nHet veld prompt moet volgens zijn beschrijving aanwezig zijn, maar een lege tekenreeks is toegestaan. Voor effecten die door sjablonen worden gestuurd beveelt de handleiding aan prompt leeg te laten; wanneer tekst wordt aangeleverd, beveelt zij aan de beschrijving van het sjabloon op te nemen, omdat de prompt het resultaat sterk kan veranderen. De instelling enhance_prompt schakelt promptoptimalisatie in en staat volgens de documentatie standaard op true. Bewaar de tekst en deze instelling bij de referentieafbeelding en gekozen sjablonen wanneer u versies vergelijkt.\n\nDe instelling seed accepteert een geheel getal van 1 tot en met 1.000.000. Bewaar de gekozen seed bij de generatie-instellingen. De aanvraag bevat ook een veld seconds met een gehele waarde; bewaar de gebruikte waarde bij de resulterende clip en inspecteer de werkelijke timing en kadrering van de clip. De booleaanse instelling check_nsfw schakelt het gedocumenteerde inhoudsfilter in en staat standaard op true. Deze instellingen behoren bij de aanvraag van afbeelding naar video en moeten met het exact gekozen model verbonden blijven.\n\nGeneratie verloopt asynchroon. Bewaar de teruggegeven taakidentiteit tijdens het volgen van de ingestelde status- en resultaatopvraag. De resultaatkoppeling leest voltooide taakvermeldingen en hun ruwe resultaat-URL’s. Sla elk voltooid videoresultaat op en bewaar de taakidentificator bij de teruggegeven URL, zodat alle voltooide vermeldingen samen het resultaat van de bewerking vormen.\n\nControleer de volledige video aan de hand van de aangeleverde afbeelding, het gekozen effect en de geschreven aanwijzingen: het uiterlijk van het onderwerp, de beweging, de kadrering en het eindbeeld. Benoem voor een herziening het concrete visuele detail dat moet veranderen en behoud de geslaagde delen van de aanvraag. Bewaar de oorspronkelijke afbeeldingsreferentie, exacte selector, prompt, bewegingsidentificatoren, strength-waarden, seed, gevraagde instellingen en voltooide resultaten bij elkaar, zodat de volgende vergelijking de werkelijke generatie gebruikt.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "e4c22591df88d5954fb5e0185b949f532b53c5ee6dc8faa40cd701dd993a4ddc",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Higgsfield: DOP Preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>Higgsfield /</span><code>dop-preview</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|dop-preview\">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\">DOP Preview zet aangeleverde beelden om in video via de gedocumenteerde werkwijze met bewegingssjablonen. De exacte selector dop-preview ondersteunt één of twee effecten; sterkte, prompt en seed blijven bij het voltooide resultaat bewaard.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Afbeeldingen · Tekst</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>DOP Preview animeert aangeleverde beelden via Higgsfields gedocumenteerde werkwijze van afbeelding naar video. De exacte selector is dop-preview. Gebruik dop-preview als waarde van model op het hoogste niveau en als model-waarde binnen het gedocumenteerde params-object. De afbeelding levert het visuele materiaal, terwijl bewegingssjablonen en de geschreven aanwijzingen de gevraagde beweging en het effect sturen.</p><p>Bereid een referentieafbeelding voor waarin het beoogde onderwerp, belangrijke details en de omringende ruimte goed zichtbaar zijn. De handleiding beveelt een afbeelding met hoge resolutie aan voor duidelijkere details. Kies voor een productscène een aanzicht dat de vorm van het object en de oppervlakken toont die tijdens de beweging herkenbaar moeten blijven. Benoem voor een persoon of omgeving het visuele kenmerk dat de beweging moet benadrukken. Lever de werkelijke URL van de referentieafbeelding via de afbeeldingsinvoer uit het methodevoorbeeld aan.</p><p>De bewerking documenteert één of twee bewegingssjablonen. Wanneer twee worden aangeleverd, beschrijft de handleiding hun effecten als gecombineerd. De beschrijvingen van de voorinstellingen omvatten camerabeweging, rotatie van het onderwerp en visuele transformaties; Dolly In beschrijft bijvoorbeeld een camerabeweging naar het onderwerp toe, terwijl 3D Rotation een onderwerp of product beschrijft dat ter plaatse draait. Kies de gedocumenteerde sjabloonidentificatoren die bij de beoogde reeks passen en bewaar elke identificator met de bijbehorende strength-waarde.</p><p>De instelling strength voor de bewegingssterkte is een getal van 0 tot 1, met 0.8 als gedocumenteerde standaard. De handleiding beschrijft 0.3 als een subtiel effect en 1 als sterke beweging. Kies de intensiteit op basis van het detail dat leesbaar moet blijven en controleer de volledige gegenereerde handeling. Een bewegingsbeschrijving en de bijbehorende strength-waarde hebben verschillende doelen: het sjabloon kiest het effect, terwijl strength de intensiteit regelt.</p><p>Het veld prompt moet volgens zijn beschrijving aanwezig zijn, maar een lege tekenreeks is toegestaan. Voor effecten die door sjablonen worden gestuurd beveelt de handleiding aan prompt leeg te laten; wanneer tekst wordt aangeleverd, beveelt zij aan de beschrijving van het sjabloon op te nemen, omdat de prompt het resultaat sterk kan veranderen. De instelling enhance_prompt schakelt promptoptimalisatie in en staat volgens de documentatie standaard op true. Bewaar de tekst en deze instelling bij de referentieafbeelding en gekozen sjablonen wanneer u versies vergelijkt.</p><p>De instelling seed accepteert een geheel getal van 1 tot en met 1.000.000. Bewaar de gekozen seed bij de generatie-instellingen. De aanvraag bevat ook een veld seconds met een gehele waarde; bewaar de gebruikte waarde bij de resulterende clip en inspecteer de werkelijke timing en kadrering van de clip. De booleaanse instelling check_nsfw schakelt het gedocumenteerde inhoudsfilter in en staat standaard op true. Deze instellingen behoren bij de aanvraag van afbeelding naar video en moeten met het exact gekozen model verbonden blijven.</p><p>Generatie verloopt asynchroon. Bewaar de teruggegeven taakidentiteit tijdens het volgen van de ingestelde status- en resultaatopvraag. De resultaatkoppeling leest voltooide taakvermeldingen en hun ruwe resultaat-URL’s. Sla elk voltooid videoresultaat op en bewaar de taakidentificator bij de teruggegeven URL, zodat alle voltooide vermeldingen samen het resultaat van de bewerking vormen.</p><p>Controleer de volledige video aan de hand van de aangeleverde afbeelding, het gekozen effect en de geschreven aanwijzingen: het uiterlijk van het onderwerp, de beweging, de kadrering en het eindbeeld. Benoem voor een herziening het concrete visuele detail dat moet veranderen en behoud de geslaagde delen van de aanvraag. Bewaar de oorspronkelijke afbeeldingsreferentie, exacte selector, prompt, bewegingsidentificatoren, strength-waarden, seed, gevraagde instellingen en voltooide resultaten bij elkaar, zodat de volgende vergelijking de werkelijke generatie gebruikt.</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 · Videomateriaal</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Invoertypen</dt><dd><code>image</code>, <code>text</code></dd></div><div><dt>Uitvoertypen</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 data-parameter-availability=\"source_interface\"><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>dop-preview</div><div>Voorwaarden: Ailoot-modelidentificatie.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</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>Voorwaarden: Parameters voor afbeelding-naar-video; behoud deze envelop.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.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>dop-preview</div><div>Voorwaarden: Gebruik dezelfde modelidentificatie als model op het hoogste niveau.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.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>Voorwaarden: Behoud dit veld; een lege tekenreeks is gedocumenteerd. Geschreven aanwijzingen hebben grote invloed op het geselecteerde bewegingseffect.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.seconds</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Gevraagde duur; er wordt geen gedocumenteerd bereik of standaardwaarde verondersteld.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.motions</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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Kies één of twee gedocumenteerde bewegingssjablonen.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.motions[].id</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>Voorwaarden: Bewegingsidentificatie in het gedocumenteerde werkende verzoekvoorbeeld.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.motions[].strength</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>number</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>Minimum: 0</div><div>Maximum: 1</div><div>Voorwaarden: Bewegingsintensiteit: 0.3 wordt beschreven als subtiel en 1 als sterk.</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>0,8</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.input_images</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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Referentieafbeeldingen, met de array van image_url-objecten uit het werkende voorbeeld.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.input_images[].type</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>image_url</div><div>Voorwaarden: Referentieweergave.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.input_images[].image_url</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>Voorwaarden: Uw eigen toegankelijke referentieafbeeldings-URL.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.enhance_prompt</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Promptverbetering.</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>true</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.check_nsfw</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Inhoudsfiltering.</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>true</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">params.seed</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimum: 1</div><div>Maximum: 1.000.000</div><div>Voorwaarden: Seed voor consistente uitvoer.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">webhook</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Optionele gedocumenteerde webhookinstellingen; ophalen van resultaten die u bezit gebruikt de Ailoot-taakpaden.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">webhook.url</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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Uw ontvanger-URL.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">webhook.secret</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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Uw ontvangergeheim.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">callback</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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Optionele callbackontvanger; de gedocumenteerde ontvanger antwoordt met HTTP 200.</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaties van invoermaterialen</summary><p class=\"note-s\"><b></b></p></details><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, params</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>params.seconds, params.motions, params.input_images, params.enhance_prompt, params.check_nsfw, params.seed, webhook, webhook.url, webhook.secret, callback</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>image, text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>true</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>validation_scope</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>Het model routeert het verzoek; de parameters-envelop volgt het gedemonstreerde verzoek voor afbeelding-naar-video.</td></tr></tbody></table></div><p>Methodealiasnamen: <code>/v1/videos/generations</code></p><p>Levenscyclus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">Gebruik dezelfde modelidentificatie op het hoogste niveau en binnen params.</p><p class=\"note-s\">Maak eenmaal aan en gebruik daarna de geretourneerde openbare id en polling_url voor de oorspronkelijke operatie.</p><p class=\"note-s\">Haal elke voltooide video op die u bezit; controleer de werkelijke duur en afmetingen in het resultaat.</p><p class=\"note-s\">Vervang YOUR_ACCESSIBLE_IMAGE_URL in het voorbeeld door uw eigen referentieafbeeldings-URL.</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 weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn 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 is geselecteerd</span></dd><dt>Flexmodus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de modus flex is geselecteerd</span></dd><dt>Maximale redeneerinspanning</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer bij 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.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Tariefstaffel</th><th>Verwachte hoeveelheid</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=\"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>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=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking</span> <b>$1.24</b> <span class=\"price-unit\">schatting vóór generatie</span></div><p class=\"note-s\">Deze schatting is geen extra bedrag 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/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 · Videomateriaal</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-2784-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2784-panel-0\" aria-selected=\"true\" tabindex=\"0\">JSON · video maken</button><button class=\"cg-tab\" id=\"model-code-2784-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2784-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · lees de oorspronkelijke taak</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-2784-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2784-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;dop-preview&quot;,\n  &quot;params&quot;: {\n    &quot;model&quot;: &quot;dop-preview&quot;,\n    &quot;prompt&quot;: &quot;a cat&quot;,\n    &quot;seed&quot;: 500000,\n    &quot;motions&quot;: [\n      {\n        &quot;id&quot;: &quot;2bae49e6-ffe7-42a8-a73f-d44632c4acaa&quot;,\n        &quot;strength&quot;: 0.5\n      }\n    ],\n    &quot;input_images&quot;: [\n      {\n        &quot;type&quot;: &quot;image_url&quot;,\n        &quot;image_url&quot;: &quot;YOUR_ACCESSIBLE_IMAGE_URL&quot;\n      }\n    ],\n    &quot;enhance_prompt&quot;: true,\n    &quot;check_nsfw&quot;: true\n  }\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-2784-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2784-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i:raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use the actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Videomateriaal</h4><p class=\"note-s\">Bewaar de geretourneerde taken en hun statussen. Lees elk voltooid videoresultaat dat u bezit.</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><div class=\"card-result-process\" data-all-results><h5>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\">Haal alle daadwerkelijke voltooide uitvoer op; veronderstel geen vast aantal.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Bewaar het oorspronkelijke antwoord en de geretourneerde taakidentiteit; een onbekende status of onduidelijke verzending geeft geen toestemming voor een nieuwe aanmaak.</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><th>Betekenis</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>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Openbare Ailoot-taak- of operatie-identificatie.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Oorspronkelijke taakidentificatie, afzonderlijk van de openbare id.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Geretourneerd Ailoot-opzoekpad.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">jobs[].id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Daadwerkelijk geretourneerde taakidentificatie.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">jobs[].status</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Status van elke geretourneerde taak.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">jobs[].results.raw.url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Elke voltooide video is beschikbaar via een ondertekende URL in eigendom van Ailoot.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fouten en vervolgstappen</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwoord</th><th>Voorwaarde</th><th>Volgende stap</th></tr></thead><tbody><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Ongeldige JSON/model of een ongeldige inhoudsindex.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Ongeldige Ailoot API-sleutel.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>403 · <code>permission_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De API-sleutelgroep is niet toegelaten tot deze mediaroute.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De oorspronkelijke taak of gevraagde uitvoer ontbreekt of is niet in eigendom van dezelfde gebruiker/API-sleutel/groep.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>502 · <code>result_pending_check</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De oorspronkelijke indiening of status is onvolledig of kan niet worden afgestemd; bewaar de oorspronkelijke ID en dien niet opnieuw in.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De oorspronkelijke koppeling, route of media die u bezit worden nog gecontroleerd; blijf die oorspronkelijke operatie controleren.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span></td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code>server_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De mediaservice of opslag voor oorspronkelijke taken is niet beschikbaar.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</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=dop-preview&amp;route=Ultra&amp;caller=dop-preview&amp;fmt=videos\"><code>dop-preview</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=dop-preview&amp;route=Ultra&amp;caller=dop-preview&amp;fmt=videos\"><code>dop-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "dop-preview",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "dop-preview",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|dop-preview",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn 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": {
            "errors": [
              {
                "condition": "Ongeldige JSON/model of een ongeldige inhoudsindex.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Ongeldige Ailoot API-sleutel.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "De API-sleutelgroep is niet toegelaten tot deze mediaroute.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "De oorspronkelijke taak of gevraagde uitvoer ontbreekt of is niet in eigendom van dezelfde gebruiker/API-sleutel/groep.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "De oorspronkelijke indiening of status is onvolledig of kan niet worden afgestemd; bewaar de oorspronkelijke ID en dien niet opnieuw in.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "De oorspronkelijke koppeling, route of media die u bezit worden nog gecontroleerd; blijf die oorspronkelijke operatie controleren.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "De mediaservice of opslag voor oorspronkelijke taken is niet beschikbaar.",
                "http_status": 503,
                "type": "server_error"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [],
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "state_field": "jobs[].status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Bewaar het oorspronkelijke antwoord en de geretourneerde taakidentiteit; een onbekende status of onduidelijke verzending geeft geen toestemming voor een nieuwe aanmaak.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "image",
                "text"
              ]
            ],
            "operation_modes": [
              "image_to_video"
            ],
            "outputs": {
              "all_results": "Haal alle daadwerkelijke voltooide uitvoer op; veronderstel geen vast aantal.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Openbare Ailoot-taak- of operatie-identificatie.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Oorspronkelijke taakidentificatie, afzonderlijk van de openbare id.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Geretourneerd Ailoot-opzoekpad.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Daadwerkelijk geretourneerde taakidentificatie.",
                  "name": "jobs[].id",
                  "type": "string"
                },
                {
                  "description": "Status van elke geretourneerde taak.",
                  "name": "jobs[].status",
                  "type": "string"
                },
                {
                  "description": "Elke voltooide video is beschikbaar via een ondertekende URL in eigendom van Ailoot.",
                  "name": "jobs[].results.raw.url",
                  "type": "string"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Selected outputs are copied and verified before owned publication.",
              "result": "Bewaar de geretourneerde taken en hun statussen. Lees elk voltooid videoresultaat dat u bezit."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "conditions": "Ailoot-modelidentificatie.",
                "default": null,
                "default_known": false,
                "enum": [
                  "dop-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Parameters voor afbeelding-naar-video; behoud deze envelop.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Gebruik dezelfde modelidentificatie als model op het hoogste niveau.",
                "default": null,
                "default_known": false,
                "enum": [
                  "dop-preview"
                ],
                "enum_known": true,
                "name": "params.model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Behoud dit veld; een lege tekenreeks is gedocumenteerd. Geschreven aanwijzingen hebben grote invloed op het geselecteerde bewegingseffect.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Gevraagde duur; er wordt geen gedocumenteerd bereik of standaardwaarde verondersteld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.seconds",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Kies één of twee gedocumenteerde bewegingssjablonen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 2,
                "minItems": 1,
                "name": "params.motions",
                "required": false,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Bewegingsidentificatie in het gedocumenteerde werkende verzoekvoorbeeld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.motions[].id",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bewegingsintensiteit: 0.3 wordt beschreven als subtiel en 1 als sterk.",
                "default": 0.8,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "params.motions[].strength",
                "required": true,
                "type": "number"
              },
              {
                "availability": "source_interface",
                "conditions": "Referentieafbeeldingen, met de array van image_url-objecten uit het werkende voorbeeld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.input_images",
                "required": false,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Referentieweergave.",
                "default": null,
                "default_known": false,
                "enum": [
                  "image_url"
                ],
                "enum_known": true,
                "name": "params.input_images[].type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw eigen toegankelijke referentieafbeeldings-URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.input_images[].image_url",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Promptverbetering.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "params.enhance_prompt",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Inhoudsfiltering.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "params.check_nsfw",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Seed voor consistente uitvoer.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 1000000,
                "minimum": 1,
                "name": "params.seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Optionele gedocumenteerde webhookinstellingen; ophalen van resultaten die u bezit gebruikt de Ailoot-taakpaden.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw ontvanger-URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook.url",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw ontvangergeheim.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook.secret",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Optionele callbackontvanger; de gedocumenteerde ontvanger antwoordt met HTTP 200.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "callback": {
                  "type": "string"
                },
                "model": {
                  "const": "dop-preview",
                  "type": "string"
                },
                "params": {
                  "additionalProperties": true,
                  "properties": {
                    "check_nsfw": {
                      "default": true,
                      "type": "boolean"
                    },
                    "enhance_prompt": {
                      "default": true,
                      "type": "boolean"
                    },
                    "input_images": {
                      "items": {
                        "properties": {
                          "image_url": {
                            "type": "string"
                          },
                          "type": {
                            "const": "image_url",
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "model": {
                      "const": "dop-preview",
                      "type": "string"
                    },
                    "motions": {
                      "items": {
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "strength": {
                            "default": 0.8,
                            "maximum": 1,
                            "minimum": 0,
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "strength"
                        ],
                        "type": "object"
                      },
                      "maxItems": 2,
                      "minItems": 1,
                      "type": "array"
                    },
                    "prompt": {
                      "type": "string"
                    },
                    "seconds": {
                      "type": "integer"
                    },
                    "seed": {
                      "maximum": 1000000,
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "model",
                    "prompt"
                  ],
                  "type": "object"
                },
                "webhook": {
                  "properties": {
                    "secret": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "params"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              {
                "field": "params.motions[].id",
                "meaning": "The demonstrated request uses id; the generated schema names motion_id. This card follows the working example."
              },
              {
                "field": "params.input_images",
                "meaning": "The demonstrated request uses an array of image_url objects; the generated schema shows a different object shape. This card follows the working example."
              }
            ],
            "unsupported": []
          },
          "hints": [
            "Gebruik dezelfde modelidentificatie op het hoogste niveau en binnen params.",
            "Maak eenmaal aan en gebruik daarna de geretourneerde openbare id en polling_url voor de oorspronkelijke operatie.",
            "Haal elke voltooide video op die u bezit; controleer de werkelijke duur en afmetingen in het resultaat.",
            "Vervang YOUR_ACCESSIBLE_IMAGE_URL in het voorbeeld door uw eigen referentieafbeeldings-URL."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_types": [
              "image",
              "text"
            ],
            "optional": [
              "params.seconds",
              "params.motions",
              "params.input_images",
              "params.enhance_prompt",
              "params.check_nsfw",
              "params.seed",
              "webhook",
              "webhook.url",
              "webhook.secret",
              "callback"
            ],
            "required": [
              "model",
              "params"
            ],
            "validation_scope": "Het model routeert het verzoek; de parameters-envelop volgt het gedemonstreerde verzoek voor afbeelding-naar-video."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [],
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "state_field": "jobs[].status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Keep the original response and returned task identity; an unrecognized state or ambiguous send does not authorize a new creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "image",
              "text"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "image_to_video"
          ],
          "output": {
            "all_results": "Fetch every actual completed output; do not assume a fixed count.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": "Public Ailoot task or operation identifier.",
                "name": "id",
                "type": "string"
              },
              {
                "description": "Original task identifier, separate from the public id.",
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": "Returned Ailoot lookup path.",
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": "Actual returned job identifier.",
                "name": "jobs[].id",
                "type": "string"
              },
              {
                "description": "State of each returned job.",
                "name": "jobs[].status",
                "type": "string"
              },
              {
                "description": "Each completed video is exposed through an Ailoot-owned signed URL.",
                "name": "jobs[].results.raw.url",
                "type": "string"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Selected outputs are copied and verified before owned publication.",
            "result": "Keep the returned jobs and their states. Read every completed owned video result."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "1.24",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.24",
                "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": "{\n  \"model\": \"dop-preview\",\n  \"params\": {\n    \"model\": \"dop-preview\",\n    \"prompt\": \"a cat\",\n    \"seed\": 500000,\n    \"motions\": [\n      {\n        \"id\": \"2bae49e6-ffe7-42a8-a73f-d44632c4acaa\",\n        \"strength\": 0.5\n      }\n    ],\n    \"input_images\": [\n      {\n        \"type\": \"image_url\",\n        \"image_url\": \"YOUR_ACCESSIBLE_IMAGE_URL\"\n      }\n    ],\n    \"enhance_prompt\": true,\n    \"check_nsfw\": true\n  }\n}",
            "label": "JSON · create video",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i:raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use the actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the same model selector at the top level and inside params.",
          "Create once, then use the returned public id and polling_url for the original operation.",
          "Retrieve every completed owned video; inspect actual duration and dimensions in the result.",
          "Replace YOUR_ACCESSIBLE_IMAGE_URL in the example with your actual reference image URL."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "image",
          "text"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.24",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.24",
                "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": "dop-preview",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "1.24",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.24",
            "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": "dop-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4fbc95abc5928eb2288b841123d6985e001b0fa28205ebb9ba238ad81e4becf4",
    "input_html_sha256": "ad8d753aad75e72cdfef76df29d3b33137792249472fed2647d32ff88de2b881",
    "private_audit_sha256": "8171e5252a70d0622fb5f60e1b81704be85544768c10c3adf3d3cc9720f73b3d",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl/dop-preview/",
    "description": "DOP Preview zet aangeleverde beelden om in video via de gedocumenteerde werkwijze met bewegingssjablonen. De exacte selector dop-preview ondersteunt één of twee effecten; sterkte, prompt en seed blijven bij het voltooide resultaat bewaard.",
    "locale": "nl",
    "md_url": "https://ailoot.ai/models/nl/dop-preview/index.md",
    "title": "Higgsfield: DOP Preview — Ailoot",
    "url": "https://ailoot.ai/models/nl/dop-preview/"
  },
  "rawModel": {
    "about": "DOP Preview animeert aangeleverde beelden via Higgsfields gedocumenteerde werkwijze van afbeelding naar video. De exacte selector is dop-preview. Gebruik dop-preview als waarde van model op het hoogste niveau en als model-waarde binnen het gedocumenteerde params-object. De afbeelding levert het visuele materiaal, terwijl bewegingssjablonen en de geschreven aanwijzingen de gevraagde beweging en het effect sturen.\n\nBereid een referentieafbeelding voor waarin het beoogde onderwerp, belangrijke details en de omringende ruimte goed zichtbaar zijn. De handleiding beveelt een afbeelding met hoge resolutie aan voor duidelijkere details. Kies voor een productscène een aanzicht dat de vorm van het object en de oppervlakken toont die tijdens de beweging herkenbaar moeten blijven. Benoem voor een persoon of omgeving het visuele kenmerk dat de beweging moet benadrukken. Lever de werkelijke URL van de referentieafbeelding via de afbeeldingsinvoer uit het methodevoorbeeld aan.\n\nDe bewerking documenteert één of twee bewegingssjablonen. Wanneer twee worden aangeleverd, beschrijft de handleiding hun effecten als gecombineerd. De beschrijvingen van de voorinstellingen omvatten camerabeweging, rotatie van het onderwerp en visuele transformaties; Dolly In beschrijft bijvoorbeeld een camerabeweging naar het onderwerp toe, terwijl 3D Rotation een onderwerp of product beschrijft dat ter plaatse draait. Kies de gedocumenteerde sjabloonidentificatoren die bij de beoogde reeks passen en bewaar elke identificator met de bijbehorende strength-waarde.\n\nDe instelling strength voor de bewegingssterkte is een getal van 0 tot 1, met 0.8 als gedocumenteerde standaard. De handleiding beschrijft 0.3 als een subtiel effect en 1 als sterke beweging. Kies de intensiteit op basis van het detail dat leesbaar moet blijven en controleer de volledige gegenereerde handeling. Een bewegingsbeschrijving en de bijbehorende strength-waarde hebben verschillende doelen: het sjabloon kiest het effect, terwijl strength de intensiteit regelt.\n\nHet veld prompt moet volgens zijn beschrijving aanwezig zijn, maar een lege tekenreeks is toegestaan. Voor effecten die door sjablonen worden gestuurd beveelt de handleiding aan prompt leeg te laten; wanneer tekst wordt aangeleverd, beveelt zij aan de beschrijving van het sjabloon op te nemen, omdat de prompt het resultaat sterk kan veranderen. De instelling enhance_prompt schakelt promptoptimalisatie in en staat volgens de documentatie standaard op true. Bewaar de tekst en deze instelling bij de referentieafbeelding en gekozen sjablonen wanneer u versies vergelijkt.\n\nDe instelling seed accepteert een geheel getal van 1 tot en met 1.000.000. Bewaar de gekozen seed bij de generatie-instellingen. De aanvraag bevat ook een veld seconds met een gehele waarde; bewaar de gebruikte waarde bij de resulterende clip en inspecteer de werkelijke timing en kadrering van de clip. De booleaanse instelling check_nsfw schakelt het gedocumenteerde inhoudsfilter in en staat standaard op true. Deze instellingen behoren bij de aanvraag van afbeelding naar video en moeten met het exact gekozen model verbonden blijven.\n\nGeneratie verloopt asynchroon. Bewaar de teruggegeven taakidentiteit tijdens het volgen van de ingestelde status- en resultaatopvraag. De resultaatkoppeling leest voltooide taakvermeldingen en hun ruwe resultaat-URL’s. Sla elk voltooid videoresultaat op en bewaar de taakidentificator bij de teruggegeven URL, zodat alle voltooide vermeldingen samen het resultaat van de bewerking vormen.\n\nControleer de volledige video aan de hand van de aangeleverde afbeelding, het gekozen effect en de geschreven aanwijzingen: het uiterlijk van het onderwerp, de beweging, de kadrering en het eindbeeld. Benoem voor een herziening het concrete visuele detail dat moet veranderen en behoud de geslaagde delen van de aanvraag. Bewaar de oorspronkelijke afbeeldingsreferentie, exacte selector, prompt, bewegingsidentificatoren, strength-waarden, seed, gevraagde instellingen en voltooide resultaten bij elkaar, zodat de volgende vergelijking de werkelijke generatie gebruikt.",
    "alias_of": null,
    "aliases": [],
    "author": "Higgsfield",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "image",
        "text"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.24",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.24",
            "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": "dop-preview",
    "input": [
      "image",
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn 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": {
            "errors": [
              {
                "condition": "Ongeldige JSON/model of een ongeldige inhoudsindex.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "Ongeldige Ailoot API-sleutel.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "De API-sleutelgroep is niet toegelaten tot deze mediaroute.",
                "http_status": 403,
                "type": "permission_error"
              },
              {
                "condition": "De oorspronkelijke taak of gevraagde uitvoer ontbreekt of is niet in eigendom van dezelfde gebruiker/API-sleutel/groep.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "De oorspronkelijke indiening of status is onvolledig of kan niet worden afgestemd; bewaar de oorspronkelijke ID en dien niet opnieuw in.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "De oorspronkelijke koppeling, route of media die u bezit worden nog gecontroleerd; blijf die oorspronkelijke operatie controleren.",
                "http_status": 503,
                "type": "result_pending_check"
              },
              {
                "condition": "De mediaservice of opslag voor oorspronkelijke taken is niet beschikbaar.",
                "http_status": 503,
                "type": "server_error"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "completed"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [],
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "state_field": "jobs[].status",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "Bewaar het oorspronkelijke antwoord en de geretourneerde taakidentiteit; een onbekende status of onduidelijke verzending geeft geen toestemming voor een nieuwe aanmaak.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "image",
                "text"
              ]
            ],
            "operation_modes": [
              "image_to_video"
            ],
            "outputs": {
              "all_results": "Haal alle daadwerkelijke voltooide uitvoer op; veronderstel geen vast aantal.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": "Openbare Ailoot-taak- of operatie-identificatie.",
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": "Oorspronkelijke taakidentificatie, afzonderlijk van de openbare id.",
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": "Geretourneerd Ailoot-opzoekpad.",
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": "Daadwerkelijk geretourneerde taakidentificatie.",
                  "name": "jobs[].id",
                  "type": "string"
                },
                {
                  "description": "Status van elke geretourneerde taak.",
                  "name": "jobs[].status",
                  "type": "string"
                },
                {
                  "description": "Elke voltooide video is beschikbaar via een ondertekende URL in eigendom van Ailoot.",
                  "name": "jobs[].results.raw.url",
                  "type": "string"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Selected outputs are copied and verified before owned publication.",
              "result": "Bewaar de geretourneerde taken en hun statussen. Lees elk voltooid videoresultaat dat u bezit."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "conditions": "Ailoot-modelidentificatie.",
                "default": null,
                "default_known": false,
                "enum": [
                  "dop-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Parameters voor afbeelding-naar-video; behoud deze envelop.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Gebruik dezelfde modelidentificatie als model op het hoogste niveau.",
                "default": null,
                "default_known": false,
                "enum": [
                  "dop-preview"
                ],
                "enum_known": true,
                "name": "params.model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Behoud dit veld; een lege tekenreeks is gedocumenteerd. Geschreven aanwijzingen hebben grote invloed op het geselecteerde bewegingseffect.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.prompt",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Gevraagde duur; er wordt geen gedocumenteerd bereik of standaardwaarde verondersteld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.seconds",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Kies één of twee gedocumenteerde bewegingssjablonen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 2,
                "minItems": 1,
                "name": "params.motions",
                "required": false,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Bewegingsidentificatie in het gedocumenteerde werkende verzoekvoorbeeld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.motions[].id",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Bewegingsintensiteit: 0.3 wordt beschreven als subtiel en 1 als sterk.",
                "default": 0.8,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 1,
                "minimum": 0,
                "name": "params.motions[].strength",
                "required": true,
                "type": "number"
              },
              {
                "availability": "source_interface",
                "conditions": "Referentieafbeeldingen, met de array van image_url-objecten uit het werkende voorbeeld.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.input_images",
                "required": false,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "Referentieweergave.",
                "default": null,
                "default_known": false,
                "enum": [
                  "image_url"
                ],
                "enum_known": true,
                "name": "params.input_images[].type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw eigen toegankelijke referentieafbeeldings-URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "params.input_images[].image_url",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Promptverbetering.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "params.enhance_prompt",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Inhoudsfiltering.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "params.check_nsfw",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Seed voor consistente uitvoer.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 1000000,
                "minimum": 1,
                "name": "params.seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "Optionele gedocumenteerde webhookinstellingen; ophalen van resultaten die u bezit gebruikt de Ailoot-taakpaden.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw ontvanger-URL.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook.url",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Uw ontvangergeheim.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "webhook.secret",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Optionele callbackontvanger; de gedocumenteerde ontvanger antwoordt met HTTP 200.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "callback": {
                  "type": "string"
                },
                "model": {
                  "const": "dop-preview",
                  "type": "string"
                },
                "params": {
                  "additionalProperties": true,
                  "properties": {
                    "check_nsfw": {
                      "default": true,
                      "type": "boolean"
                    },
                    "enhance_prompt": {
                      "default": true,
                      "type": "boolean"
                    },
                    "input_images": {
                      "items": {
                        "properties": {
                          "image_url": {
                            "type": "string"
                          },
                          "type": {
                            "const": "image_url",
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "model": {
                      "const": "dop-preview",
                      "type": "string"
                    },
                    "motions": {
                      "items": {
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "strength": {
                            "default": 0.8,
                            "maximum": 1,
                            "minimum": 0,
                            "type": "number"
                          }
                        },
                        "required": [
                          "id",
                          "strength"
                        ],
                        "type": "object"
                      },
                      "maxItems": 2,
                      "minItems": 1,
                      "type": "array"
                    },
                    "prompt": {
                      "type": "string"
                    },
                    "seconds": {
                      "type": "integer"
                    },
                    "seed": {
                      "maximum": 1000000,
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "model",
                    "prompt"
                  ],
                  "type": "object"
                },
                "webhook": {
                  "properties": {
                    "secret": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "params"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              {
                "field": "params.motions[].id",
                "meaning": "The demonstrated request uses id; the generated schema names motion_id. This card follows the working example."
              },
              {
                "field": "params.input_images",
                "meaning": "The demonstrated request uses an array of image_url objects; the generated schema shows a different object shape. This card follows the working example."
              }
            ],
            "unsupported": []
          },
          "hints": [
            "Gebruik dezelfde modelidentificatie op het hoogste niveau en binnen params.",
            "Maak eenmaal aan en gebruik daarna de geretourneerde openbare id en polling_url voor de oorspronkelijke operatie.",
            "Haal elke voltooide video op die u bezit; controleer de werkelijke duur en afmetingen in het resultaat.",
            "Vervang YOUR_ACCESSIBLE_IMAGE_URL in het voorbeeld door uw eigen referentieafbeeldings-URL."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_types": [
              "image",
              "text"
            ],
            "optional": [
              "params.seconds",
              "params.motions",
              "params.input_images",
              "params.enhance_prompt",
              "params.check_nsfw",
              "params.seed",
              "webhook",
              "webhook.url",
              "webhook.secret",
              "callback"
            ],
            "required": [
              "model",
              "params"
            ],
            "validation_scope": "Het model routeert het verzoek; de parameters-envelop volgt het gedemonstreerde verzoek voor afbeelding-naar-video."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "completed"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [],
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "state_field": "jobs[].status",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Keep the original response and returned task identity; an unrecognized state or ambiguous send does not authorize a new creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "image",
              "text"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "image_to_video"
          ],
          "output": {
            "all_results": "Fetch every actual completed output; do not assume a fixed count.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": "Public Ailoot task or operation identifier.",
                "name": "id",
                "type": "string"
              },
              {
                "description": "Original task identifier, separate from the public id.",
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": "Returned Ailoot lookup path.",
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": "Actual returned job identifier.",
                "name": "jobs[].id",
                "type": "string"
              },
              {
                "description": "State of each returned job.",
                "name": "jobs[].status",
                "type": "string"
              },
              {
                "description": "Each completed video is exposed through an Ailoot-owned signed URL.",
                "name": "jobs[].results.raw.url",
                "type": "string"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Selected outputs are copied and verified before owned publication.",
            "result": "Keep the returned jobs and their states. Read every completed owned video result."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "1.24",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.24",
                "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": "{\n  \"model\": \"dop-preview\",\n  \"params\": {\n    \"model\": \"dop-preview\",\n    \"prompt\": \"a cat\",\n    \"seed\": 500000,\n    \"motions\": [\n      {\n        \"id\": \"2bae49e6-ffe7-42a8-a73f-d44632c4acaa\",\n        \"strength\": 0.5\n      }\n    ],\n    \"input_images\": [\n      {\n        \"type\": \"image_url\",\n        \"image_url\": \"YOUR_ACCESSIBLE_IMAGE_URL\"\n      }\n    ],\n    \"enhance_prompt\": true,\n    \"check_nsfw\": true\n  }\n}",
            "label": "JSON · create video",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i:raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use the actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the same model selector at the top level and inside params.",
          "Create once, then use the returned public id and polling_url for the original operation.",
          "Retrieve every completed owned video; inspect actual duration and dimensions in the result.",
          "Replace YOUR_ACCESSIBLE_IMAGE_URL in the example with your actual reference image URL."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "image",
          "text"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.24",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.24",
                "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": "dop-preview",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "1.24",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.24",
            "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": "dop-preview",
        "request_model_id": "dop-preview",
        "route_label": "Ultra"
      }
    ],
    "name": "Higgsfield: DOP Preview",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.24,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.24,
      "varies": false
    },
    "short": "DOP Preview zet aangeleverde beelden om in video via de gedocumenteerde werkwijze met bewegingssjablonen. De exacte selector dop-preview ondersteunt één of twee effecten; sterkte, prompt en seed blijven bij het voltooide resultaat bewaard."
  },
  "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": "DOP Preview zet aangeleverde beelden om in video via de gedocumenteerde werkwijze met bewegingssjablonen. De exacte selector dop-preview ondersteunt één of twee effecten; sterkte, prompt en seed blijven bij het voltooide resultaat bewaard.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7713cec686eabeb80f9d03bdcb022ecd033c13095664b7e7ee0677528e720e0e",
    "renderer_sha256": "be7649af06bb0ae446191041c6cfb8a9b83a53896c8c6e9173e76a39d513e829"
  },
  "sourceRevision": "79671642ec058f5a943985de30bbae9916cf369e4a344435260faa1933419475"
}
