OmniHuman v1.5 API: Programmatisk generering av avatarvideor
En utvecklarguide för OmniHuman v1.5 API på Arteza. Lär dig om slutpunktsstruktur, autentisering, förfrågningsparametrar, svarshantering, webhookintegrering och bästa metoder för att bygga automatiserade arbetsflöden för avatarvideor.

Att köra OmniHuman v1.5 genom Arteza UI är bra för engångsskapande. För högvolymiga arbetsflöden - personaliserad försäljningsövervakning, flerspråkiga utrullningar, CMS-driven videogenerering, automatiserade nyhetssammanfattningar - vill du ha API:et. Den här guiden går igenom autentisering, slutpunkter, begäranstruktur, webhook-hantering och produktionsmönster. Varje generation kostar detsamma 960 krediter ($9.60) oavsett om du anropar den via UI eller API.
TL;DR
- Generera OmniHuman v1.5-videor programmatiskt via Arteza REST API
- Samma $9.60 per generation prissättning som UI:n - ingen API-premie
- Asynkron generering med webhook eller polling-baserad resulthämtning
- Ideal för personaliserad försäljningsvideo, automatiserade träningsbibliotek, flerspråkiga utrullningar
- Autentisering via API-nyckel från Arteza-instrumentpanelen
Varför använda API:et
API:et låser upp automatiseringsmönster som UI:n inte kan matcha:
- Batchgenerering. Kör 100+ videor i en enda pipeline-körning.
- Dynamisk personalisering. Hämta data från en CRM och generera en video per potentiell kund.
- Schemalagda arbetsflöden. Dagliga nyhetssammanfattningar, veckovisa sammanfattningsvideos, utlösta uppdateringar.
- Integrering 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 UI-klick.
Om ditt användningsfall involverar mer än 10 videor med liknande struktur, är API:et värt att ställa in.
Skapa din AI-presentatör nu
Gör ett foto + ljud till en lifelike talande video. $9.60 per video, prisvärda prenumerationsplaner.
Prova OmniHuman Gratis5 gratis generationer · Inget kreditkort krävs
Autentisering
Arteza API-begäranden autentiseras via en API-nyckel som skickas i Authorization-rubriken som en Bearer-token.
Få din API-nyckel
- Logga in på arteza.ai
- Navigera till dina kontoinställningar
- Hitta API-sektionen
- Generera en ny API-nyckel
- Lagra den säkert - behandla den som ett lösenord
Skicka aldrig din API-nyckel till källkontroll. Använd miljövariabler:
export SEEDANCE_API_KEY="your_api_key_here"
Autentiseringsrubrik
Varje begäran innehåller:
Authorization: Bearer YOUR_SEEDANCE_API_KEY
Content-Type: application/json
Slutpunktsstruktur
OmniHuman v1.5 API följer standard asynkronmönster för generering:
- POST för att skapa ett genereringsjobb
- GET för att avsöka status och resultat
- Webhook för asynkron leverans (rekommenderas för produktion)
Bas-URL
https://api.arteza.ai/v1
Viktiga slutpunkter
| Metod | Sökväg | Syfte |
|---|---|---|
POST | /omnihuman/generate | Skicka ett nytt genereringsjobb |
GET | /jobs/{job_id} | Avsök jobbstatus och resultat |
POST | /webhooks | Konfigurera webhook-slutpunkter |
Konsultera den direkta Arteza API-dokumentationen för exakta slutpunktsvägar, eftersom vägarna kan utvecklas.
Skicka ett genereringsjobb
Begäranstruktur
{
"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
| Parameter | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
model | string | Ja | Måste vara "omnihuman-v1.5" |
image_url | string | Ja | Offentligt tillgänglig URL till referensporträtt |
audio_url | string | Ja | Offentligt tillgänglig URL till ljudfil |
prompt | string | Ja | Scenbeskriving för bakgrund, belysning, inramning |
resolution | string | Nej | "720p" eller "1080p" (standard: "720p") |
turbo_mode | boolean | Nej | Aktivera snabbare generering (standard: false) |
webhook_url | string | Nej | URL för mottagning av asynkron avslutningsmeddelande |
Krav på indatafiler
Bild:
- Format: JPEG, PNG
- Upplösning: 512x512 minimum, 1024x1024+ rekommenderat
- Tillgänglig via offentlig HTTPS-URL
Ljud:
- Format: MP3, WAV, M4A
- Varaktighet: ≤60s för 720p, ≤30s för 1080p
- Tillgänglig via offentlig HTTPS-URL
Om dina filer inte redan är värdade offentligt, ladda upp dem till S3, Cloudflare R2, Google Cloud Storage eller liknande innan du gör API-anropet.
Exempel på begäran 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']}")
Exempel på begäran 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": 960
}
job_id är vad du använder för avsökning eller för att korrelera webhook-leveranser.
Avsökning för resultat
Om du inte använder webhooks, avsök statusslutpunkten för jobbet 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
| Status | Betydelse |
|---|---|
queued | Väntar på att starta |
processing | Generering pågår |
completed | Video klar, URL tillgänglig |
failed | Generering misslyckades, kontrollera felfältet |
Använda webhooks (rekommenderas för produktion)
Webhooks eliminerar avsökning och låter dig bygga händelsedrivna pipelines.
Konfigurera en webhook
Skicka webhook_url i din genereringsbegäran. Seedance POSTER till denna URL när jobbet är klart.
Webhook-nyttolast
{
"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": 960,
"completed_at": "2026-04-10T14:26:45Z"
}
Webhook-hanterarexempel
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"]
# Your business logic: download video, notify users,
# trigger downstream workflows, etc.
handle_completed_video(job_id, video_url)
return jsonify({"received": True}), 200
Webhook-säkerhet
Verifiera webhook-signaturer om Arteza tillhandahåller en signeringshemmelighet. Validera alltid att webhooks kommer från Arteza innan du agerar på dem.
Redo att prova OmniHuman v1.5? Börja skapa gratis →

Vill du ha en presentatör som denna? Prova OmniHuman gratis →
Produktionsmönster
Mönster 1: Personaliserad försäljningsvideopipeline
Generera en video per potentiell kund 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 försäljningsvideor för skriptning och distribution.
Mönster 2: Flerspråkig innehållsutrullning
Generera samma meddelande på flera språk, 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 röst- och översättningstips.
Mönster 3: Automatisering av daglig nyhetssammanfattning
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"]
# Schedule via cron, Airflow, or your workflow tool
daily_news_digest()
Mönster 4: CMS-utlöst videogenerering
När ett nytt blogginlägg eller en ny produkt publiceras, generera en följevideo.
@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}
Metodtips för felhantering
Försök igen med exponentiell backoff
Nätverksfel och övergående fel bör utlösa nya försök, inte omedelbar övergivning.
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 inmatningar innan du skickar
Spara krediter genom att validera före varje API-anrop:
- Bild-URL returnerar 200 och content-type bild/*
- Ljud-URL returnerar 200 och content-type ljud/*
- Ljudvaraktigheten ligger inom gränsen för den valda upplösningen
- Prompt är inte tom
Hantera hastighetsbegränsningar
API:et upprätthåller hastighetsbegränsningar. Respektera 429-svar och backoff på lämpligt sätt.
Övervaka kreditsaldo
Kontrollera ditt kreditsaldo innan stora batchkörningar. Att sluta med krediter mitt i batchningen är undvikbart.
Kostnadshantering
Varje API-genererad video kostar 960 krediter ($9.60). Samma kreditpaket som driver UI:n driver API:et:
| Nivå | Pris | Krediter | Effektiv kostnad per API-anrop |
|---|---|---|---|
| Starter | $10 | 1,050 | ~$9.14 |
| Popular | $25 | 2,750 | ~$8.73 |
| Pro | $50 | 5,750 | ~$8.35 |
| Max | $100 | 12,000 | ~$8.00 |
För tunga API-arbetsflöden ger Max-nivån dig den bästa effektiva kostnaden per generering. Se prisguide för detaljer.
Uppskatta projektkostnad
Innan du startar en batchkörning, beräkna total kostnad:
total_cost = number_of_videos * 9.60
En batch på 1,000 videor: $9,600 baskurs, ~$8,000 på Max-nivå. Budgetera därefter.
API-prissättning = UI-prissättning. Ingen uppräkning.
Inga per-säte-avgifter, ingen API-nivelålsning, ingen månatlig minimum. Starta en batch när du behöver det, sluta när du inte gör det.
Få din API-nyckelObserverbarhet
För produktionsarbetsflöden, spåra dessa mätvärden:
- Framgångsfrekvens - % av jobb som slutförs utan fel
- Genomsnittlig genereringstid - för kapacitetsplanering
- Krediter förbrukade - löpande totaler för budgetspårning
- Webhook-leveranshastighet - detektera webhook-leveransfel
- Felkategorisering - gruppera fel efter orsak
Logga jobb-ID:n tillsammans med dina interna korrelations-ID:n för felsökning.
Säkerhetsbest practices
- Exponera aldrig din API-nyckel på klientsidan. Anropa alltid API:et från din backend.
- Använd miljövariabler eller en hemligheterna-hanterare. Skicka aldrig nycklar till källkontroll.
- Rotera nycklar regelbundet. Behandla dem som alla andra uppgifter.
- Validera webhook-signaturer när de är tillgängliga.
- Använd HTTPS för alla bild- och ljud-URL:er som du skickar till API:et.
- Scope webhook-slutpunkter så att endast legitima Arteza-nyttolaster bearbetas.
Komma igång med API:et
- Registrera dig för Arteza och samla dina 50 gratis krediter
- Köp minst ett Starter-paket ($10) för att ha tillräckligt för ett testgenereringsjobb
- Generera din API-nyckel i instrumentpanelen
- Förbered en testbild och ljudfil, ladda upp till en offentlig URL
- Gör ditt första API-anrop med exemplen ovan
- Avsök eller vänta på webhook för att hämta video-URL:en
- Bygga din produktionspipeline
För relaterad läsning, se komplett OmniHuman v1.5-guide, prisöversikt, guide för försäljningsvideor, och flerspråkig guide.
Redo att prova OmniHuman v1.5? Börja skapa gratis →
Try OmniHuman v1.5 - Right Now
Upload your reference image on the create page.
5 free generations · No credit card needed