{
  "aboutHtml": "<p>Avatar IV is de avatarengine van HeyGen die een stilstaand beeld omzet in een expressieve sprekende video. Het door diffusie geïnspireerde audio-naar-expressieontwerp gebruikt stemtoon, ritme en emotie om gezichtsbeweging, kantelingen van het hoofd, pauzes en micro-expressies te sturen. Het doel is een presentator of personage dat gesproken inhoud met lipsynchronisatie en gebaren overbrengt, in plaats van een algemene scènegenerator die een volledige omgeving en soundtrack uit een filmische prompt creëert.</p><p>De fabrikant beschrijft ondersteuning voor levensechte en gestileerde personages, waaronder beelden onder een hoek of in profiel, animegezichten en huisdieren. Personages op basis van foto&#39;s werken het best wanneer ogen, mond en gezichtsstructuur gemakkelijk te herkennen zijn. HeyGen beveelt een duidelijk, goed belicht beeld met een natuurlijke houding en zichtbare handen aan wanneer gebaren belangrijk zijn. Een zeer klein gezicht, verborgen lippen, zware maskers, een uitgesproken snavel of sterk overdreven verhoudingen kunnen gezichtsbeweging en lipsynchronisatie verzwakken. Houd de bronkadrering geschikt voor de bedoelde uitvoering.</p><p>De producent biedt twee routes voor spraakinvoer. Een geschreven script wordt met een geselecteerde stem gecombineerd; een vooraf opgenomen audiotrack levert stem en timing rechtstreeks. Gebruik de route met opgenomen audio wanneer de voordracht al vastligt en de scriptroute wanneer de spraak moet worden gesynthetiseerd. Deze invoervormen zijn alternatieven in de gedocumenteerde interface. Bereid de definitieve formulering, namen en uitspraak vóór de animatie voor en bewaar audio of script bij de teruggegeven video zodat het gesproken resultaat kan worden gecontroleerd.</p><p>Het Avatar IV-modelprofiel van HeyGen omvat studioavatars, Digital Twins, Photo Avatars, directe beelden en via prompts gecreëerde onderwerpen. Een herbruikbare Photo Avatar biedt een stabiel onderwerp voor latere video&#39;s, terwijl een workflow met een direct beeld vanuit de aangeleverde afbeelding begint. Het Photo Avatar-profiel van de producent biedt bewegingsinstructies in vrije tekst en expressiviteitskeuzes van high, medium of low, met low als standaard. Behoud het gekozen avataruiterlijk en de engine bij het maken van een reeks zodat een gewijzigd bronbeeld of rendermodel geen onopgemerkte verandering van presentator wordt.</p><p>Beschrijf voor bewegingsregie een zichtbare lichaamsactie en de emotionele kwaliteit ervan. “Knikt zacht met een warme glimlach” geeft één gebaar en één uitdrukking; een korte begroeting kan een vriendelijk zwaaigebaar gebruiken. De maker beveelt één hoofdgebaar aan, eventueel gecombineerd met een gezichtsuitdrukking, en maximaal twee korte zinsdelen voor een reeks. Avatar IV haalt het tempo uit de uitvoering, dus de Studio-gids vereist geen gebarenschema per seconde. Specifieke, beknopte formulering is gemakkelijker te controleren dan meerdere tegenstrijdige acties in één prompt.</p><p>Het audio-naar-videoprofiel van de producent rendert maximaal dertig minuten aangeleverde audio per verzoek en geüploade MP3- of WAV-bestanden hebben een limiet van 32 MB. Verdeel het materiaal voor een langere les of opname op samenhangende spraakgrenzen en behoud de oorspronkelijke volgorde. De timing van de spraak in de definitieve video moet de geselecteerde audio volgen en geen niet-gerelateerde schatting van de cliplengte.</p><p>De gedocumenteerde uitvoerinstellingen van de producent omvatten 720p of 1080p en vormen van 16:9, 9:16, 4:5, 5:4 of 1:1, met een automatische optie die de bronverhoudingen volgt. Een cover-fit kan het onderwerp bijsnijden; contain past het hele onderwerp in en kan de omliggende achtergrond zichtbaar laten. De audio-naar-videoworkflow geeft standaard MP4 terug. Voor videoavatars vereist transparante WebM-uitvoer ondersteuning voor matting en past de producent achtergrondverwijdering voor die uitvoer toe, in plaats van deze met een nieuwe achtergrond te combineren. Controleer de daadwerkelijke kadrering en het bestand voordat u de presentator in een grotere compositie plaatst.</p><p>Een trainingsinleiding kan een goed herkenbaar presentatorbeeld, een beknopte uitleg en één ingetogen gebaar bij de belangrijkste instructie gebruiken. Een productuitleg kan hetzelfde avataruiterlijk behouden en het gesproken script voor verschillende functies veranderen. De producent beschrijft ook optionele ondertitelbestanden en ingebrande ondertitels; controleer hun formulering en timing naast de spraak. Renderen is asynchroon in de interface van de maker, dus een aanmaakantwoord en de voltooide video zijn verschillende artefacten. Bewaar de voltooide opname en de voltooiingsstatus bij het taakresultaat.</p><p>Avatar IV blijft gescheiden van de referentiegestuurde beweging van Avatar V en de afzonderlijke Studio-presetregelaars daarvan. Het staat ook los van de algemene scènegeneratie van HeyGen Video en van een interactief liveavatargesprek. Controleer de gerenderde mondbeweging, zichtbare handen, gezichtsuitdrukking, pauzes en gesproken formulering aan de hand van het bronmateriaal en de bedoelde toon. Beeld, houding, belichting en bewegingsinstructies beïnvloeden het resultaat; een animatie op basis van een foto moet als gegenereerde uitvoering worden gecontroleerd, met behoud van de gekozen invoer voor latere herzieningen.</p>",
  "aboutText": "Avatar IV is de avatarengine van HeyGen die een stilstaand beeld omzet in een expressieve sprekende video. Het door diffusie geïnspireerde audio-naar-expressieontwerp gebruikt stemtoon, ritme en emotie om gezichtsbeweging, kantelingen van het hoofd, pauzes en micro-expressies te sturen. Het doel is een presentator of personage dat gesproken inhoud met lipsynchronisatie en gebaren overbrengt, in plaats van een algemene scènegenerator die een volledige omgeving en soundtrack uit een filmische prompt creëert.\n\nDe fabrikant beschrijft ondersteuning voor levensechte en gestileerde personages, waaronder beelden onder een hoek of in profiel, animegezichten en huisdieren. Personages op basis van foto's werken het best wanneer ogen, mond en gezichtsstructuur gemakkelijk te herkennen zijn. HeyGen beveelt een duidelijk, goed belicht beeld met een natuurlijke houding en zichtbare handen aan wanneer gebaren belangrijk zijn. Een zeer klein gezicht, verborgen lippen, zware maskers, een uitgesproken snavel of sterk overdreven verhoudingen kunnen gezichtsbeweging en lipsynchronisatie verzwakken. Houd de bronkadrering geschikt voor de bedoelde uitvoering.\n\nDe producent biedt twee routes voor spraakinvoer. Een geschreven script wordt met een geselecteerde stem gecombineerd; een vooraf opgenomen audiotrack levert stem en timing rechtstreeks. Gebruik de route met opgenomen audio wanneer de voordracht al vastligt en de scriptroute wanneer de spraak moet worden gesynthetiseerd. Deze invoervormen zijn alternatieven in de gedocumenteerde interface. Bereid de definitieve formulering, namen en uitspraak vóór de animatie voor en bewaar audio of script bij de teruggegeven video zodat het gesproken resultaat kan worden gecontroleerd.\n\nHet Avatar IV-modelprofiel van HeyGen omvat studioavatars, Digital Twins, Photo Avatars, directe beelden en via prompts gecreëerde onderwerpen. Een herbruikbare Photo Avatar biedt een stabiel onderwerp voor latere video's, terwijl een workflow met een direct beeld vanuit de aangeleverde afbeelding begint. Het Photo Avatar-profiel van de producent biedt bewegingsinstructies in vrije tekst en expressiviteitskeuzes van high, medium of low, met low als standaard. Behoud het gekozen avataruiterlijk en de engine bij het maken van een reeks zodat een gewijzigd bronbeeld of rendermodel geen onopgemerkte verandering van presentator wordt.\n\nBeschrijf voor bewegingsregie een zichtbare lichaamsactie en de emotionele kwaliteit ervan. “Knikt zacht met een warme glimlach” geeft één gebaar en één uitdrukking; een korte begroeting kan een vriendelijk zwaaigebaar gebruiken. De maker beveelt één hoofdgebaar aan, eventueel gecombineerd met een gezichtsuitdrukking, en maximaal twee korte zinsdelen voor een reeks. Avatar IV haalt het tempo uit de uitvoering, dus de Studio-gids vereist geen gebarenschema per seconde. Specifieke, beknopte formulering is gemakkelijker te controleren dan meerdere tegenstrijdige acties in één prompt.\n\nHet audio-naar-videoprofiel van de producent rendert maximaal dertig minuten aangeleverde audio per verzoek en geüploade MP3- of WAV-bestanden hebben een limiet van 32 MB. Verdeel het materiaal voor een langere les of opname op samenhangende spraakgrenzen en behoud de oorspronkelijke volgorde. De timing van de spraak in de definitieve video moet de geselecteerde audio volgen en geen niet-gerelateerde schatting van de cliplengte.\n\nDe gedocumenteerde uitvoerinstellingen van de producent omvatten 720p of 1080p en vormen van 16:9, 9:16, 4:5, 5:4 of 1:1, met een automatische optie die de bronverhoudingen volgt. Een cover-fit kan het onderwerp bijsnijden; contain past het hele onderwerp in en kan de omliggende achtergrond zichtbaar laten. De audio-naar-videoworkflow geeft standaard MP4 terug. Voor videoavatars vereist transparante WebM-uitvoer ondersteuning voor matting en past de producent achtergrondverwijdering voor die uitvoer toe, in plaats van deze met een nieuwe achtergrond te combineren. Controleer de daadwerkelijke kadrering en het bestand voordat u de presentator in een grotere compositie plaatst.\n\nEen trainingsinleiding kan een goed herkenbaar presentatorbeeld, een beknopte uitleg en één ingetogen gebaar bij de belangrijkste instructie gebruiken. Een productuitleg kan hetzelfde avataruiterlijk behouden en het gesproken script voor verschillende functies veranderen. De producent beschrijft ook optionele ondertitelbestanden en ingebrande ondertitels; controleer hun formulering en timing naast de spraak. Renderen is asynchroon in de interface van de maker, dus een aanmaakantwoord en de voltooide video zijn verschillende artefacten. Bewaar de voltooide opname en de voltooiingsstatus bij het taakresultaat.\n\nAvatar IV blijft gescheiden van de referentiegestuurde beweging van Avatar V en de afzonderlijke Studio-presetregelaars daarvan. Het staat ook los van de algemene scènegeneratie van HeyGen Video en van een interactief liveavatargesprek. Controleer de gerenderde mondbeweging, zichtbare handen, gezichtsuitdrukking, pauzes en gesproken formulering aan de hand van het bronmateriaal en de bedoelde toon. Beeld, houding, belichting en bewegingsinstructies beïnvloeden het resultaat; een animatie op basis van een foto moet als gegenereerde uitvoering worden gecontroleerd, met behoud van de gekozen invoer voor latere herzieningen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b1814e12aa90b66c83495a9b34a96487edb6cfcf53c90ef53a8df3acb36f7f35",
    "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\">HeyGen: Avatar IV</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>HeyGen /</span><code>heygen/avatar-iv</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|heygen%2Favatar-iv\">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\">Avatar IV animeert een foto tot een sprekende video met lipsynchronisatie, waarbij gezichtsuitdrukking en gebarentiming door de stem worden gestuurd. HeyGen beschrijft workflows met scripts of opgenomen audio en Photo Avatar-bewegingsregelaars voor levensechte of gestileerde presentatoren.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Tekst · Afbeeldingen · Audio · Video</dd></div><div><dt>Resultaten</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Over het model</summary><p class=\"note-s\" data-model-method-boundary>Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.</p><div class=\"mabout\" id=\"m-about\"><p>Avatar IV is de avatarengine van HeyGen die een stilstaand beeld omzet in een expressieve sprekende video. Het door diffusie geïnspireerde audio-naar-expressieontwerp gebruikt stemtoon, ritme en emotie om gezichtsbeweging, kantelingen van het hoofd, pauzes en micro-expressies te sturen. Het doel is een presentator of personage dat gesproken inhoud met lipsynchronisatie en gebaren overbrengt, in plaats van een algemene scènegenerator die een volledige omgeving en soundtrack uit een filmische prompt creëert.</p><p>De fabrikant beschrijft ondersteuning voor levensechte en gestileerde personages, waaronder beelden onder een hoek of in profiel, animegezichten en huisdieren. Personages op basis van foto&#39;s werken het best wanneer ogen, mond en gezichtsstructuur gemakkelijk te herkennen zijn. HeyGen beveelt een duidelijk, goed belicht beeld met een natuurlijke houding en zichtbare handen aan wanneer gebaren belangrijk zijn. Een zeer klein gezicht, verborgen lippen, zware maskers, een uitgesproken snavel of sterk overdreven verhoudingen kunnen gezichtsbeweging en lipsynchronisatie verzwakken. Houd de bronkadrering geschikt voor de bedoelde uitvoering.</p><p>De producent biedt twee routes voor spraakinvoer. Een geschreven script wordt met een geselecteerde stem gecombineerd; een vooraf opgenomen audiotrack levert stem en timing rechtstreeks. Gebruik de route met opgenomen audio wanneer de voordracht al vastligt en de scriptroute wanneer de spraak moet worden gesynthetiseerd. Deze invoervormen zijn alternatieven in de gedocumenteerde interface. Bereid de definitieve formulering, namen en uitspraak vóór de animatie voor en bewaar audio of script bij de teruggegeven video zodat het gesproken resultaat kan worden gecontroleerd.</p><p>Het Avatar IV-modelprofiel van HeyGen omvat studioavatars, Digital Twins, Photo Avatars, directe beelden en via prompts gecreëerde onderwerpen. Een herbruikbare Photo Avatar biedt een stabiel onderwerp voor latere video&#39;s, terwijl een workflow met een direct beeld vanuit de aangeleverde afbeelding begint. Het Photo Avatar-profiel van de producent biedt bewegingsinstructies in vrije tekst en expressiviteitskeuzes van high, medium of low, met low als standaard. Behoud het gekozen avataruiterlijk en de engine bij het maken van een reeks zodat een gewijzigd bronbeeld of rendermodel geen onopgemerkte verandering van presentator wordt.</p><p>Beschrijf voor bewegingsregie een zichtbare lichaamsactie en de emotionele kwaliteit ervan. “Knikt zacht met een warme glimlach” geeft één gebaar en één uitdrukking; een korte begroeting kan een vriendelijk zwaaigebaar gebruiken. De maker beveelt één hoofdgebaar aan, eventueel gecombineerd met een gezichtsuitdrukking, en maximaal twee korte zinsdelen voor een reeks. Avatar IV haalt het tempo uit de uitvoering, dus de Studio-gids vereist geen gebarenschema per seconde. Specifieke, beknopte formulering is gemakkelijker te controleren dan meerdere tegenstrijdige acties in één prompt.</p><p>Het audio-naar-videoprofiel van de producent rendert maximaal dertig minuten aangeleverde audio per verzoek en geüploade MP3- of WAV-bestanden hebben een limiet van 32 MB. Verdeel het materiaal voor een langere les of opname op samenhangende spraakgrenzen en behoud de oorspronkelijke volgorde. De timing van de spraak in de definitieve video moet de geselecteerde audio volgen en geen niet-gerelateerde schatting van de cliplengte.</p><p>De gedocumenteerde uitvoerinstellingen van de producent omvatten 720p of 1080p en vormen van 16:9, 9:16, 4:5, 5:4 of 1:1, met een automatische optie die de bronverhoudingen volgt. Een cover-fit kan het onderwerp bijsnijden; contain past het hele onderwerp in en kan de omliggende achtergrond zichtbaar laten. De audio-naar-videoworkflow geeft standaard MP4 terug. Voor videoavatars vereist transparante WebM-uitvoer ondersteuning voor matting en past de producent achtergrondverwijdering voor die uitvoer toe, in plaats van deze met een nieuwe achtergrond te combineren. Controleer de daadwerkelijke kadrering en het bestand voordat u de presentator in een grotere compositie plaatst.</p><p>Een trainingsinleiding kan een goed herkenbaar presentatorbeeld, een beknopte uitleg en één ingetogen gebaar bij de belangrijkste instructie gebruiken. Een productuitleg kan hetzelfde avataruiterlijk behouden en het gesproken script voor verschillende functies veranderen. De producent beschrijft ook optionele ondertitelbestanden en ingebrande ondertitels; controleer hun formulering en timing naast de spraak. Renderen is asynchroon in de interface van de maker, dus een aanmaakantwoord en de voltooide video zijn verschillende artefacten. Bewaar de voltooide opname en de voltooiingsstatus bij het taakresultaat.</p><p>Avatar IV blijft gescheiden van de referentiegestuurde beweging van Avatar V en de afzonderlijke Studio-presetregelaars daarvan. Het staat ook los van de algemene scènegeneratie van HeyGen Video en van een interactief liveavatargesprek. Controleer de gerenderde mondbeweging, zichtbare handen, gezichtsuitdrukking, pauzes en gesproken formulering aan de hand van het bronmateriaal en de bedoelde toon. Beeld, houding, belichting en bewegingsinstructies beïnvloeden het resultaat; een animatie op basis van een foto moet als gegenereerde uitvoering worden gecontroleerd, met behoud van de gekozen invoer voor latere herzieningen.</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>text</code>, <code>image</code>, <code>audio</code>, <code>video</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><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>heygen/avatar-iv</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumaantal items: 2</div><div>Maximumaantal items: 2</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">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>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Methodeparameters en levenscyclus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>model, input_references</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>text, image, audio, video</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>Gebruik de daadwerkelijke inhouds-URLs van voltooide media-assets die u bezit, met de geretourneerde handtekeningen: één videobron voor BFL, of één afbeeldings- en één audiobron voor avatar. Het Source-bewijs voor eigenaar/type/bytes is vereist., Lever precies één PNG/JPEG-afbeelding en één WAV/MP3-audio-asset aan. De audio is maximaal 32000000 bytes, met een duur groter dan 0 en maximaal 1800 seconden.</td></tr></tbody></table></div><p>Levenscyclus: <code>asynchronous_job_then_owned_outputs</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code> · daadwerkelijk geretourneerde id of polling_url</p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarieven</h3><div class=\"card-result-process\" data-billing-basis><h5>Zo worden de uiteindelijke kosten berekend</h5><p class=\"note-s\">De 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>Rekeneenheid</th><th>Factureringsvoorwaarden</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=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · Invoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache lezen · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>In deze prijssleutel is geen aanvullende voorwaarde vastgelegd.</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.1</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>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=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking</span> <b>$0.1</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-1711-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1711-panel-0\" aria-selected=\"true\" tabindex=\"0\">Gebruik daadwerkelijke invoer en bewaar het volledige resultaat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1711-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1711-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;heygen/avatar-iv&#39;, &#39;input_references&#39;: &#39;${ACTUAL_OWNED_INPUT_REFERENCES}&#39;}\nrequest[&#39;input_references&#39;]=json.loads(os.environ[&#39;AILOOT_INPUT_REFERENCES_JSON&#39;])\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Videomateriaal</h4><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li></ul><h5>Alle voltooide bestanden opslaan</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1712-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1712-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Alle voltooide bestanden</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1712-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1712-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}&quot;\nexport AILOOT_STATUS_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[&quot;AILOOT_STATUS_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose the actual completed status file&quot;)\nr=json.loads(f.read_text())\nif r.get(&quot;status&quot;)!=&quot;completed&quot; or not isinstance(r.get(&quot;data&quot;),list) or not r[&quot;data&quot;]:raise SystemExit(&quot;Wait for a completed status with asset paths&quot;)\nurls=[]\nfor x in r[&quot;data&quot;]:\n    if not isinstance(x,str) or &quot;\\n&quot; in x or &quot;\\r&quot; in x:raise SystemExit(&quot;Invalid asset path&quot;)\n    u=urljoin(&quot;https://api.ailoot.ai&quot;,x)\n    z=urlsplit(u)\n    if z.scheme!=&quot;https&quot; or z.netloc!=&quot;api.ailoot.ai&quot; or z.username or z.password:raise SystemExit(&quot;Use the actual Ailoot asset paths from status&quot;)\n    urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; \\\n    -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o &quot;video-${index}.mp4&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>Alle voltooide resultaten bewaren</h5><p class=\"note-s\">Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.</p><p class=\"note-s\">Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de daadwerkelijk geretourneerde id/polling_url. Ga door met de oorspronkelijke taak; dien de aanmaak niet opnieuw in.</p></div><details class=\"card-about\" data-output-fields><summary>Antwoordvelden</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Veld</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">outputs[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modelaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=heygen%2Favatar-iv&amp;route=Ultra&amp;caller=heygen%2Favatar-iv&amp;fmt=videos\"><code>heygen/avatar-iv</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\">Gebruik de hierboven getoonde methodepaden.</p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=heygen%2Favatar-iv&amp;route=Ultra&amp;caller=heygen%2Favatar-iv&amp;fmt=videos\"><code>heygen/avatar-iv</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "heygen/avatar-iv",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|heygen%2Favatar-iv",
      "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": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de daadwerkelijk geretourneerde id/polling_url. Ga door met de oorspronkelijke taak; dien de aanmaak niet opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "heygen/avatar-iv"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "image_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "image_url"
                        }
                      },
                      "required": [
                        "type",
                        "image_url"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "audio_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "audio_url"
                        }
                      },
                      "required": [
                        "type",
                        "audio_url"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maximum_items": 2,
                "minimum_items": 2,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "name": "prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "allOf": [
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    },
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    }
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "heygen/avatar-iv"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "const": "",
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "heygen/avatar-iv"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gebruik de daadwerkelijke inhouds-URLs van voltooide media-assets die u bezit, met de geretourneerde handtekeningen: één videobron voor BFL, of één afbeeldings- en één audiobron voor avatar. Het Source-bewijs voor eigenaar/type/bytes is vereist.",
              "Lever precies één PNG/JPEG-afbeelding en één WAV/MP3-audio-asset aan. De audio is maximaal 32000000 bytes, met een duur groter dan 0 en maximaal 1800 seconden."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "daadwerkelijk geretourneerde id of polling_url",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'heygen/avatar-iv', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "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": "heygen/avatar-iv",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "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": "heygen/avatar-iv",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "cb2295c6897de232a32f97c86a12f2695226ae7fcdf5d0b8ef5ca75f678ab99c",
    "input_html_sha256": "4cb62c0bc5eb8f982fc3ac07d2e69ca42b8edb3daa3691c5b46cdd7b05dbec4a",
    "private_audit_sha256": "ad9e73a034e6b0558734ed4496788ba9d4b83cf447f62dc5044c7b4e112bd20c",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl/heygen-avatar-iv/",
    "description": "Avatar IV animeert een foto tot een sprekende video met lipsynchronisatie, waarbij gezichtsuitdrukking en gebarentiming door de stem worden gestuurd. HeyGen beschrijft workflows met scripts of opgenomen audio en Photo Avatar-bewegingsregelaars voor levensechte of gestileerde presentatoren.",
    "locale": "nl",
    "md_url": "https://ailoot.ai/models/nl/heygen-avatar-iv/index.md",
    "title": "HeyGen: Avatar IV — Ailoot",
    "url": "https://ailoot.ai/models/nl/heygen-avatar-iv/"
  },
  "rawModel": {
    "about": "Avatar IV is de avatarengine van HeyGen die een stilstaand beeld omzet in een expressieve sprekende video. Het door diffusie geïnspireerde audio-naar-expressieontwerp gebruikt stemtoon, ritme en emotie om gezichtsbeweging, kantelingen van het hoofd, pauzes en micro-expressies te sturen. Het doel is een presentator of personage dat gesproken inhoud met lipsynchronisatie en gebaren overbrengt, in plaats van een algemene scènegenerator die een volledige omgeving en soundtrack uit een filmische prompt creëert.\n\nDe fabrikant beschrijft ondersteuning voor levensechte en gestileerde personages, waaronder beelden onder een hoek of in profiel, animegezichten en huisdieren. Personages op basis van foto's werken het best wanneer ogen, mond en gezichtsstructuur gemakkelijk te herkennen zijn. HeyGen beveelt een duidelijk, goed belicht beeld met een natuurlijke houding en zichtbare handen aan wanneer gebaren belangrijk zijn. Een zeer klein gezicht, verborgen lippen, zware maskers, een uitgesproken snavel of sterk overdreven verhoudingen kunnen gezichtsbeweging en lipsynchronisatie verzwakken. Houd de bronkadrering geschikt voor de bedoelde uitvoering.\n\nDe producent biedt twee routes voor spraakinvoer. Een geschreven script wordt met een geselecteerde stem gecombineerd; een vooraf opgenomen audiotrack levert stem en timing rechtstreeks. Gebruik de route met opgenomen audio wanneer de voordracht al vastligt en de scriptroute wanneer de spraak moet worden gesynthetiseerd. Deze invoervormen zijn alternatieven in de gedocumenteerde interface. Bereid de definitieve formulering, namen en uitspraak vóór de animatie voor en bewaar audio of script bij de teruggegeven video zodat het gesproken resultaat kan worden gecontroleerd.\n\nHet Avatar IV-modelprofiel van HeyGen omvat studioavatars, Digital Twins, Photo Avatars, directe beelden en via prompts gecreëerde onderwerpen. Een herbruikbare Photo Avatar biedt een stabiel onderwerp voor latere video's, terwijl een workflow met een direct beeld vanuit de aangeleverde afbeelding begint. Het Photo Avatar-profiel van de producent biedt bewegingsinstructies in vrije tekst en expressiviteitskeuzes van high, medium of low, met low als standaard. Behoud het gekozen avataruiterlijk en de engine bij het maken van een reeks zodat een gewijzigd bronbeeld of rendermodel geen onopgemerkte verandering van presentator wordt.\n\nBeschrijf voor bewegingsregie een zichtbare lichaamsactie en de emotionele kwaliteit ervan. “Knikt zacht met een warme glimlach” geeft één gebaar en één uitdrukking; een korte begroeting kan een vriendelijk zwaaigebaar gebruiken. De maker beveelt één hoofdgebaar aan, eventueel gecombineerd met een gezichtsuitdrukking, en maximaal twee korte zinsdelen voor een reeks. Avatar IV haalt het tempo uit de uitvoering, dus de Studio-gids vereist geen gebarenschema per seconde. Specifieke, beknopte formulering is gemakkelijker te controleren dan meerdere tegenstrijdige acties in één prompt.\n\nHet audio-naar-videoprofiel van de producent rendert maximaal dertig minuten aangeleverde audio per verzoek en geüploade MP3- of WAV-bestanden hebben een limiet van 32 MB. Verdeel het materiaal voor een langere les of opname op samenhangende spraakgrenzen en behoud de oorspronkelijke volgorde. De timing van de spraak in de definitieve video moet de geselecteerde audio volgen en geen niet-gerelateerde schatting van de cliplengte.\n\nDe gedocumenteerde uitvoerinstellingen van de producent omvatten 720p of 1080p en vormen van 16:9, 9:16, 4:5, 5:4 of 1:1, met een automatische optie die de bronverhoudingen volgt. Een cover-fit kan het onderwerp bijsnijden; contain past het hele onderwerp in en kan de omliggende achtergrond zichtbaar laten. De audio-naar-videoworkflow geeft standaard MP4 terug. Voor videoavatars vereist transparante WebM-uitvoer ondersteuning voor matting en past de producent achtergrondverwijdering voor die uitvoer toe, in plaats van deze met een nieuwe achtergrond te combineren. Controleer de daadwerkelijke kadrering en het bestand voordat u de presentator in een grotere compositie plaatst.\n\nEen trainingsinleiding kan een goed herkenbaar presentatorbeeld, een beknopte uitleg en één ingetogen gebaar bij de belangrijkste instructie gebruiken. Een productuitleg kan hetzelfde avataruiterlijk behouden en het gesproken script voor verschillende functies veranderen. De producent beschrijft ook optionele ondertitelbestanden en ingebrande ondertitels; controleer hun formulering en timing naast de spraak. Renderen is asynchroon in de interface van de maker, dus een aanmaakantwoord en de voltooide video zijn verschillende artefacten. Bewaar de voltooide opname en de voltooiingsstatus bij het taakresultaat.\n\nAvatar IV blijft gescheiden van de referentiegestuurde beweging van Avatar V en de afzonderlijke Studio-presetregelaars daarvan. Het staat ook los van de algemene scènegeneratie van HeyGen Video en van een interactief liveavatargesprek. Controleer de gerenderde mondbeweging, zichtbare handen, gezichtsuitdrukking, pauzes en gesproken formulering aan de hand van het bronmateriaal en de bedoelde toon. Beeld, houding, belichting en bewegingsinstructies beïnvloeden het resultaat; een animatie op basis van een foto moet als gegenereerde uitvoering worden gecontroleerd, met behoud van de gekozen invoer voor latere herzieningen.",
    "alias_of": null,
    "aliases": [],
    "author": "HeyGen",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "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": "heygen/avatar-iv",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "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": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual zero-based output index from completed manifest"
                  }
                }
              ],
              "creation_id_field": "id",
              "media_library": {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              "mode": "asynchronous_job_then_owned_outputs",
              "operation_id_is_not_task_id": true,
              "output_content_response": "owned MP4 bytes with Range support",
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned id or polling_url",
                  "path": "/v1/videos/{request_id}"
                }
              ],
              "unknown": "Bewaar X-Client-Request-ID, X-Ailoot-Task-Id en de daadwerkelijk geretourneerde id/polling_url. Ga door met de oorspronkelijke taak; dien de aanmaak niet opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": null
                },
                {
                  "description": null,
                  "name": "status",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "outputs[]",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "heygen/avatar-iv"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "image_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "image_url"
                        }
                      },
                      "required": [
                        "type",
                        "image_url"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "audio_url": {
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "type": "object"
                        },
                        "type": {
                          "const": "audio_url"
                        }
                      },
                      "required": [
                        "type",
                        "audio_url"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maximum_items": 2,
                "minimum_items": 2,
                "name": "input_references",
                "required": true,
                "type": "array"
              },
              {
                "name": "prompt",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "input_references": {
                  "allOf": [
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    },
                    {
                      "contains": {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      },
                      "maxContains": 1,
                      "minContains": 1
                    }
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "heygen/avatar-iv"
                  ],
                  "type": "string"
                },
                "prompt": {
                  "const": "",
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_references"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input_references": "${ACTUAL_OWNED_INPUT_REFERENCES}",
                "model": "heygen/avatar-iv"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Gebruik de daadwerkelijke inhouds-URLs van voltooide media-assets die u bezit, met de geretourneerde handtekeningen: één videobron voor BFL, of één afbeeldings- en één audiobron voor avatar. Het Source-bewijs voor eigenaar/type/bytes is vereist.",
              "Lever precies één PNG/JPEG-afbeelding en één WAV/MP3-audio-asset aan. De audio is maximaal 32000000 bytes, met een duur groter dan 0 en maximaal 1800 seconden."
            ],
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "required": [
              "model",
              "input_references"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual zero-based output index from completed manifest"
                }
              }
            ],
            "creation_id_field": "id",
            "media_library": {
              "http": "GET",
              "path": "/v1/media/assets"
            },
            "mode": "asynchronous_job_then_owned_outputs",
            "operation_id_is_not_task_id": true,
            "output_content_response": "owned MP4 bytes with Range support",
            "status": [
              {
                "http": "GET",
                "id_source": "daadwerkelijk geretourneerde id of polling_url",
                "path": "/v1/videos/{request_id}"
              }
            ],
            "unknown": "Keep X-Client-Request-ID, X-Ailoot-Task-Id and actual returned id/polling_url. Continue the original job; do not submit creation again."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": null
              },
              {
                "description": null,
                "name": "status",
                "type": null
              },
              {
                "description": null,
                "name": "data[]",
                "type": null
              },
              {
                "description": null,
                "name": "outputs[]",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_REFERENCES_JSON:?Set the actual documented input value}\"\nexport AILOOT_INPUT_REFERENCES_JSON\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'heygen/avatar-iv', 'input_references': '${ACTUAL_OWNED_INPUT_REFERENCES}'}\nrequest['input_references']=json.loads(os.environ['AILOOT_INPUT_REFERENCES_JSON'])\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    z=urlsplit(u)\n    if z.scheme!=\"https\" or z.netloc!=\"api.ailoot.ai\" or z.username or z.password:raise SystemExit(\"Use the actual Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "videos",
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.1",
                "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": "heygen/avatar-iv",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.1",
            "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": "heygen/avatar-iv",
        "request_model_id": "heygen/avatar-iv",
        "route_label": "Ultra"
      }
    ],
    "name": "HeyGen: Avatar IV",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1,
      "varies": false
    },
    "short": "Avatar IV animeert een foto tot een sprekende video met lipsynchronisatie, waarbij gezichtsuitdrukking en gebarentiming door de stem worden gestuurd. HeyGen beschrijft workflows met scripts of opgenomen audio en Photo Avatar-bewegingsregelaars voor levensechte of gestileerde presentatoren."
  },
  "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": "Avatar IV animeert een foto tot een sprekende video met lipsynchronisatie, waarbij gezichtsuitdrukking en gebarentiming door de stem worden gestuurd. HeyGen beschrijft workflows met scripts of opgenomen audio en Photo Avatar-bewegingsregelaars voor levensechte of gestileerde presentatoren.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "549e30ad3e4a349ac4ca0604c0f0545ec17e32035a7b150ac1f389df902f9cdb",
    "renderer_sha256": "be7649af06bb0ae446191041c6cfb8a9b83a53896c8c6e9173e76a39d513e829"
  },
  "sourceRevision": "e786450f704fbdb9c25add3335ef24f3ce879c3a3157622b146e4508d8fd1dd4"
}
