Flexible parameters
Configure 1 documented parameters, including source_image_url.
Helper task that returns subject masks for OmniHuman generation
curl -X POST https://runapi.ai/api/v1/omnihuman/subject_detection \
-H "Authorization: Bearer $RUNAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omnihuman-1.5-subject-detection",
"prompt": "Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated."
}'
import { OmnihumanClient } from "@runapi.ai/omnihuman";
const client = new OmnihumanClient();
const result = await client.subjectDetection.run({
model: "omnihuman-1.5-subject-detection",
prompt: "Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated.",
});
import os
import requests
response = requests.post(
"https://runapi.ai/api/v1/omnihuman/subject_detection",
headers={"Authorization": f"Bearer {os.environ['RUNAPI_API_KEY']}"},
json={"model":"omnihuman-1.5-subject-detection","prompt":"Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated."}
)
response.raise_for_status()
<?php
$client = curl_init("https://runapi.ai/api/v1/omnihuman/subject_detection");
curl_setopt_array($client, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("RUNAPI_API_KEY"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'omnihuman-1.5-subject-detection',
'prompt' => 'Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated.',
])
]);
$response = curl_exec($client);
RunApi client = new RunApi(System.getenv("RUNAPI_API_KEY"));
Task task = client.subjectDetection().run({"model":"omnihuman-1.5-subject-detection","prompt":"Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated."});
task.waitForResult();
require "runapi/omnihuman"
client = RunApi::Omnihuman::Client.new
result = client.subject_detection.run(
model: "omnihuman-1.5-subject-detection",
prompt: "Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated."
)
client := runapi.NewClient(os.Getenv("RUNAPI_API_KEY"))
task, err := client.subjectDetection.Run({"model":"omnihuman-1.5-subject-detection","prompt":"Generate a 720p talking-head video from this portrait and voiceover, using a subject mask to keep the speaker isolated."})
if err != nil { log.Fatal(err) }
task.Wait()
$ runapi generate \
--model omnihuman-1.5-subject-detection \
--endpoint subject_detection \
--wait
3 versions available
Pick any model and generate in seconds.
No models are available right now.
| Provider | Bytedance |
| Model ID | omnihuman-1.5-subject-detection |
| Modality | Utility |
| Task types | Asynchronous |
| API endpoint | /api/v1/omnihuman/subject_detection |
| Billing unit | call |
| Input parameters | source_image_url |
| Catalog status | Operational |
Sign up for free and create an API key for omnihuman-1.5-subject-detection from the dashboard.
POST to /api/v1/omnihuman/subject_detection with the omnihuman-1.5-subject-detection model slug and your parameters.
Poll the task or follow the callback to retrieve the completed omnihuman-1.5-subject-detection result.
Configure 1 documented parameters, including source_image_url.
Exposes 1 public endpoint(s): subject_detection.
Metered by call with no subscription requirement.
source_image_urlNo description available.
Upscale archival photos to print-quality resolution for brochures and catalogs.
Restore and upscale SD footage to 4K for catalog rereleases.
Remove image backgrounds at bulk to normalize product photos from thousands of sellers.
Pass the model ID shown in the quickstart.
Per-key rate limits scale with your usage tier. The pricing page shows current limits. If you need higher throughput, contact support to discuss tier upgrades.
Yes. Variant is a parameter in the request. Switch by changing the model ID — no code changes, no re-authentication, no separate billing setup. All variants share the same API key and request shape.
Where streaming is available, RunAPI streams end-to-end. LLM models support token-level streaming. Media models use async task polling or webhook callbacks for result delivery.
Open an issue on the public GitHub repo or email support at [email protected]. Include the task ID and model ID so the team can investigate the specific generation.
No. Your RunAPI API key is enough to access this variant and every other model in the catalog. You do not need accounts with the underlying provider.
We're here to help with enterprise setup, integrations, and technical questions.
Contact Us