Verkennen
Afbeelding
Video
Avatar
Audio
Bewerk
Tools
Fashion StudioAppsWorkflows
Bronnen
Prijzen-25%
Arteza

De studio voor alles wat je maakt. Één werkplek, elk model.

Lees onze recensies op Trustpilot

Maken

  • Afbeelding
  • Video
  • Avatar
  • Audio
  • Bewerk
  • Fashion Studio

Verkennen

  • Bibliotheek
  • Apps
  • Modellen
  • Tools
  • Looks
  • Voorbeelden
  • Modellen vergelijken
  • Toolalternatieven
  • AI-woordenlijst
  • Workflows
  • AI Pipeline-editor
  • Wat is nieuw

Bedrijf

  • Over
  • Blog
  • Prijzen
  • Contact
  • Status
  • Uitgelicht en beoordeeld
  • Multi-model AI-chat

Juridisch

  • Privacy
  • Voorwaarden
  • Licenties
  • Onbeperkt beleid
Modellen vanByteDanceGoogleOpenAIBlack Forest LabsMiniMaxKuaishouAlibabaStability AI
© 2026 Arteza, Inc.
Beschikbaar in 31 talen
enEnglishesEspañolfrFrançaisdeDeutschitItalianoptPortuguêsnlNederlandsplPolskisvSvenskadaDansknoNorskfiSuomija日本語ko한국어zh中文thไทยviTiếng ViệtidBahasa IndonesiamsBahasa MelayutlFilipinoarالعربيةheעבריתfaفارسیurاردوhiहिन्दीbnবাংলাtrTürkçeruРусскийukУкраїнськаroRomânăcsČeština
arteza.ai
StartpaginaAfbeeldingVideoBibliotheekAccount
Startpagina/Blog/OmniHuman v1.5 API: programmatische avatarvideogeneratie
Product10 april 2026Arteza Team13 min lezen

OmniHuman v1.5 API: programmatische avatarvideogeneratie

Een ontwikkelaarsgids voor de OmniHuman v1.5 API op Arteza. Leer over endpointstructuur, authenticatie, aanvraagparameters, responsafhandeling, webhookintegratie en best practices voor het bouwen van geautomatiseerde avatarvideoworkflows.

OmniHuman v1.5 API: programmatische avatarvideogeneratie

OmniHuman v1.5 uitvoeren via de Arteza UI is ideaal voor eenmalige creaties. Voor workflows met hoog volume, zoals gepersonaliseerde verkoopoutreach, meertalige uitrollingen, CMS-gestuurde videogeneratie en geautomatiseerde nieuwssamenvattingen, wil je de API gebruiken. Deze gids behandelt authenticatie, endpoints, aanvraagstructuur, webhookverwerking en productiepatronen. Elke generatie kost hetzelfde 3-72 credits ($0,30-$7,20), of je nu via de UI of de API werkt.

Samenvatting

  • Genereer OmniHuman v1.5-video's programmatisch via de Arteza REST API
  • Dezelfde $0,30-$7,20 per generatie als de UI, geen API-toeslag
  • Asynchrone generatie met webhook of op polling gebaseerd resultaatbeheer
  • Ideaal voor gepersonaliseerde verkoopvideo's, geautomatiseerde trainingsbibliotheken en meertalige uitrollingen
  • Authenticatie via een API-sleutel uit je Arteza-dashboard

Waarom de API gebruiken

De API maakt automatiseringspatronen mogelijk die de UI niet kan bieden:

  • Batchgeneratie. Voer 100+ video's uit in één pipelinerun.
  • Dynamische personalisatie. Haal data op uit een CRM en genereer een video per prospect.
  • Geplande workflows. Dagelijkse nieuwssamenvattingen, wekelijkse samenvattingsvideo's en getriggerde updates.
  • Integratie met bestaande stacks. Node.js, Python, Go, Ruby: elke taal met HTTP kan de API aanroepen.
  • Reproduceerbare productie. Versiebeheerde scripts in plaats van handmatige UI-klikken.

Als jouw gebruik meer dan 10 video's met een vergelijkbare structuur omvat, is het de moeite waard om de API in te stellen.

👤

Maak nu je AI-presentator

Zet één foto en audio om in een levensechte pratvideo. $7,20 per video van 30 seconden op abonnementen vanaf $5 per maand.

Probeer OmniHuman gratis
Probeer het zelf- typ een prompt en genereer

5 gratis generaties · Geen creditcard nodig

Authenticatie

Arteza API-verzoeken authenticeren via een API-sleutel die in de Authorization-header wordt meegegeven als Bearer-token.

Je API-sleutel ophalen

  1. Meld je aan op arteza.ai
  2. Ga naar je accountinstellingen
  3. Zoek de API-sectie op
  4. Genereer een nieuwe API-sleutel
  5. Bewaar deze veilig, behandel hem als een wachtwoord

Sla je API-sleutel nooit op in versiebeheer. Gebruik omgevingsvariabelen:

export SEEDANCE_API_KEY="your_api_key_here"

Authenticatieheader

Elk verzoek bevat:

Authorization: Bearer YOUR_SEEDANCE_API_KEY
Content-Type: application/json

Endpointstructuur

De OmniHuman v1.5 API volgt standaard asynchrone generatiepatronen:

  • POST om een generatietaak te maken
  • GET om de status en resultaten op te vragen
  • Webhook voor asynchrone levering (aanbevolen voor productie)

Basis-URL

https://api.arteza.ai/v1

Belangrijkste endpoints

MethodePadDoel
POST/omnihuman/generateEen nieuwe generatietaak indienen
GET/jobs/{job_id}Taakstatus en resultaat opvragen
POST/webhooksWebhook-endpoints configureren

Raadpleeg de actuele Arteza API-documentatie voor exacte endpointpaden, omdat paden kunnen veranderen.

Een generatietaak indienen

Aanvraagstructuur

{
  "model": "omnihuman-v1.5",
  "image_url": "https://example.com/portrait.jpg",
  "audio_url": "https://example.com/speech.mp3",
  "prompt": "Modern corporate office with soft natural lighting, medium close-up framing head and shoulders, professional broadcast style",
  "resolution": "1080p",
  "turbo_mode": false,
  "webhook_url": "https://yourapp.com/webhooks/seedance"
}

Parameterreferentie

ParameterTypeVerplichtBeschrijving
modelstringJaMoet "omnihuman-v1.5" zijn
image_urlstringJaPubliek toegankelijke URL naar het referentieportret
audio_urlstringJaPubliek toegankelijke URL naar het audiobestand
promptstringJaScènebeschrijving voor achtergrond, belichting en kadrering
resolutionstringNee"720p" of "1080p" (standaard: "720p")
turbo_modebooleanNeeSnellere generatie inschakelen (standaard: false)
webhook_urlstringNeeURL voor asynchrone voltooiingsmelding

Vereisten voor invoerbestanden

Afbeelding:

  • Formaten: JPEG, PNG
  • Resolutie: minimaal 512x512, 1024x1024 of hoger aanbevolen
  • Toegankelijk via een publieke HTTPS-URL

Audio:

  • Formaten: MP3, WAV, M4A
  • Duur: maximaal 60s voor 720p, maximaal 30s voor 1080p
  • Toegankelijk via een publieke HTTPS-URL

Als je bestanden nog niet publiek gehost zijn, upload ze dan naar S3, Cloudflare R2, Google Cloud Storage of een vergelijkbare dienst voordat je de API aanroept.

Voorbeeldverzoek in Python

import os
import requests

SEEDANCE_API_KEY = os.environ["SEEDANCE_API_KEY"]
BASE_URL = "https://api.arteza.ai/v1"

def create_omnihuman_video(image_url, audio_url, prompt,
                           resolution="1080p", turbo=False):
    headers = {
        "Authorization": f"Bearer {SEEDANCE_API_KEY}",
        "Content-Type": "application/json",
    }
    payload = {
        "model": "omnihuman-v1.5",
        "image_url": image_url,
        "audio_url": audio_url,
        "prompt": prompt,
        "resolution": resolution,
        "turbo_mode": turbo,
    }
    response = requests.post(
        f"{BASE_URL}/omnihuman/generate",
        json=payload,
        headers=headers,
    )
    response.raise_for_status()
    return response.json()

job = create_omnihuman_video(
    image_url="https://cdn.example.com/ceo.jpg",
    audio_url="https://cdn.example.com/weekly-update.mp3",
    prompt="Corporate office with warm lighting, medium close-up, professional style",
)
print(f"Taak ingediend: {job['job_id']}")

Voorbeeldverzoek in Node.js

import fetch from "node-fetch";

const SEEDANCE_API_KEY = process.env.SEEDANCE_API_KEY;
const BASE_URL = "https://api.arteza.ai/v1";

async function createOmnihumanVideo({
  imageUrl,
  audioUrl,
  prompt,
  resolution = "1080p",
  turbo = false,
}) {
  const response = await fetch(`${BASE_URL}/omnihuman/generate`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${SEEDANCE_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "omnihuman-v1.5",
      image_url: imageUrl,
      audio_url: audioUrl,
      prompt,
      resolution,
      turbo_mode: turbo,
    }),
  });

  if (!response.ok) {
    throw new Error(`Arteza API-fout: ${response.status}`);
  }
  return response.json();
}

const job = await createOmnihumanVideo({
  imageUrl: "https://cdn.example.com/ceo.jpg",
  audioUrl: "https://cdn.example.com/update.mp3",
  prompt: "Modern office, soft lighting, medium close-up",
});
console.log(`Taak ingediend: ${job.job_id}`);

Responsformaat

{
  "job_id": "job_abc123xyz",
  "status": "queued",
  "created_at": "2026-04-10T14:23:00Z",
  "estimated_credits": 46
}

De job_id gebruik je voor polling of om webhookleveringen te koppelen.

Resultaten opvragen via polling

Als je geen webhooks gebruikt, vraag je de taakstatus op totdat de taak voltooid is.

import time

def wait_for_video(job_id, timeout_seconds=600, poll_interval=5):
    headers = {"Authorization": f"Bearer {SEEDANCE_API_KEY}"}
    deadline = time.time() + timeout_seconds

    while time.time() < deadline:
        response = requests.get(
            f"{BASE_URL}/jobs/{job_id}",
            headers=headers,
        )
        response.raise_for_status()
        data = response.json()
        status = data["status"]

        if status == "completed":
            return data["result"]["video_url"]
        if status == "failed":
            raise Exception(f"Generatie mislukt: {data.get('error')}")

        time.sleep(poll_interval)

    raise TimeoutError("Taak niet voltooid binnen de tijdslimiet")

video_url = wait_for_video(job["job_id"])
print(f"Video klaar: {video_url}")

Taakstatuswaarden

StatusBetekenis
queuedWacht op start
processingGeneratie bezig
completedVideo klaar, URL beschikbaar
failedGeneratie mislukt, controleer het foutveld

Webhooks gebruiken (aanbevolen voor productie)

Webhooks elimineren polling en laten je event-driven pipelines bouwen.

Een webhook configureren

Geef webhook_url mee in je generatieverzoek. Seedance stuurt dan een POST-verzoek naar die URL wanneer de taak voltooid is.

Webhookpayload

{
  "event": "job.completed",
  "job_id": "job_abc123xyz",
  "status": "completed",
  "result": {
    "video_url": "https://cdn.arteza.ai/outputs/video_abc123.mp4",
    "resolution": "1080p",
    "duration_seconds": 28.5
  },
  "credits_used": 46,
  "completed_at": "2026-04-10T14:26:45Z"
}

Voorbeeld van een webhookhandler

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/webhooks/seedance", methods=["POST"])
def seedance_webhook():
    payload = request.get_json()

    if payload.get("event") == "job.completed":
        job_id = payload["job_id"]
        video_url = payload["result"]["video_url"]

        # Jouw bedrijfslogica: video downloaden, gebruikers informeren,
        # vervolgworkflows starten, enzovoort.
        handle_completed_video(job_id, video_url)

    return jsonify({"received": True}), 200

Webhookbeveiliging

Verifieer webhookhandtekeningen als Arteza een signeersecret biedt. Valideer altijd dat webhooks afkomstig zijn van Arteza voordat je er actie op onderneemt.

Klaar om OmniHuman v1.5 te proberen? Gratis beginnen met maken →

Een door AI gegenereerde pratende kop van OmniHuman v1.5

Wil je een presentator zoals deze? OmniHuman gratis proberen →

Productiepatronen

Patroon 1: gepersonaliseerde verkoopvideo-pipeline

Genereer één video per prospect met dynamische scriptvariabelen.

def generate_sales_video_for_prospect(prospect):
    script = render_template("sales_template.txt", {
        "first_name": prospect["first_name"],
        "company": prospect["company"],
        "trigger": prospect["trigger_event"],
    })

    audio_url = generate_tts(script)

    job = create_omnihuman_video(
        image_url=YOUR_SDR_PHOTO_URL,
        audio_url=audio_url,
        prompt=STANDARD_SCENE_PROMPT,
        resolution="1080p",
    )
    return job["job_id"]

prospects = load_prospects_from_crm()
for prospect in prospects:
    generate_sales_video_for_prospect(prospect)

Zie de gids voor verkoopvideo's voor scripting en distributie.

Patroon 2: meertalige contentroutering

Genereer hetzelfde bericht in meerdere talen met dezelfde foto.

languages = [
    ("en", "english_audio.mp3"),
    ("es", "spanish_audio.mp3"),
    ("pt", "portuguese_audio.mp3"),
    ("fr", "french_audio.mp3"),
    ("de", "german_audio.mp3"),
]

jobs = []
for lang_code, audio_file in languages:
    audio_url = upload_to_cdn(audio_file)
    job = create_omnihuman_video(
        image_url=SPOKESPERSON_PHOTO_URL,
        audio_url=audio_url,
        prompt=STANDARD_PROMPT,
    )
    jobs.append((lang_code, job["job_id"]))

Zie de meertalige gids voor tips over stemmen en vertaling.

Patroon 3: automatisering van dagelijkse nieuwssamenvattingen

Geplande pipeline die koppen ophaalt, TTS genereert en een dagelijkse video produceert.

from datetime import datetime

def daily_news_digest():
    headlines = fetch_top_headlines()
    script = format_headlines_as_script(headlines)
    audio_url = generate_tts(script, voice="broadcast_news")

    job = create_omnihuman_video(
        image_url=NEWS_ANCHOR_PHOTO_URL,
        audio_url=audio_url,
        prompt="Professional news studio, broadcast style, medium close-up",
        resolution="720p",
    )
    return job["job_id"]

# Plan via cron, Airflow of je workflowtool
daily_news_digest()

Zie de gids voor nieuwslezers.

Patroon 4: CMS-getriggerde videogeneratie

Wanneer een nieuw blogbericht of product gepubliceerd wordt, genereer je een bijbehorende video.

@app.route("/cms/published", methods=["POST"])
def on_content_published():
    content = request.get_json()
    script = summarize_content(content["body"])
    audio_url = generate_tts(script)

    job = create_omnihuman_video(
        image_url=BRAND_SPOKESPERSON_PHOTO,
        audio_url=audio_url,
        prompt=BRAND_SCENE_PROMPT,
        webhook_url="https://yourapp.com/webhooks/seedance",
    )
    store_job_mapping(content["id"], job["job_id"])
    return {"ok": True}

Beste praktijken voor foutafhandeling

Opnieuw proberen met exponentieel uitstel

Netwerkfouten en tijdelijke storingen moeten nieuwe pogingen triggeren, niet direct worden opgegeven.

import time

def create_with_retry(params, max_retries=3):
    delay = 2
    for attempt in range(max_retries):
        try:
            return create_omnihuman_video(**params)
        except requests.RequestException as e:
            if attempt == max_retries - 1:
                raise
            time.sleep(delay)
            delay *= 2

Invoer valideren voor het indienen

Bespaar credits door vóór elke API-aanroep te valideren:

  • De afbeelding-URL geeft 200 terug en het contenttype is image/*
  • De audio-URL geeft 200 terug en het contenttype is audio/*
  • De audioduur valt binnen de limiet voor de gekozen resolutie
  • De prompt is niet leeg

Snelheidslimieten verwerken

De API hanteert snelheidslimieten. Houd rekening met 429-reacties en wacht de juiste tijd.

Creditssaldo bewaken

Controleer je creditssaldo vóór grote batchruns. Opraken van credits halverwege een batch is te voorkomen.

Kostenbeheer

Een via de API gegenereerde video kost 2,4 credits per seconde audio, ofwel 72 credits ($7,20) voor 30 seconden. Dezelfde credits die de UI aandrijven, drijven ook de API aan:

AbonnementPrijsCredits per maandEffectieve kosten per aanroep van 30 seconden
Starter$560~$3,83
Creator$25300~$3,83
Pro$50700~$3,29
Studio$1201.800~$3,07

Voor intensief API-gebruik geeft het Studio-abonnement je de beste effectieve kosten per generatie. Zie de prijzengids voor meer informatie.

Projectkosten schatten

Bereken de totale kosten vóór een batchrun:

total_cost = number_of_videos * 4.60

Een batch van 1.000 video's van 30 seconden: $7.200 tegen het basistarief, en veel minder met een maandabonnement. Plan je budget dienovereenkomstig.

⚙️

API-prijs = UI-prijs. Geen toeslag.

Geen kosten per gebruiker en geen vergrendeling op een API-tier. Start een batch wanneer je die nodig hebt, stop wanneer je klaar bent.

Haal je API-sleutel op

Observeerbaarheid

Volg voor productionele workflows deze statistieken:

  • Slagingspercentage - percentage taken dat succesvol voltooid wordt
  • Gemiddelde generatietijd - voor capaciteitsplanning
  • Verbruikte credits - lopende totalen voor budgetbeheer
  • Webhookleveringspercentage - detecteer mislukte webhookleveringen
  • Foutcategorisering - groepeer mislukkingen op oorzaak

Log taak-ID's naast je interne correlatie-ID's voor debuggen.

Beste praktijken voor beveiliging

  • Stel je API-sleutel nooit bloot aan de client-side. Roep de API altijd aan vanuit je backend.
  • Gebruik omgevingsvariabelen of een secrets manager. Sla sleutels nooit op in versiebeheer.
  • Roteer sleutels regelmatig. Behandel ze als andere inloggegevens.
  • Valideer webhookhandtekeningen wanneer beschikbaar.
  • Gebruik HTTPS voor alle afbeeldings- en audio-URL's die je aan de API doorgeeft.
  • Beperk webhookendpoints zodat alleen legitieme Arteza-payloads worden verwerkt.

Aan de slag met de API

  1. Aanmelden voor Arteza en ontvang je 10 gratis credits
  2. Neem minimaal het Starter-abonnement ($5/maand) zodat je genoeg hebt voor een testgeneratie
  3. Genereer je API-sleutel in het dashboard
  4. Bereid een testafbeelding en een audiobestand voor en upload ze naar een publieke URL
  5. Doe je eerste API-aanroep met de bovenstaande voorbeelden
  6. Vraag via polling of wacht op de webhook om de video-URL op te halen
  7. Bouw je productiepipeline

Voor aanverwante informatie, zie de volledige OmniHuman v1.5-gids, prijsoverzicht, gids voor verkoopvideo's en meertalige gids.

Klaar om OmniHuman v1.5 te proberen? Gratis beginnen met maken →

OmniHuman v1.5 uitproberen - Nu!

Upload je referentieafbeelding op de aanmaakpagina.

5 gratis generaties · Geen creditcard nodig

Open de OmniHuman v1.5 app

Gerelateerde tools

AI-avatargeneratorAI-videogeneratorVoiceoverAI Videostudio

Gerelateerde posts

Product

Google Veo 3 op Arteza: AI-video van bioscoopkwaliteit met native audio

Product

Complete AI-beeldbewerkingstoolkit: 6 tools in één platform

Product

FLUX Kontext Pro: de beste AI-afbeeldingseditor voor bewerkingen in natuurlijke taal

Product

Smart Edit: afbeeldingen bewerken met natuurlijke taalinstructies

Vorige: OmniHuman v1.5: maak levensechte AI-avatars van één fotoVolgende: AI-avatars met OmniHuman: maak praathoofdvideo's van één enkele foto