OmniHuman v1.5 API: Programmatisk Avatar-videooprettelse
En udviklerguide til OmniHuman v1.5 API på Arteza. Lær om endepunktstruktur, godkendelse, anmodningsparametre, responsbehandling, webhook-integration og bedste praksis for at bygge automatiserede avatar-videoworkflows.

At køre OmniHuman v1.5 gennem Arteza-brugerfladen er fantastisk til engangsgenerering. For højvolumens workflows - personaliseret salgsoutreach, flersprogede udrulninger, CMS-drevet videogenerering, automatiserede nyhedssamlinger - vil du have API'et. Denne guide gennemgår godkendelse, endpoints, anmodningsstruktur, webhook-håndtering og produktionsmønstre. Hver generering koster det samme 960 credits (9,60 dollars) uanset om du kalder det via brugerfladen eller API'et.
TL;DR
- Generer OmniHuman v1.5-videoer programmatisk via Arteza REST API
- Samme 9,60 dollars pr. generering prissætning som brugerfladen - ingen API-premium
- Asynkron generering med webhook eller polling-baseret resultathentet
- Ideel til personaliseret salgsvideo, automatiserede træningsbiblioteker, flersprogede udrulninger
- Godkendelse via API-nøgle fra dit Arteza-dashboard
Hvorfor bruge API'et
API'et låser op for automatiseringsmønstre, som brugerfladen ikke kan matche:
- Batchgenerering. Kør 100+ videoer i en enkelt pipeline-kørsel.
- Dynamisk personalisering. Hent data fra en CRM og generer en video pr. prospect.
- Planlagte workflows. Daglige nyhedssamlinger, ugentlige opsummeringer, udløste opdateringer.
- Integration med eksisterende stakke. Node.js, Python, Go, Ruby - ethvert sprog med HTTP kan kalde det.
- Reproducerbar produktion. Versionskontrollerede scripts i stedet for manuelle UI-klik.
Hvis dit use case involverer mere end 10 videoer med lignende struktur, er API'et værd at sætte op.
Opret din AI-præsentator nu
Forvandle ét foto + lyd til en lifelike talende video. 9,60 dollars pr. video, overkommelige abonnementplaner.
Prøv OmniHuman gratis5 gratis generationer · Intet kreditkort påkrævet
Godkendelse
Arteza API-anmodninger godkendes via en API-nøgle sendt i Authorization-headeren som et Bearer-token.
Få din API-nøgle
- Log ind på arteza.ai
- Naviger til dine kontoindstillinger
- Find API-sektionen
- Generer en ny API-nøgle
- Gem det sikkert - behandl det som en adgangskode
Commit aldrig din API-nøgle til versionskontrol. Brug miljøvariabler:
export SEEDANCE_API_KEY="your_api_key_here"
Godkendelsesheader
Hver anmodning indeholder:
Authorization: Bearer YOUR_SEEDANCE_API_KEY
Content-Type: application/json
Endpoint-struktur
OmniHuman v1.5 API'et følger standard asynkrone genereringsmønstre:
- POST for at oprette et genereringsjob
- GET for at polling status og resultater
- Webhook for asynkron levering (anbefalet til produktion)
Base URL
https://api.arteza.ai/v1
Vigtige endpoints
| Metode | Sti | Formål |
|---|---|---|
POST | /omnihuman/generate | Indsend et nyt genereringsjob |
GET | /jobs/{job_id} | Poll for jobstatus og resultat |
POST | /webhooks | Konfigurer webhook-endpoints |
Se den live Arteza API-dokumentation for nøjagtige endpoint-stier, da stier kan udvikle sig.
Indsendelse af et genereringsjob
Anmodningsstruktur
{
"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"
}
Parameteroversigt
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
model | string | Ja | Skal være "omnihuman-v1.5" |
image_url | string | Ja | Offentligt tilgængelig URL til referenceportræt |
audio_url | string | Ja | Offentligt tilgængelig URL til lydfil |
prompt | string | Ja | Scenebeskrivelse for baggrund, belysning, indramning |
resolution | string | Nej | "720p" eller "1080p" (standard: "720p") |
turbo_mode | boolean | Nej | Aktivér hurtigere generering (standard: false) |
webhook_url | string | Nej | URL for at modtage asynkron gennemførelsesmeddelelse |
Krav til inputfiler
Billede:
- Formater: JPEG, PNG
- Opløsning: 512x512 minimum, 1024x1024+ anbefalet
- Tilgængelig via offentlig HTTPS URL
Lyd:
- Formater: MP3, WAV, M4A
- Varighed: ≤60s for 720p, ≤30s for 1080p
- Tilgængelig via offentlig HTTPS URL
Hvis dine filer ikke allerede er vært offentligt, skal du uploade dem til S3, Cloudflare R2, Google Cloud Storage eller lignende før du foretager API-kaldet.
Eksempel på anmodning 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']}")
Eksempel på anmodning 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}`);
Responsformat
{
"job_id": "job_abc123xyz",
"status": "queued",
"created_at": "2026-04-10T14:23:00Z",
"estimated_credits": 960
}
Den job_id er hvad du bruger til polling eller korrelering af webhook-leveringer.
Polling for resultater
Hvis du ikke bruger webhooks, poll jobstatusendpointet, indtil jobbet er fuldført.
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}")
Jobstatusværdier
| Status | Betydning |
|---|---|
queued | Venter på at starte |
processing | Generering i gang |
completed | Video klar, URL tilgængelig |
failed | Generering mislykkedes, tjek fejlfeld |
Brug af webhooks (anbefalet til produktion)
Webhooks eliminerer polling og lader dig bygge event-drevne pipelines.
Konfigurering af en webhook
Send webhook_url i din genereringanmodning. Seedance POSTer til den URL, når jobbet er fuldført.
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": 960,
"completed_at": "2026-04-10T14:26:45Z"
}
Webhook Handler eksempel
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-sikkerhed
Bekræft webhook-signaturer, hvis Arteza giver en signeringshemmelighed. Valider altid, at webhooks kommer fra Arteza, før du handler på dem.
Klar til at prøve OmniHuman v1.5? Start med at skabe gratis →

Vil du have en præsentator som denne? Prøv OmniHuman gratis →
Produktionsmønstre
Mønster 1: Personaliseret salgsvideo-pipeline
Generer en video pr. prospect med dynamiske skriptvariable.
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 salgsvideo-guide for scripting og distribution.
Mønster 2: Flersprogede indholdsrulout
Generer samme besked på flere sprog, samme 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 flersproget guide for stemme- og oversættelsestips.
Mønster 3: Daglig nyhedssamling automatisering
Planlagt pipeline, der henter overskrifter, genererer TTS og producerer 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-udløst videogenerering
Når et nyt blogindlæg eller produkt udgives, generer en ledsagende 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}
Best practices for fejlhåndtering
Retry med eksponentiel backoff
Netværksfejl og forbigående fejl bør udløse forsøg igen, ikke øjeblikkelig opgivelse.
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
Valider input før indsendelse
Spar credits ved at validere før hver API-kald:
- Billede-URL returnerer 200 og indholds-type billede/*
- Lyd-URL returnerer 200 og indholds-type lyd/*
- Lydvarighed er inden for grænsen for den valgte opløsning
- Prompt er ikke tom
Håndter hastighedsbegrænsninger
API'et håndhæver hastighedsbegrænsninger. Respekter 429-svar og træk dich tilbage passende.
Overvåg kreditbalance
Tjek din kreditbalance før store batchkørsler. At løbe tør for credits midt i batch kan undgås.
Omkostningsstyring
Hver API-genereret video koster 960 credits (9,60 dollars). Den samme creditpakke, der driver brugerfladen, driver API'et:
| Trin | Pris | Credits | Effektiv omkostning pr. API-kald |
|---|---|---|---|
| Starter | 10 dollars | 1.050 | ~9,14 dollars |
| Popular | 25 dollars | 2.750 | ~8,73 dollars |
| Pro | 50 dollars | 5.750 | ~8,35 dollars |
| Max | 100 dollars | 12.000 | ~8,00 dollars |
For tunge API-workloads giver Max-niveauet dig de bedste effektive omkostninger pr. generering. Se prisguide for detaljer.
Estimering af projektomkostninger
Før du starter en batchkørsel, beregn den samlede omkostning:
total_cost = number_of_videos * 9.60
En batchkørsel med 1.000 videoer: 9.600 dollars basissats, ~8.000 dollars på Max-niveau. Budget derfor.
API-prissætning = UI-prissætning. Uden tillæg.
Ingen pr-seat gebyrer, ingen API-niveaulåsning, ingen månedligt minimum. Spin op en batch når du behøver det, stop når du ikke gør.
Få din API-nøgleObservabilitet
For produktionsworkflows skal du spore disse metriker:
- Succesrate - % af job, der fuldføres succesfuldt
- Gennemsnitlig genereringstid - til kapacitetsplanlægning
- Credits brugt - løbende totaler for budgetsporring
- Webhook-leveringshastighed - detekter webhook-leveringsfejl
- Fejlkategorisering - gruppér fejl efter årsag
Log job-id'er sammen med dine interne korrelations-id'er til fejlfinding.
Sikkerhedsbest practices
- Udsæt aldrig din API-nøgle på klientside. Kald altid API'et fra din backend.
- Brug miljøvariabler eller en hemmeligheder-manager. Commit aldrig nøgler til versionskontrol.
- Roter nøgler med jævne mellemrum. Behandl dem som enhver anden legitimation.
- Valider webhook-signaturer, når de er tilgængelige.
- Brug HTTPS til alle billede- og lyd-URL'er, du sender til API'et.
- Scop webhook-endpoints, så kun legitime Arteza-payloads behandles.
Kom i gang med API'et
- Tilmeld dig Arteza og indsaml dine 50 gratis credits
- Køb mindst en Starter-pakke (10 dollars) for at have nok til en testgenerering
- Generer din API-nøgle i dashboardet
- Forbered en testbillede- og lydfil, upload til en offentlig URL
- Foretag dit første API-kald ved hjælp af eksemplerne ovenfor
- Poll eller vent på webhook for at få adgang til videoens URL
- Byg din produktionspipeline
For relateret læsning, se komplet OmniHuman v1.5-guide, prisopgørelse, salgsvideo-guide og flersproget guide.
Klar til at prøve OmniHuman v1.5? Start med at skabe gratis →
Try OmniHuman v1.5 - Right Now
Upload your reference image on the create page.
5 free generations · No credit card needed