Utforska
Bild
Video
Avatar
Ljud
Redigera
Verktyg
Fashion StudioApparArbetsflöden
Resurser
Priser-25%
Arteza

Studion för allt du skapar. En arbetsyta, alla modeller.

Läs våra recensioner på Trustpilot

Skapa

  • Bild
  • Video
  • Avatar
  • Ljud
  • Redigera
  • Fashion Studio

Utforska

  • Bibliotek
  • Appar
  • Modeller
  • Verktyg
  • Utseenden
  • Exempel
  • Jämför modeller
  • Verktygalternativ
  • AI-ordlista
  • Arbetsflöden
  • AI Pipeline-redigerare
  • Vad är nytt

Företag

  • Om oss
  • Blogg
  • Priser
  • Kontakt
  • Status
  • Presenterad och recenserad
  • AI-chatt med flera modeller

Juridik

  • Integritet
  • Villkor
  • Licenser
  • Policy för obegränsad generering
Modeller frånByteDanceGoogleOpenAIBlack Forest LabsMiniMaxKuaishouAlibabaStability AI
© 2026 Arteza, Inc.
Tillgängligt på 31 språk
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
HemBildVideoBibliotekKonto
Hem/Blogg/OmniHuman v1.5 API: programmatisk generering av avatarvideor
Product10 april 2026Arteza Team13 min läsning

OmniHuman v1.5 API: programmatisk generering av avatarvideor

En utvecklarguide till OmniHuman v1.5 API på Arteza. Lär dig om endpointstruktur, autentisering, begäransparametrar, responshantering, webhookintegration och bästa praxis för att bygga automatiserade arbetsflöden för avatarvideor.

OmniHuman v1.5 API: programmatisk generering av avatarvideor

Att köra OmniHuman v1.5 via Arteza-gränssnittet är utmärkt för enstaka skapanden. För arbetsflöden med hög volym, till exempel personaliserad säljkontakt, flerspråkiga utrullningar, CMS-driven videogenerering och automatiserade nyhetssammanfattningar, är API:et rätt väg att gå. Den här guiden går igenom autentisering, endpoints, requeststruktur, webhook-hantering och produktionsmönster. Varje generering kostar samma 3-72 krediter ($0,30-$7,20) oavsett om du anropar via gränssnittet eller API:et.

Sammanfattning

  • Generera OmniHuman v1.5-videor programmatiskt via Arteza REST API
  • Samma $0,30-$7,20 per generering som i gränssnittet, utan API-tillägg
  • Asynkron generering med webhook eller polling för att hämta resultat
  • Idealiskt för personaliserade säljvideor, automatiserade utbildningsbibliotek och flerspråkiga utrullningar
  • Autentisering via API-nyckel från din Arteza-instrumentpanel

Varför använda API:et

API:et möjliggör automatiseringsmönster som gränssnittet inte kan matcha:

  • Batchgenerering. Kör 100+ videor i ett enda pipelinekörnig.
  • Dynamisk personalisering. Hämta data från ett CRM och generera en video per prospekt.
  • Schemalagda arbetsflöden. Dagliga nyhetssammanfattningar, veckovisa summerade videor och triggade uppdateringar.
  • Integration med befintliga stackar. Node.js, Python, Go, Ruby, vilket språk som helst med HTTP kan anropa det.
  • Reproducerbar produktion. Versionskontrollerade skript istället för manuella klick i gränssnittet.

Om ditt användningsfall involverar fler än 10 videor med liknande struktur är det värt att sätta upp API:et.

👤

Skapa din AI-presentatör nu

Förvandla ett foto och ljud till en livfull talande video. $7.20 per 30-sekunders video på planer från $5 i månaden.

Prova OmniHuman gratis
Prova det själv- skriv en prompt och generera

5 gratis generationer · Inget kreditkort krävs

Autentisering

Arteza API-anrop autentiseras via en API-nyckel som skickas i Authorization-headern som en Bearer-token.

Hämta din API-nyckel

  1. Logga in på arteza.ai
  2. Navigera till dina kontoinställningar
  3. Hitta API-sektionen
  4. Generera en ny API-nyckel
  5. Förvara den säkert, behandla den som ett lösenord

Commit aldrig din API-nyckel till versionskontrollen. Använd miljövariabler:

export SEEDANCE_API_KEY="your_api_key_here"

Autentiseringsheader

Varje anrop inkluderar:

Authorization: Bearer YOUR_SEEDANCE_API_KEY
Content-Type: application/json

Endpointstruktur

OmniHuman v1.5 API:et följer standardmönster för asynkron generering:

  • POST för att skapa ett genereringsjobb
  • GET för att pollar efter status och resultat
  • Webhook för asynkron leverans (rekommenderas i produktion)

Bas-URL

https://api.arteza.ai/v1

Viktiga endpoints

MetodSökvägSyfte
POST/omnihuman/generateSkicka in ett nytt genereringsjobb
GET/jobs/{job_id}Pollar efter jobbstatus och resultat
POST/webhooksKonfigurera webhook-endpoints

Konsultera den aktuella Arteza API-dokumentationen för exakta endpoint-sökvägar, eftersom dessa kan förändras.

Skicka in ett genereringsjobb

Requeststruktur

{
  "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"
}

Parameterreferens

ParameterTypObligatoriskBeskrivning
modelsträngJaMåste vara "omnihuman-v1.5"
image_urlsträngJaOffentligt tillgänglig URL till referensporträtt
audio_urlsträngJaOffentligt tillgänglig URL till ljudfil
promptsträngJaScenbeskrivning för bakgrund, belysning och inramning
resolutionsträngNej"720p" eller "1080p" (standard: "720p")
turbo_modebooleanNejAktivera snabbare generering (standard: false)
webhook_urlsträngNejURL för att ta emot asynkront slutförandemeddelande

Krav på indatafiler

Bild:

  • Format: JPEG, PNG
  • Upplösning: minst 512x512, 1024x1024 eller mer rekommenderas
  • Tillgänglig via offentlig HTTPS-URL

Ljud:

  • Format: MP3, WAV, M4A
  • Varaktighet: högst 60 s för 720p, högst 30 s för 1080p
  • Tillgänglig via offentlig HTTPS-URL

Om dina filer inte redan är offentligt tillgängliga, ladda upp dem till S3, Cloudflare R2, Google Cloud Storage eller liknande innan du gör API-anropet.

Exempelanrop i 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"Job submitted: {job['job_id']}")

Exempelanrop i 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 error: ${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(`Job submitted: ${job.job_id}`);

Svarsformat

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

job_id är det du använder för polling eller för att korrelera webhook-leveranser.

Polling efter resultat

Om du inte använder webhooks, pollar du jobbstatus-endpointen tills jobbet är klart.

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"Generation failed: {data.get('error')}")

        time.sleep(poll_interval)

    raise TimeoutError("Job did not complete within timeout")

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

Jobbstatusvärden

StatusInnebörd
queuedVäntar på att starta
processingGenerering pågår
completedVideo klar, URL tillgänglig
failedGenerering misslyckades, kontrollera felfältet

Använda webhooks (rekommenderas i produktion)

Webhooks eliminerar polling och låter dig bygga händelsedrivna pipelines.

Konfigurera en webhook

Skicka med webhook_url i din genereringsanrop. Seedance POSTar till den URL:en när jobbet är klart.

Webhook-payload

{
  "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"
}

Exempel på webhook-hanterare

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"]

        # Din affärslogik: ladda ned video, meddela användare,
        # trigga nedströmliga arbetsflöden osv.
        handle_completed_video(job_id, video_url)

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

Webhook-säkerhet

Verifiera webhook-signaturer om Arteza tillhandahåller en signeringshemlig nyckel. Kontrollera alltid att webhooks kommer från Arteza innan du agerar på dem.

Redo att prova OmniHuman v1.5? Börja skapa gratis →

Ett AI-genererat talande huvud från OmniHuman v1.5

Vill du ha en presentatör som den här? Prova OmniHuman gratis →

Produktionsmönster

Mönster 1: Pipeline för personaliserade säljvideor

Generera en video per prospekt med dynamiska skriptvariabler.

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)

Se guide för säljvideor för skriptning och distribution.

Mönster 2: Flerspråkig innehållsutrullning

Generera samma budskap på flera språk med samma 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"]))

Se flerspråkig guide för tips om röster och översättning.

Mönster 3: Automatisering av dagliga nyhetssammanfattningar

Schemalagd pipeline som hämtar rubriker, genererar TTS och producerar en daglig video.

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"]

# Schemalägg via cron, Airflow eller ditt arbetsflödesverktyg
daily_news_digest()

Se guide för nyhetsankare.

Mönster 4: CMS-triggad videogenerering

När ett nytt blogginlägg eller en ny produkt publiceras genereras en tillhörande 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}

Bästa praxis för felhantering

Försök igen med exponentiell backoff

Nätverksfel och tillfälliga fel bör trigga nya försök, inte omedelbart avbrytande.

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

Validera indata innan du skickar

Spara krediter genom att validera innan varje API-anrop:

  • Bild-URL returnerar 200 och content-type image/*
  • Ljud-URL returnerar 200 och content-type audio/*
  • Ljudets varaktighet är inom gränsen för vald upplösning
  • Prompten är inte tom

Hantera hastighetsgränser

API:et tillämpar hastighetsgränser. Respektera 429-svar och backa av på lämpligt sätt.

Övervaka kreditbalansen

Kontrollera din kreditbalans innan stora batchkörningar. Att få slut på krediter mitt i en batch går att förhindra.

Kostnadshantering

En API-genererad video kostar 2,4 krediter per sekund ljud, det vill säga 72 krediter ($7.20) för 30 sekunder. Samma krediter som driver gränssnittet driver API:et:

PlanPrisKrediter per månadEffektiv kostnad per 30-sekunders anrop
Starter$560~$3.83
Creator$25300~$3.83
Pro$50700~$3.29
Studio$1201 800~$3.07

För tunga API-arbetsflöden ger Studio-planen bäst effektiv kostnad per generering. Se prisguide för mer information.

Beräkna projektkostnad

Innan du startar en batchkörning, beräkna den totala kostnaden:

total_cost = number_of_videos * 4.60

En batch med 1 000 videor à 30 sekunder: $7 200 till bashastigheten, och betydligt mindre på en månadsplan. Budgetera därefter.

⚙️

API-pris = gränssnittspris. Inget tillägg.

Inga per-sätesavgifter och ingen API-nivålåsning. Starta en batch när du behöver det och lägg ner den när du inte gör det.

Hämta din API-nyckel

Observerbarhet

För produktionsarbetsflöden, spåra dessa mätvärden:

  • Framgångsfrekvens - andelen jobb som slutförs framgångsrikt
  • Genomsnittlig genereringstid - för kapacitetsplanering
  • Förbrukade krediter - rullande summor för budgetuppföljning
  • Webhook-leveransfrekvens - upptäck webhook-leveransfel
  • Felkategorisering - gruppera fel efter orsak

Logga jobb-ID:n tillsammans med dina interna korrelations-ID:n för felsökning.

Bästa praxis för säkerhet

  • Exponera aldrig din API-nyckel på klientsidan. Anropa alltid API:et från din backend.
  • Använd miljövariabler eller en hemlighetshanterare. Commit aldrig nycklar till versionskontrollen.
  • Rotera nycklar regelbundet. Behandla dem som alla andra autentiseringsuppgifter.
  • Verifiera webhook-signaturer när de finns tillgängliga.
  • Använd HTTPS för alla bild- och ljud-URL:er du skickar till API:et.
  • Avgränsa webhook-endpoints så att endast legitima Arteza-payloads bearbetas.

Kom igång med API:et

  1. Registrera dig för Arteza och samla dina 10 gratis krediter
  2. Prenumerera på minst Starter-planen ($5/månad) för att ha tillräckligt för en testgenerering
  3. Generera din API-nyckel i instrumentpanelen
  4. Förbered en testbild och en ljudfil och ladda upp dem till en offentlig URL
  5. Gör ditt första API-anrop med exemplen ovan
  6. Pollar eller vänta på webhook för att hämta video-URL:en
  7. Bygg din produktionspipeline

För relaterad läsning, se komplett guide för OmniHuman v1.5, prisöversikt, guide för säljvideor och flerspråkig guide.

Redo att prova OmniHuman v1.5? Börja skapa gratis →

Prova OmniHuman v1.5 - Just nu

Ladda upp ditt referensfoto på skapa-sidan.

5 gratis generationer · Inget kreditkort krävs

Öppna OmniHuman v1.5-appen

Relaterade verktyg

AI-avatargeneratorAI-videogeneratorVoiceoverAI-videostudio

Relaterade inlägg

Product

Google Veo 3 på Arteza: AI-video i biokvalitet med inbyggt ljud

Product

Komplett AI-bildredigeringsverktyg: 6 verktyg i en plattform

Product

FLUX Kontext Pro: den bästa AI-bildredigeraren för naturliga språkredigeringar

Product

Smart Edit: redigera bilder med naturliga språkinstruktioner

Föregående: OmniHuman v1.5: skapa lifelike AI-avatarer från ett enda fotoNästa: AI-avatarer med OmniHuman: skapa talande videor från ett enda foto