Udvikler-API'erne er stadig i beta og kan ændres når som helst. På nuværende tidspunkt egner de sig bedst til personlig test og afprøvning og anbefales endnu ikke til produktionsbrug.
Playground
Erstat ét sporet ansigt i en målvideo med et ansigt fra et referencefoto. Registrering, sporing af ansigtspunkter og resultatfortolkning håndteres automatisk.
POST /api/v1/video-face-swap/submit → /queryAPI-adgang er kun tilgængelig for abonnenter. Dine abonnementskreditter deles mellem webstedet og API'en.
Se abonnementerNulbaseret indeks for det sporede målansigt, der skal erstattes.
Nulbaseret indeks for det registrerede ansigt, der skal bruges fra referencefotoet.
#!/usr/bin/env bash
set -euo pipefail
SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-face-swap/submit" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw '{
"targetVideoUrl": "https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4",
"referenceFaceImageUrl": "https://vidmage.ai/assets/images/samples/smiling-man-sweater.webp"
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"
while true; do
QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-face-swap/query" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw "{\"taskId\":\"${TASK_ID}\"}")"
STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
case "$STATUS" in
success|succeeded|completed)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["videoUrl"] // .data["videoUrl"] // empty)'
break
;;
failed|error)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
exit 1
;;
esac
sleep 5
done